以前こちらで紹介されていた決済時のスプレッド制限を追加するコードですが、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
| 検索結果がありません。 |
| 検索結果がありません。 |
OnTick関数が重複定義されている点が気になります。
以前紹介させていただきましたコードはあくまで修正例でして、 全体をそのままコピペして組み込めるものではない 点に注意が必要です。
EAつくーるで出力していただいたコードの状況に合わせて、例を参考に書き換えていただく必要がございます。
例えば、出力したコードの中からOnTick関数を探していただき、その中の適切な位置に
以降のコードを挿入する、といった形です。