3

MQL4を学んでいます。参照 Web サイトでは、カスタム インジケーターの作成は次のように行われます。

#property indicator_chart_window

int init(){
    return(0);
}

int deinit(){
    ObjectsDeleteAll();
    return(0);
}

int start(){

    return(0); 
}

しかし、MetaEditor 内から新しいインジケーターを作成すると、次のような別の構文が得られます。

int OnInit()
 { 
 //--- indicator buffers mapping

 //---
 return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
            const int prev_calculated,
            const datetime &time[],
            const double &open[],
            const double &high[],
            const double &low[],
            const double &close[],
            const long &tick_volume[],
            const long &volume[],
            const int &spread[])
 { 
//---

//--- return value of prev_calculated for next call
return(rates_total);
}

なぜ違うのですか?

誰かが私に紹介できる Web リンクや本はありますか? 私が読んだ限りでは、MQL4 ウェブサイトが最良の場所でしたが、見た目が異なり、どこを参照すればよいかわかりません。

どんな助けでも大歓迎です。前もって感謝します。

4

2 に答える 2

2

ビルド 600 以降、MQL4 にはいくつかの変更があります。これOnInit()は Init イベント ハンドラです。Init()下位互換性があるため、引き続き使用できます。OnInit()は新しい慣習です。

一部のオンライン ドキュメントは古く、まだ更新されていません。このリンクは変更に関する情報を提供します: http://docs.mql4.com/mql4changes

于 2015-03-29T21:47:43.910 に答える