[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 73

 
silhouette:

Написал функцию, которая должна на основе введенного мэджика и комментария определить существует ли такая позиция. Если нет, то вернуть разрешение на ее открытие. 

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

 

 

Ваш "основной" цикл for не работает. Он в любом случае на первом же ордере скажет либо true либо false и дальше искать не станет
 
OrderSend(Symbol(), OP_BUYSTOP, Lot, PriceBuy, StopLoss, TakeProfit, "Order", 0, Green);

 При выставлении такого ордера возникает ошибка 130. По аналогии открывается и SellStop, но в нём ошибок нет.

 
ilunga:
Ваш "основной" цикл for не работает. Он в любом случае на первом же ордере скажет либо true либо false и дальше искать не станет

Спасибо! Логику я понял. Но каким образом его можно исправить? 
 
gain:
OrderSend(Symbol(), OP_BUYSTOP, Lot, PriceBuy, StopLoss, TakeProfit, "Order", 0, Green);

 При выставлении такого ордера возникает ошибка 130. По аналогии открывается и SellStop, но в нём ошибок нет.


А как соотносятся цена, указанная в ордере и текущая рыночная цена в случае, когда возникает ошибка?
 
MikeM:

А как соотносятся цена, указанная в ордере и текущая рыночная цена в случае, когда возникает ошибка?
С ценой всё нормально, она далеко находится
 
gain:
С ценой всё нормально, она далеко находится


Укажи точные значения и тип ордера!!!
 

BuyStop - отложенный ордер на покупку активов по финансовому инструменту по цене, превышающей текущую цену. Ордер исполнится (преобразуется в рыночный ордер Buy), если цена Ask достигнет или окажется выше цены, заявленной в ордере. Как насчёт выполнения красного условия?

 
MikeM:

BuyStop - отложенный ордер на покупку активов по финансовому инструменту по цене, превышающей текущую цену. Ордер исполнится (преобразуется в рыночный ордер Buy), если цена Ask достигнет или окажется выше цены, заявленной в ордере. Как насчёт выполнения красного условия?



Тип BUYSTOP. Даже если прописать в ручную 1.3300 для Евро/Доллар и запустить тест на сегодня, то ордер не откроется.
 
WindSW:

Как правильно написать, чтобы значение double записывалось только один раз и только при нулевом значении. Пробую так if(recRes==0) recRes=NormalizeDouble(Res,5); , но так не получается, значение переписывается как только меняется Res. Как правильно сделать, чтобы реализовать задуманное? 


А что получается?
Какого типа recRes?
И каковы значения 
Res?

 
gain:


Тип BUYSTOP. Даже если прописать в ручную 1.3300 для Евро/Доллар и запустить тест на сегодня, то ордер не откроется.

А какое сообщение при этом?