最大スプレッド制限のエラー

EAつくーる
のりすけ
2024/09/17 21:45
16

以前こちらで紹介されていた決済時のスプレッド制限を追加するコードですが、EAに組み入れたところ、4エラー、1ワーニングが出てしまいました。解決方法をご教示ください。
https://labo.gogojungle.co.jp/articles/1273

extern int spreadLimit = 10; // Maximum spread in points
int OnInit()
{
return(0);
}

int OnDeinit()
{
return(0);
}
void OnTick()
{
//— get number of open orders
int totalOrders = OrdersTotal();

for(int i=totalOrders-1; i>=0; i–)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) // check if the order is for the current symbol and EA
{
//— check spread before closing
double spread = MarketInfo(OrderSymbol(), MODE_SPREAD);

        if(spread > spreadLimit)
        {
           Print("Spread is too high, closing trade avoided.");
           continue;
        }
        
        //--- close order if conditions are met
        // OrderClose(...) // Please replace with your closing condition
     }
  }

}

return(0);
}

エラー
OnDeinit function declared with wrong type or/and parameters

‘OnTick’ - function already defined and has body

see previous declaration of function ‘OnTick’

‘MagicNumber’ - undeclared identifier

‘return’ - ‘void’ function returns a value

コメント

GogoJungle
2024/09/19 12:28

OnTick関数が重複定義されている点が気になります。
以前紹介させていただきましたコードはあくまで修正例でして、 全体をそのままコピペして組み込めるものではない 点に注意が必要です。
EAつくーるで出力していただいたコードの状況に合わせて、例を参考に書き換えていただく必要がございます。

例えば、出力したコードの中からOnTick関数を探していただき、その中の適切な位置に

int totalOrders = OrdersTotal();

以降のコードを挿入する、といった形です。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。