Чтобы один ордер запускался я поставил. Как сделать чтобы после срабатывания стоплосс советник выключался?
Навсегда?
Навсегда?
ExpertRemove()
Попробуйте до и после вызова этой функции вставить алерты:
Alert("Выгружаем эксперт");
ExpertRemove();
Alert("Выгрузка произведена. Смотрим, что будет");
Или приложите код, посмотрю
Ну вот, получилось!
Как это перезапускается? Скорей всего, вызов этой функции не производится
Попробуйте до и после вызова этой функции вставить алерты:
Alert("Выгружаем эксперт");
ExpertRemove();
Alert("Выгрузка произведена. Смотрим, что будет");
Или приложите код, посмотрю
Ну вот, получилось!
Работает можете еще подсказать чтоб при срабатывании стоплосс включалась эта функция ExpertRemove()(происходил выход, а не запускался еще раз ордер);
if(BuyCnt == 0)//запуск только одного ордера
{
ticket = OrderSend(Symb, OP_BUY, 1.0, Ask, 3, StopLossLevel, 0, "First expert");
}
if(OrderSelect(ticket, SELECT_BY_POS)==true){
double stopper = OrderStopLoss(); //стоплосс этого ордера
if(Price <= stopper){ //Price это Bid, тут условие если B
ExpertRemove();
}
}
При таком варианте эта функция не срабатывает
Работает можете еще подсказать чтоб при срабатывании стоплосс включалась эта функция ExpertRemove()(происходил выход, а не запускался еще раз ордер);
if(BuyCnt == 0)//запуск только одного ордера
{
ticket = OrderSend(Symb, OP_BUY, 1.0, Ask, 3, StopLossLevel, 0, "First expert");
}
if(OrderSelect(ticket, SELECT_BY_POS)==true){
double stopper = OrderStopLoss(); //стоплосс этого ордера
if(Price <= stopper){ //Price это Bid, тут условие если B
ExpertRemove();
}
}
При таком варианте эта функция не срабатывает
Чтобы один ордер запускался я поставил. Как сделать чтобы после срабатывания стоплосс советник выключался?
bool trade=true;
...
if(trade) PutOrder(0,Ask);
...
if(LastDealResult==2) trade=false;
//+------------------------------------------------------------------+ //| Результат последней сделки | //+------------------------------------------------------------------+ int LastDealResult() { int result=0; if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { if(OrderProfit()>0) { result=1;//tp } if(OrderProfit()<0) { result=2;//sl } } } return(result); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования