Посмотрите, в чём ошибка?

 
Идея такова: ордера все sell, S/L=20 T/P=10, при срабатывании S/L открывается следующий sell и т.д.
Файлы:
mxp.mq4  2 kb
 
Первый ордер он открывает, следующие нет
 
Danil93 писал(а) >>
Первый ордер он открывает, следующие нет

Скорее всего, это происходит потому, что вы забыли кое что сделать в

  OrderSend(Symbol(),OP_SELLLIMIT,0.1,Bid+20,0,Bid+20*Point,Bid-10*Point);

Bid+20 - это у вас что?

Внимательнее надо!

 
leonid553 писал(а) >>

Скорее всего, это происходит потому, чтовы забыли кое что сделать в

Bid+20 - это у вас что?

Внимательнее надо!

Еще один момент, для лимитников стопы должны отсчитываться от цены открытия, а не от текущей цены

 
Figar0 писал(а) >>

Еще один момент, для лимитников стопы должны отсчитываться от цены открытия, а не от текущей цены

Как это? Ведь не известна цена открытия +-slipPage.

 
MuruFigi писал(а) >>

Как это? Ведь не известна цена открытия +-slipPage.

Ну если учитывать еще и проскальзование, то посредством последующей модификации после открытия. Я не имел ввиду такие тонкости, топикстартер от считывает стопы от цены на момент выставления отложек.

  OrderSend(Symbol(),OP_SELLLIMIT,0.1,Bid+80*Point,0,Bid+20*Point,Bid-10*Point);

это совсем неправильно.

 
Figar0 >>:

Еще один момент, для лимитников стопы должны отсчитываться от цены открытия, а не от текущей цены

от цены открытия ордера или когда я скрипт включил?

 
Danil93 писал(а) >>

от цены открытия ордера или когда я скрипт включил?

Конечно от цены по которой открыт ордер, или предполагается что будет открыт отложеный ордер.

Пример: текущая цена 1000, мы выставляем селлимит по цене 1500, и хотим ТП и СЛ 100, тогда это будут 1400 и 1600 соответветственно. А ни как не 900 и 1100 если отсчитывать от цены на момент выставления отложки, как у Вас в коде..

 
Figar0 >>:

Конечно от цены по которой открыт ордер, или предполагается что будет открыт отложеный ордер.

Пример: текущая цена 1000, мы выставляем селлимит по цене 1500, и хотим ТП и СЛ 100, тогда это будут 1400 и 1600 соответветственно. А ни как не 900 и 1100 если отсчитывать от цены на момент выставления отложки, как у Вас в коде..

OrderSend(Symbol(),OP_SELL,0.1,Bid,0,Bid+20*Point,Bid-10*Point);
OrderSend(Symbol(),OP_SELLLIMIT,0.1,Bid+20,0,Bid+40*Point,Bid+10*Point);
Правильно?

неработает

 
Danil93 писал(а) >>

OrderSend(Symbol(),OP_SELL,0.1,Bid,0,Bid+20*Point,Bid-10*Point);
OrderSend(Symbol(),OP_SELLLIMIT,0.1,Bid+20,0,Bid+40*Point,Bid+10*Point);
Правильно?

неработает

А "*Point" Пушкин будет? Плюс не стоит забывать про стоплевел (это ограничение минимально разрешенного расстояния до уровня выставляемой отложки, стопа/тейка и т.д.) и нормализацию цены( в результате вычисления стопа, уровня открытия и прочего иногда цена теряет "правильный" вид, например появляются лишнии знаки после запятой. Для этого используется конструкция вида NormalizeDouble(Price, Digits)). Смотрите ошибки в журнале, по коду ошибки Вы сами сможете ее распознать и устранить.

 
Danil93 >>:

OrderSend(Symbol(),OP_SELL,0.1,Bid,0,Bid+20*Point,Bid-10*Point);
Правильно?

неработает

вероятно, стоп близко от рынка

Причина обращения: