Закрытие половинных участков. - страница 5

 
DomGilberto:

Я установил отложенный ордер "OP_BUYSTOP", но у меня сложилось впечатление, что он изменится при срабатывании на "OP_BUY"?

Я думал, что тип ордера будет "OP_BUY", если он сработал?

В конце концов, меня интересует только ПОСЛЕ срабатывания ордера?

Почему эти скобки сбивают с толку? Вы имеете в виду, где находится левая скобка? Если да, то, похоже, это индивидуальная вещь, поскольку меня неоднократно поправляли?

Скобки не нужны, поэтому сам факт их наличия может сбить с толку других, пытающихся прочитать ваш код (меня).


Если у вас есть только BUYSTOP, то ваш код ничего не сделает, потому что это не OP_BUY....

DomGilberto:
Хммм, все еще не хочет закрываться @ "Close_Half_Order"? Сообщение об ошибке тоже не появляется?

Так что это имеет смысл, пока заказ находится на рассмотрении...

Имеет ли ваш ордер правильный магический номер?

 
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: Close_Half_Order Last Error = 4108
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: OrderClose error 4108
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: pending order #9 cannot be closed
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: Order Lots Open = 0.18
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: Order Ticker Number = 9
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.09000
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.01000
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.01000
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.37931
Я удалил строку "if(OrderType()==OP_BUY)" - Это новые распечатки в журнале после проверки? Недействительный билет... (извините, что задаю 101 вопрос по этому поводу!)
 
DomGilberto:
Я удалил строку "if(OrderType()==OP_BUY)" - Это новые распечатки в журнале после теста? Invalid Ticket... (извините, что задаю 101 вопрос по этому поводу!)

RaptorUK:

Вы не закрываете отложенный ордер, о чем вам сообщило сообщение об ошибке?

2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: pending order #9 cannot be closed

Вы не можете закрыть отложенный ордер, он удаляется.

 
Но я не пытаюсь закрыть отложенный ордер? Я пытаюсь закрыть половину лотов по "OP_BUY", который не является отложенным...? Очевидно, я что-то упускаю...
 
DomGilberto:
Но я не пытаюсь закрыть отложенный ордер? Я пытаюсь закрыть половину лотов по "OP_BUY", который не является отложенным...? Я явно что-то упускаю...
DomGilberto:

Я установил отложенный ордер "OP_BUYSTOP", но у меня сложилось впечатление, что он изменится при срабатывании на "OP_BUY"?

Если у вас есть OP_BUYSTOP, ваш код ничего не делает, и это нормально. Когда срабатывает OP_BUYSTOP, он превращается в OP_BUY и ваш код должен закрыть половину своего размера позиции ... если только у него правильный символ и Magic Number, так ли это? Наверное, так и должно быть, иначе код не пытался бы закрыть отложенный ордер... что насчет OpenOrdersThisPair(Symbol()) == 1?
 
Если я убираюиз кода"OpenOrdersThisPair(Symbol()) == 1", то сообщения в журнале остаются точно такими же...Я в недоумении...?
 
DomGilberto:
Если я удалюиз кода"OpenOrdersThisPair(Symbol()) == 1", сообщения в журнале будут точно такими же...Я в недоумении...?

Пора добавить еще несколько утверждений Print(), проверить все, что вы еще не проверили... Вы озадачены только потому, что не знаете почему, выясните почему, и вы больше не будете озадачены.

Когда вы выяснили причину, и у вас есть все эти операторы Print(), которые вы больше не хотите печатать на вкладке Журнал/Эксперты, посмотрите на это, что позволяет включить и выключить их: https: //www.mql5.com/en/forum/135168/page2.

 

Кстати, вы не можете сделать это...

bool Close_Half_Order = OrderClose(OrderTicket(), half, FirstTarget_Buy, 3, CLR_NONE);

... если только FirstTarget_Buy не окажется == Bid Чтобы исключить возможность того, что это не так, просто используйте Bid. Покупка закрывается продажей, продажа выполняется по Bid.

 
Итак, если я поставлю там "Bid", лоты теперь закрываются, но не по правильной цене, и кажется, что закрывается несколько половин в течение одной позиции. (больше в направлении верхних 2/3 области 100% целевой цены... не все по той же цене, по которой они закрываются...)

Как я должен закрыть позицию по "FirstTarget_Buy "?
 
DomGilberto:
Итак, если я поставлю там "Bid", лоты теперь закрываются, но не по правильной цене, и кажется, что закрывается несколько половин в течение одной позиции. (больше в направлении верхних 2/3 области 100% целевой цены... не все по той же цене, по которой они закрываются...)

Как я должен закрыть позицию по "FirstTarget_Buy"?

Вы не можете выполнить OrderClose() по любой цене, кроме Bid и Ask (Buy и Sell) ... это просто, вы не можете.

Что вы можете сделать:

открыть две сделки на половину позиции каждая и дать каждой свой TP

или

следить за ценой Bid/Ask и, когда она достигнет или пройдет "FirstTarget_Buy ", закрыть половину сделки по Bid/Ask.