Вы бы код условий написали полностью, если он не составляет тайну конечно.
if(OrdersTotal()==0 && lin0 < -75 ) \\- условие для открытия
ticket=OrderSend(simvol,OP_SELL,LotsOptimized(),Bid,0,0,0,"",123,0,cvet2); \\- открываем
//----
if(OrdersTotal()==1 && ( lin0 > -50 || (lin1 > lin2 && lin1 < lin4) || (lin1 < lin2 && lin1 > lin4))) \\- закрываем если одно из 3-х условий верно
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
OrderClose(ticket, OrderLots(), Ask, 2, Violet);
PlaySound("Alert.wav");
}
}
if(OrdersTotal()==0 && lin0 < -75 ) \\- условие для открытия
ticket=OrderSend(simvol,OP_SELL,LotsOptimized(),Bid,0,0,0,"",123,0,cvet2); \\- открываем
//----
if(OrdersTotal()==1 && ( lin0 > -50 || (lin1 > lin2 && lin1 < lin4) || (lin1 < lin2 && lin1 > lin4))) \\- закрываем если одно из 3-х условий верно
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
OrderClose(ticket, OrderLots(), Ask, 2, Violet);
PlaySound("Alert.wav");
}
}
Функцию закрытия ордера вынести за старт, а в теле старт проверить по очереди три условия с паузами в 5-6 сек.
по отдельности все работает! последние 2 и 3 условия является условие для открытия для других приоритетных сделок! может мешают
переменная ticket как объявлена?
int ticket;
int ticket;
где она объявлена?
до старта
может скобки не так стоят или еще что if(OrdersTotal()==1 && ( lin0 > -50 || (lin1 > lin2 && lin1 < lin4) || (lin1 < lin2 && lin1 > lin4)))
Поставьте перед проверкой условий этот код:
if(OrdersTotal()==1) Print("ticket=",ticket," lin0=",lin0," lin1=",lin1," lin2=",lin2," lin4=",lin1);и изучайте записи в журнале.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Классика
Открывает сделки по условию
Закрывает по другому
Но мне надо чтобы
Открывает сделки по условию (константа)
А закрывает должен, если одно из трех условий случилось
Пробовал через if(условие 1 || условие 2 ….
Не получилось может подскажите какие есть шаблоны !!!?