Достать тикет при частичном закрытии сделки...возможно?

 

Вобщем алгоритм советника сбрасывает лоты по частям на нескольких уровнях...но я зашел в небольшой тупик - при частичном закрытии как я понял происходит не частичное сбрасывание лота а полное закрытие сделки и открытие новой и тикет остаточной сделки меняется...вобщем вопрос в следующем: можно ли при этом вытащить тикет остатков или сбросить лоты как то по другому чтобы тикет не менялся. Пока что вижу выход только такой: вместо

OrderClose(OrderTicket(),NormalizeDouble(DropLots,2),Bid,10,CLR_NONE);

поставить

x=OrderLots();
OrderClose(OrderTicket(),NormalizeDouble(DropLots,2),Price,10,CLR_NONE);
Ticket=OrderSend(Symbol(), Type, x-NormalizeDouble(DropLots,2), OpenLevel, 10, SL, FinalDropLevel, NULL, Magic, 0, CLR_NONE); 

но так выявится много проблем с перестановкой всех параметров(привязка по тикету) ну и со скоростью, ведь частичное закрытие все же одна функция а закрытие и открытие - 2....время запроса к серверу может зашкалить=)

если есть способ вытаскивания тикета из orderclose или вобще способ не менять тикет, опишите пожалуйста, заранее благодарю :DD

 
FiftyStars:

Вобщем алгоритм советника сбрасывает лоты по частям на нескольких уровнях...но я зашел в небольшой тупик - при частичном закрытии как я понял происходит не частичное сбрасывание лота а полное закрытие сделки и открытие новой и тикет остаточной сделки меняется...вобщем вопрос в следующем: можно ли при этом вытащить тикет остатков или сбросить лоты как то по другому чтобы тикет не менялся. Пока что вижу выход только такой: вместо


можно. в комментарий ордера при частичном записывается информация "from #<base_ticket>" (в случае тестера будет split from #, но возможно split слово уже убрали... поэтому ориентируйтесь лучше from #)

то есть имея ордер вы по его коменту поймете от какого ордера он произошел.

так как вам надо закрывать по частям, то вам нужно записать в globalbvariable все требуемые контролируемые параметры (начальный лот, или размеры чего то ) с привязкой к первоначальному тикету. ну и потом раскручивать ситуацию

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

 
sergeev:

можно. в комментарий ордера при частичном записывается информация "from #<base_ticket>" (в случае тестера будет split from #, но возможно split слово уже убрали... поэтому ориентируйтесь лучше from #)

то есть имея ордер вы по его коменту поймете от какого ордера он произошел.


не понял...можно поподробнее?
 
FiftyStars:
не понял...можно поподробнее?

подробнее дополнил выше
 
А лучше всего избавляться от тикетовой зависимости, если есть такая возможность.
 
TheXpert:
А лучше всего избавляться от тикетовой зависимости, если есть такая возможность.

На ECN/STP только так и можно, т.к. легко вы можете выставить лимитник, который частично исполнится несколько раз, и потом эти частичные позиции тоже могут по тэйку (который был еще задан в лимитнике) исполнится частично. В итоге от всего лишь одного исходного лимитника будет висеть открытый лимитник, несколько от него открытых позиций и несколько закрытых. Тикетовая логика при этом просто умрет.

Привязывайтесь к мэджиковой логики. При частичном мэджики сохраняются. И можно легко все восстановить. Если так сделаете, то увидите огромное преимущество MT4 перед MT5.

 
sergeev:

можно. в комментарий ордера при частичном записывается информация "from #<base_ticket>" (в случае тестера будет split from #, но возможно split слово уже убрали... поэтому ориентируйтесь лучше from #)

то есть имея ордер вы по его коменту поймете от какого ордера он произошел.

так как вам надо закрывать по частям, то вам нужно записать в globalbvariable все требуемые контролируемые параметры (начальный лот, или размеры чего то ) с привязкой к первоначальному тикету. ну и потом раскручивать ситуацию

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


глобалы не пойдут - у меня торговые операции разделены......скажем так на серии....то есть открывется ордер и исходя из развития ситуации открываются и закрываются следующие ордера как бы подчиненные следующий предыдущему...параметров у каждого около 20ти, я их храню в объектах, недалеко от места открытия ордера,и таких серий может быть очень очень много....перемещение объектов меняет параметры - нечто типа скроллок получилось..да и визуально эти объекты помогают ориентироваться в ситуации. У объектов имена по шаблону "Имя_Параметра - "+Ticket_Родителя например "DropLot - 661".

Соответственно при смене тикета родителя нужно менять номер в каждом параметре.

Хотелось бы попросить вас написать код

начиная от orderclose

получения тикета нового ордера и до получения тикета старого ордера. как пользоваться тем что вы написали не приложу ума

 
hrenfx:

На ECN/STP только так и можно, т.к. легко вы можете выставить лимитник, который частично исполнится несколько раз, и потом эти частичные позиции тоже могут по тэйку (который был еще задан в лимитнике) исполнится частично. В итоге от всего лишь одного исходного лимитника будет висеть открытый лимитник, несколько от него открытых позиций и несколько закрытых. Тикетовая логика при этом просто умрет.

Привязывайтесь к мэджиковой логики. При частичном мэджики сохраняются. И можно легко все восстановить. Если так сделаете, то увидите огромное преимущество MT4 перед MT5.


мне ecn никчему
 
hrenfx:

На ECN/STP только так и можно, т.к. легко вы можете выставить лимитник, который частично исполнится несколько раз, и потом эти частичные позиции тоже могут по тэйку (который был еще задан в лимитнике) исполнится частично. В итоге от всего лишь одного исходного лимитника будет висеть открытый лимитник, несколько от него открытых позиций и несколько закрытых. Тикетовая логика при этом просто умрет.

Привязывайтесь к мэджиковой логики. При частичном мэджики сохраняются. И можно легко все восстановить. Если так сделаете, то увидите огромное преимущество MT4 перед MT5.


а Magic сохранится при частичном закрытии?мне просто нуже уникальный ID ордеров, который не будет меняться от открытия сделки до закрытия последней части лота

 
FiftyStars:

мне ecn никчему

Кормите брокера дальше.

Ответ по теме прозвучал - через мэджики.

 
hrenfx:

Кормите брокера дальше.

Ответ по теме прозвучал - через мэджики.


мне пофигу=)я в профите а это главное :DD
Причина обращения: