OnCaculate的用法
作者:MT4 來源:cxh99.com 發布時間:2012年05月18日
- OnCaculate事件因Tick的到來而觸發,他有兩種調用方式:
復制代碼- int OnCalculate(const int rates_total,//指標數組的全部元素個數
- const int prev_calculated,//前一次計算完的指標數組的個數
- const int begin,//指標數組最早的其實元素序號
- const double &price[])//本指標計算需要用到的K線的單個數組
這里比較難理解的是price數組。其實price數組是有指標其實階段的一個參數#property indicator_applied_price進行定義的。
一般定義方式是:
復制代碼- #property indicator_applied_price PRICE_OPEN
這里表示OnCaculate事件里使用的price數組是OPEN開盤價隨對應的數組。
如果不使用上面的語句進行指定,則默認price數組使用CLOSE收盤價對應的數組。
總結:可以看出上面這種OnCaculate事件的調用僅適合于使用K線單個數組的技術指標的調用。
==============================
方式2:
復制代碼-
- int OnCalculate (const int rates_total, // размер входных таймсерий
- const int prev_calculated, // обработано баров на предыдущем вызове
- const datetime& time[], // Time
- const double& open[], // Open
- const double& high[], // High
- const double& low[], // Low
- const double& close[], // Close
- const long& tick_volume[], // Tick Volume
- const long& volume[], // Real Volume
- const int& spread[] // Spread
- );
這種方式相對于第一種調用的不通在于:引入了K線所有對應的數值數組,可以全面使用K線對應的各種數據。