Частичная фиксация прибыли - страница 2

 
Ihor Herasko:

Да, я же говорю - удобнее, но не универсальнее, т. к. у каждого брокера свои правила. Правил, запрещающих частичное закрытие, еще не видел. А потому исходил из описанного метода.
Я тоже был удивлён до безумия... ДЦ сейчас не вспомню, но открывал у них демку и не так давно, точно есть такие.
 
Alexey Viktorov:
Я тоже был удивлён до безумия... ДЦ сейчас не вспомню, но открывал у них демку и не так давно, точно есть такие.
Я правильно понял: запрещают частичное закрытие?
 
Ihor Herasko:
Я правильно понял: запрещают частичное закрытие?
Не, извини чуток попутал. Запрещают встречное закрытие.
 
Alexey Viktorov:
Не, извини чуток попутал. Запрещают встречное закрытие.

А, ну это да, такое встречается. Я с такими работаю. Но для меня это не принципиально, т. к. локи в рамках одной стратегии не использую. Между стратегиями - да, случаются локи. Но они никогда не рассматриваются как единое целое, каждый ордер закрывается так, будто ордеров других стратегий не существует. 
 
Ihor Herasko:


Почему не подходит? У каждого дочернего ордера в комменте указание, от какого ордера он унаследован. Вот простой пример. Список рабочих ордеров:

Список истории счета:


Как это было получено:

  1. Открыл ордер sell 1.5 (#394552284) и sell 1.2 (#394552364).
  2. Закрыл частично ордер #394552284 на 0.25 лота. В результате появился ордер #394552432 с объемом 1.25 лота и указанием в комментарии "from #394552284". Соответственно, у закрытой части в истории комментарий "to #394552432".
  3. Закрыл частично ордер #394552364 на 0.2 лота. Появился ордер #394552517 с объемом 1.0 лот и указанием в комментарии "from #394552364". Соответственно, у закрытой части объемом 0.2 в комментарии указание "to #394552517".
  4. Закрыл частично ордер #394552432 на 0.1 лота. В результате появился ордер #394552596 с объемом 1.15 лота и указанием в комментарии "from #394552432". Соответственно, у закрытой части в истории комментарий "to #394552596".
И все это разбирается. Все равно, сколько ордеров: 1, 2, 5 или 100. Однозначное соответствие установить можно на 100%.


Спасибо огромное! Это подходит! Не обратил внимание на комментарий, у меня они вообще были отключены. Тема закрыта.
 
Для всех с такой же проблемой кидаю код, полноценный и вроде работающий, сейчас на нашем форуме на стадии теста.
//+------------------------------------------------------------------+
//| возвращает количество закрытых позиций по фиксации прибыли       |
//+------------------------------------------------------------------+
int SchetchikSovp(int type,int tiket) {
int a=0;
string b=IntegerToString(ticket);
  for (int i=OrdersHistoryTotal()-1; i>=0; i--) {
    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
      if (OrderSymbol() != Symbol()) continue;
         if (OrderType()!= type) continue;
            if (OrderType()==OP_BUY) {
               if(StrToInteger(StringSubstr(OrderComment(),4,StringLen(b)+1))==tiket){
                  a++;
                     }
                        }
            if (OrderType()==OP_SELL) {
               if(StrToInteger(StringSubstr(OrderComment(),4,StringLen(b)+1))==tiket){
                  a++;
                     }
                        }
                     }
                 return(a);
              }

Добавляем функцию, она считает сколько сделок закрыто для данного ордера, соответственно если 0, значит фиксируем впервые, если найден один значит фиксируем второй раз и т.д. Всем спасибо!!!

 
Lenar Shajdullin:
Для всех с такой же проблемой кидаю код, полноценный и вроде работающий, сейчас на нашем форуме на стадии теста.

Добавляем функцию, она считает сколько сделок закрыто для данного ордера, соответственно если 0, значит фиксируем впервые, если найден один значит фиксируем второй раз и т.д. Всем спасибо!!!

  for (int i=OrdersTotal()-1; i>=0; i--) {
    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;

 
Andrey Khatimlianskii:

Но зато какой порыв...
 
Andrey Khatimlianskii:


Спасибо, и правда не OrdersTotal, а OrdersHistoryTotal
 
Alexey Viktorov:
Но зато какой порыв...
Прекрасный порыв! Предложить решение на публику, а не тихо пользоваться самому — это сейчас редкость.