Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликовал программу в Маркете? Опубликуй ее и в блоге - виджет поможет!
luxerman
113
luxerman 2016.07.14 20:03 

Есть OrderSend , у него есть переменная стоплосс, надо от этого стоплосс производить расчета.

За цену открытия зацепится получилось, а за стоплосс как? Как узнать значение стоплосс когда была произведена покупка, в print выбивает постоянно разные значения.

StopLossLevel = Bid - StopLoss*Point;


ticket = OrderSend(Symb, OP_BUY, 1.0, Ask, 3, StopLossLevel, 0, "First expert");

if(OrderSelect(ticket, SELECT_BY_POS)==true){

double num = OrderOpenPrice()+ 2*Point;   // цена покупки

}

Vitalie Postolache
10999
Vitalie Postolache 2016.07.14 20:14  
OrderStopLoss()
Vladimir
199
Vladimir 2016.07.18 05:14  
luxerman:

Есть OrderSend , у него есть переменная стоплосс, надо от этого стоплосс производить расчета.

За цену открытия зацепится получилось, а за стоплосс как? Как узнать значение стоплосс когда была произведена покупка, в print выбивает постоянно разные значения.

StopLossLevel = Bid - StopLoss*Point;


ticket = OrderSend(Symb, OP_BUY, 1.0, Ask, 3, StopLossLevel, 0, "First expert");

if(OrderSelect(ticket, SELECT_BY_POS)==true){

double num = OrderOpenPrice()+ 2*Point;   // цена покупки

}

Кусочек из справки по OrderSelect:

SELECT_BY_POS - в параметре index передается порядковый номер ордера в списке,
SELECT_BY_TICKET - в параметре index передается номер тикета.

навевает мысль о том, что стоило бы заменить SELECT_BY_POS на SELECT_BY_TICKET.

Но это не все. После "ticket = ..." надежнее подождать, когда обновится список открытых и отложенных ордеров, с которым работает советник. То есть в терминал, а затем и в экземпляр памяти этого советника придет коррекция списка от сервера. Например, так:

if (ticket < 0) {сообщение с GetLastError() и выход по return}

if (!OrderSelect(ticket, SELECT_BY_TICKET)) Sleep (200);

if(OrderSelect(ticket, SELECT_BY_TICKET)==true) { ... дальше как было с учетом предыдущего сообщения об OrderStopLoss()}


/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий