Частичное закрытие позиции, нужен тикет

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
forex2030
336
forex2030  

Как узнать что при частичном закрытии позиции сменился тикет

тикет #1 лот 0.04
закрылся 50% и теперь эта позиция стала
тикет #2 лот 0.02

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

Ihor Herasko
21906
Ihor Herasko  
forex2030:

Как узнать что при частичном закрытии позиции сменился тикет

тикет #1 лот 0.04
закрылся 50% и теперь эта позиция стала
тикет #2 лот 0.02

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

Сразу после выполнения операции закрытия ищите рабочий ордер, содержащий в комментарии подстроку "from #". В ней будет тикет родительского ордера. Далее задача - сохранить тикет найденного ордера (в смысле предусмотреть выгрузку программы и повторную ее загрузку, чтобы не потерять новый тикет). Надеяться на то, что комментарий останется неизменным не стоит.

forex2030
336
forex2030  
Ihor Herasko:

Сразу после выполнения операции закрытия ищите рабочий ордер, содержащий в комментарии подстроку "from #". В ней будет тикет родительского ордера. Далее задача - сохранить тикет найденного ордера (в смысле предусмотреть выгрузку программы и повторную ее загрузку, чтобы не потерять новый тикет). Надеяться на то, что комментарий останется неизменным не стоит.

А если в рынке несколько ордеров, как отфильтровать и найти нужный?

Igor Zakharov
6659
Igor Zakharov  
forex2030:

А если в рынке несколько ордеров, как отфильтровать и найти нужный?

после  from# идёт родительский тикет

forex2030
336
forex2030  

Нахожу нужный тикет, но только последний, если есть новый то предыдущий уже теряется
Есть #3 тралим его, появился #4 тралим его, но #3 уже не тралится, потерялся.

Как видеть все тикеты пока они не попали в историю закрытых??

//+------------------------------------------------------------------+
//|  Возвращает тикет частично закрытой позиции                      |
//-------------------------------------------------------------------+
int NewTicket(){
    int tik=-1;
    for(int i=0; i<OrdersTotal(); i++) 
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {
       if(OrderComment() == "" )                 continue;
       if(StringFind(OrderComment(),"from #")<0) continue;
       tik=OrderTicket();}
return(tik);}
Renat Akhtyamov
16193
Renat Akhtyamov  

Не работайте тикетами при частичном закрытии, используйте магики, т.к. магики не меняются

Если снова нужно закрыть частично, то сначала находим нужный магик, потом тикет, потом кроем

forex2030
336
forex2030  
Renat Akhtyamov:

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

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

Файлы:
d8eyb.png 6 kb
Alena Lysenkova
3020
Alena Lysenkova  
forex2030:

Как узнать что при частичном закрытии позиции сменился тикет

тикет #1 лот 0.04
закрылся 50% и теперь эта позиция стала
тикет #2 лот 0.02

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

Цена то не меняется при частичном закрытии. тральте дальше тут нет никаких проблем.
Если же вам по каким то причинам нужно найти базовый тикет, даже при нескольких закрытия, то нужно работать с комментариями. Новый ордер помечается комертарием "#from XXXXX", старый "#to YYYYY" где XXXX это тикет прошлого ордера, YYYY тикет нового ордера.
Вытаскиваем из комментария тикет старого ордера и OrderSelect.  Если закрытий было несколько, то делаем по циклу пока не наткнемся на ордер в которого в комментарии не будет "#to". StringFind(OrderComment(),"#to",0).

Но это все не гарантированный вариант, хотя я не сталкивалась с брокерами у которых такой маркировки нет. Гарантированный будет если вы будите записывать и хранить тикеты ордеров.

Alena Lysenkova
3020
Alena Lysenkova  
forex2030:

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

в таком случае в условия трала добавьте: if(StringFind(OrderComment(),"from"))

forex2030
336
forex2030  
Alena Lysenkova:

в таком случае в условия трала добавьте: if(StringFind(OrderComment(),"from"))

Ё-ма-ё, какая гениальная мысль!!
Помогло, спасибо, тралит теперь все которые закрылись частично, а остальные не трогает))

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий