Maxim Kuznetsov #: if (iBarShift(OrderSymbol(),TIMEFRAME,OrderOpenTime()) > BARS_TO_CLOSE)
Спасибо Максим! Это мне более понятно! То есть в BARS_TO_CLOSE я могу вставить нужное мне для закрытия сделки количество баров и все должно заработать? То есть если мне просто нужен минимальный промежуток времени, могу и так написать: if (iBarShift(OrderSymbol(),TIMEFRAME,OrderOpenTime()) > 1)
Ratmirfat #: Спасибо Максим! Это мне более понятно! То есть в BARS_TO_CLOSE я могу вставить нужное мне для закрытия сделки количество баров и все должно заработать? То есть если мне просто нужен минимальный промежуток времени, могу и так написать: if (iBarShift(OrderSymbol(),TIMEFRAME,OrderOpenTime()) > 1)
ну да, проверить +-1 бар, чтобы учесть что ордер не обязан открываться ровно на границе баров. Знак > или >=
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Ошибку надо искать не здесь.
1) Проверьте функцию закрытия ордеров, которую я дал. Я там исправил ошибку.
2) если первый пункт не поможет, то покажите код где идет обработка Opn_B и Cls_B
if (iBarShift(OrderSymbol(),TIMEFRAME,OrderOpenTime()) > BARS_TO_CLOSE)
Спасибо Максим! Это мне более понятно! То есть в BARS_TO_CLOSE я могу вставить нужное мне для закрытия сделки количество баров и все должно заработать? То есть если мне просто нужен минимальный промежуток времени, могу и так написать: if (iBarShift(OrderSymbol(),TIMEFRAME,OrderOpenTime()) > 1)
ну да, проверить +-1 бар, чтобы учесть что ордер не обязан открываться ровно на границе баров. Знак > или >=
Спасибо, но как эту функцию закрытия ордеров вставить в мои условия закрытия ордера с помощью RSI?
Просто вставьте перед RSI
Просто вставьте перед RSI
void CloseExpOrder() { int i=OrdersTotal()-1; datetime t=0; for(int pos=i;pos>=0;pos--) { if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==_Symbol&&OrderMagicNumber()==Magic) { t=OrderOpenTime()+_Period*5*60; if(t<=TimeCurrent()) { if(OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,3,clrRed); if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,clrRed); } } } } }
'CloseExpOrder' - function declarations are allowed on global, namespace or class scope only
'Magic' - undeclared identifier
ну да, проверить +-1 бар, чтобы учесть что ордер не обязан открываться ровно на границе баров. Знак > или >=
'CloseExpOrder' - function declarations are allowed on global, namespace or class scope only
'Magic' - undeclared identifier
Простите, я думал Вы лучше ориентируетесь в коде...
надо так:
Это помещаете в самый низ кода
а перед расчетом RSI добавляете строку
и все будет работать
'CloseExpOrder' - function declarations are allowed on global, namespace or class scope only
'Magic' - undeclared identifier
Если Вы не используете Magiс, то просто удалите то что выделено желтым