Ближайший тейкпрофит для отложенных ордеров (в догонку к http://www.metaquotes.ru/forum/7265/)

 
К "StopLoss: OrderSend() vs OrderModify()"

Уровни стоплосс и тейкпрофита отсчитываются от цены закрытия. То есть, если стоплосс при открытии длинной позиции составляет 10 пунктов, то надо передать Bid - 10 * Point в OrderSend() для соответствующего параметра.
При этом рыночные ордера допускают ближайший стоплосс на расстоянии MarketInfo()(Symbol(), MODE_STOPLEVEL) от цены закрытия.

Эта логика не работает для отложенных ордеров. Для них проверка на STOPLEVEL все еще производится от цены открытия.

То есть, опять возможна ситуация, когда терминал позволяет открыть buylimit ордер, например, при таких условиях:
Bid/Ask 1.9222/1.9226
stoplevel 5
price 1.9210
stoploss 1.9205
takeprofit 1.9215


При этом в момент срабатывания ордера его сл/тп уровни будут ассимметрично сдвинуты на спред

sl = Bid - stoploss = 1.9206 - 1.9205 = 0.0001
tp = takeprofit - Bid = 1.9215 - 1.9206 = 0.0009

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




 
Поставил buy stop на GBPJPY:



Позиция открылась с уже сработавшим стоплоссом!


Ticket Open Time Type Lots Item Price S / L T / P Close Time Price Commission Taxes Swap Profit
26794743 2007.03.06 23:21 buy 0.01 gbpjpym 226.20 226.14 0.00 2007.03.06 23:21 226.14 0.00 0.00 0.00 -0.05
 
У вас спред на GBPJPY составляет 12 пунктов, а вы ставите стоплосс в размере в полспреда 6 пунктов. Это ведь даже теоретически совершенно несерьёзно! Стоплосс должен уж как минимум превышать значение спреда, то есть должен быть >12 пунктов. А вообще рекомендую вам почитать хоть какую-то информацию о том что такое цена Ask и Bid, а также про цены открытия/закрытия ордеров. У вас будет ещё миллион вопросов подобного плана, которые стоило бы с самого начала просто изучить по доступным в инете материалам.
 
У вас спред на GBPJPY составляет 12 пунктов, а вы ставите стоплосс в размере в полспреда 6 пунктов. Это ведь даже теоретически совершенно несерьёзно! Стоплосс должен уж как минимум превышать значение спреда, то есть должен быть >12 пунктов. А вообще рекомендую вам почитать хоть какую-то информацию о том что такое цена Ask и Bid, а также про цены открытия/закрытия ордеров. У вас будет ещё миллион вопросов подобного плана, которые стоило бы с самого начала просто изучить по доступным в инете материалам.
Да нет, у меня вопросов плана нету. Уровни стоплосса и тейкпрофита должны задаваться от цены закрытия. И тогда они ничего не должны превышать, кроме уровня STOPLEVEL. Абсолютно согласен, что ситуация в примере выше несерьезна.

Спасибо за рекомендации. И Вам того же.
 
Уровни стоплосса и тейкпрофита должны задаваться от цены закрытия. И тогда они ничего не должны превышать, кроме уровня STOPLEVEL.

Уровни стоплосса и тейкпрофита не могут задаваться от цены закрытия ордера, так как у многих брокеров спред является плавающим. Он может быть совсем маленьким ночью и очень большим на новостях. Поэтому они всегда отсчитываются от цены открытия ордера, которая является уже неизменным фактом (я не беру в расчёт некоторых немногочисленных брокеров, которые коверкают цену открытия вбивая в неё свопы).
Причина обращения: