struct MqlRates 結構
此結構存儲有關歷史價格,數量和價差的信息
struct MqlRates
datetime time; 周期開始時間
double open; 開盤價
double high; 周期最高價
double low; 周期最低價
double close; 收盤價
long tick_volume; 訂單交易量
int spread; 點差
long real_volume; 交易量
以下範例,將使用AUD/USD來演譯,例如:
AUD/USD在6/3的開盤價為0.74397,6/2為0.73862,6/2為0.74368。
欲取得商品之歷史資料,及計算三日開盤價之平均價(0.74209),可透過CopyRates 函數來完成。
CopyRates函數說明如下:
獲得指定交易商品周期的特定MqlRates結構到rates_array陣列中。
範列程式碼
void OnTick()
{
//---
CalcAvg();
}
//+------------------------------------------------------------------+
void CalcAvg (void)
{
MqlRates rates[];
double Avg=0;
int copied = CopyRates(Symbol(),0,1,3,rates);//獲取指定數量的指定符號周期的MqlRates結構的歷史數據到rates_array數組
//商品名稱,期間,開始位置,要復制的數據計數,要復制的目標數組
int totalk = fmin (copied,10);//獲取數量若超過10,則僅計算10
for (int i = 0; i <totalk; i ++)//計算總數之開盤價並計算平均值
{
Avg += rates[i].open;//將開盤價累加至Avg變數中
}
Print(Avg/totalk);//印出平均值
}
留言列表