Цикл проверки активного ордера.

 

Здравствуйте, хотел бы узнать как сделать так чтоб когда запускаешь советника, он открывает ордер на пример на покупку и ждет пока не закроется первый ордер по sl или tp ? Спасибо.

То есть:

1.Включил советника он открыл ордер buy или sell

2.Ожидание пока не закрылся предыдущий ордер по sl или tp

3.Открытие нового ордера только после того как закрылся предыдущий.

Все что смог написать на др. уже не хватает мыслей жаль нет литературы где показаны образцы:

extern int TakeProfit = 30;
extern int StopLoss = 30;
extern double Lots = 0.01;
int ticket;

int init()
{
return(0);
}

int start()
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Bid - StopLoss * Point, Ask + TakeProfit * Point);
Alert(GetLastError());
return;
}

int deinit()
{
return(0);
}

 
andkld87:

Здравствуйте, хотел бы узнать как сделать так чтоб когда запускаешь советника, он открывает ордер на пример на покупку и ждет пока не закроется первый ордер по sl или tp ? Спасибо.

Нужно проверять, есть у вас открытые ордера или нет. Если есть - не открывать лишние. Когда ордер закроется по TP или SL, то только тогда программа сможет открыть новый ордер.
 
OrdersTotal() тебе в помошь. :)
 
andkld87:
Тут я запостил очень простой советникус, который открывает ордера в случайные стороны с заданными ТР и SL.
 
andkld87:

Все что смог написать на др. уже не хватает мыслей жаль нет литературы где показаны образцы:

Литература есть. Причем на этой же странице - Учебник. Учет ордеров в программе описан в главе Простой эксперт, смотрите четвертый блок эксперта.
 
Понятно сейчас почитаю.
Причина обращения: