Советник был запущен на 20 валютных парах, по условиям не должны были открыты новые сделки если не прошел один день. На двух парах проблема. Помогите пожалуйста.
.......
Вот это : if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
будет корректно работать, если на вкладке "История счета" будут находиться обрабатываемые ордера
Поэтому желательно по правой кнопке мышки во внутрях этой вкладки выбирать "Вся история"
.......
Вот это : if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
будет корректно работать, если на вкладке "История счета" будут находиться обрабатываемые ордера
Поэтому желательно по правой кнопке мышки во внутрях этой вкладки выбирать "Вся история"
вся история отображается как нужно.
Дальше тогда едем.
А где у Вас цикл перебора ордеров?
Ну типа
bool OneDayDeal()
{
bool result=true;
for (i =OrdersHistoryTotal(); i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()<2 && TimeDay(OrderCloseTime())==Day())result=false;
}
return(result);
}
Дальше тогда едем.
А где у Вас цикл перебора ордеров?
Ну типа
bool OneDayDeal()
{
bool result=true;
for (i =OrdersHistoryTotal(); i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()<2 && TimeDay(OrderCloseTime())==Day())result=false;
}
return(result);
}
Позиция может быть открыта и ещё не закрыта, поэтому сигнал игнорируется, а вы смотрите только по закрытым
Позиция может быть открыта и ещё не закрыта, поэтому сигнал игнорируется, а вы смотрите только по закрытым
for (int i =OrdersHistoryTotal(); i>=0; i--) нужно ли добавить int?
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Советник был запущен на 20 валютных парах, по условиям не должны были открыты новые сделки если не прошел один день. На двух парах проблема. Помогите пожалуйста.
{
if(OneDayDeal())
{
if((iRSI(NULL,0,21,PRICE_CLOSE,0)<50) && (iRSI(NULL,0,21,PRICE_CLOSE,1)<50))
{
PutOrder(1,Bid);
}
if((iRSI(NULL,0,21,PRICE_CLOSE,0)>50) && (iRSI(NULL,0,21,PRICE_CLOSE,1)>50))
{
PutOrder(0,Ask);
}
}
}
bool OneDayDeal()
{
bool result=true;
if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()<2 && TimeDay(OrderCloseTime())==Day())
{
result=false;
}
}
}
return(result);
}