Вопрос о функции OnTradeTransaction - страница 9

 
fxsaber #:

Речь шла про лог терминала, а не советника.

CS      0       16:07:12.423    Trades  '1119290': deal #17157059 buy 2 SBPR-6.23 at 29551 done (based on order #823874293)
CS      0       16:07:12.424    Trades  '1119290': exchange buy 2 ROSN-6.23 at market
CS      0       16:07:12.436    Trades  '1119290': accepted exchange buy 2 ROSN-6.23 at market
CS      0       16:07:12.437    Trades  '1119290': exchange buy 2 ROSN-6.23 at market placed for execution in 12.851 ms
CS      0       16:07:12.438    Trades  '1119290': deal #17157060 buy 2 ROSN-6.23 at 48132 done (based on order #823876981)
CS      0       16:07:34.793    Trades  '1119290': deal #17157061 buy 5 SBPR-6.23 at 29551 done (based on order #823874293)
CS      0       16:07:34.794    Trades  '1119290': exchange buy 5 ROSN-6.23 at market
CS      0       16:07:34.806    Trades  '1119290': accepted exchange buy 5 ROSN-6.23 at market
CS      0       16:07:34.806    Trades  '1119290': exchange buy 5 ROSN-6.23 at market placed for execution in 12.433 ms
CS      0       16:07:34.809    Trades  '1119290': deal #17157062 buy 2 ROSN-6.23 at 48025 done (based on order #823877613)
CS      0       16:07:34.809    Trades  '1119290': deal #17157063 buy 3 ROSN-6.23 at 48026 done (based on order #823877613)
CS      0       16:07:43.864    Trades  '1119290': sell limit 14 SBPR-6.23 at 29550
CS      0       16:07:43.874    Trades  '1119290': accepted sell limit 14 SBPR-6.23 at 29550
CS      0       16:07:43.875    Trades  '1119290': sell limit 14 SBPR-6.23 at 29550 placed for execution
CS      0       16:07:43.885    Trades  '1119290': deal #17157064 sell 3 SBPR-6.23 at 29550 done (based on order #823878027)
CS      0       16:07:43.885    Trades  '1119290': deal #17157065 sell 1 SBPR-6.23 at 29550 done (based on order #823878027)
CS      0       16:07:43.885    Trades  '1119290': order #823878027 sell limit 14 / 14 SBPR-6.23 at 29550 done in 20.961 ms
CS      0       16:07:43.886    Trades  '1119290': deal #17157066 sell 1 SBPR-6.23 at 29550 done (based on order #823878027)
CS      0       16:07:43.886    Trades  '1119290': deal #17157067 sell 1 SBPR-6.23 at 29550 done (based on order #823878027)
CS      0       16:07:43.886    Trades  '1119290': deal #17157068 sell 1 SBPR-6.23 at 29550 done (based on order #823878027)
CS      0       16:07:43.886    Trades  '1119290': deal #17157069 sell 1 SBPR-6.23 at 29550 done (based on order #823878027)
CS      0       16:07:43.886    Trades  '1119290': deal #17157070 sell 2 SBPR-6.23 at 29550 done (based on order #823878027)
CS      0       16:07:43.886    Trades  '1119290': exchange sell 3 ROSN-6.23 at market
CS      0       16:07:43.887    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.889    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.889    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.889    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.889    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.890    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.891    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.891    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.892    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.892    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.893    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.893    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.893    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.894    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.894    Trades  '1119290': exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.895    Trades  '1119290': exchange sell 2 ROSN-6.23 at market
CS      0       16:07:43.896    Trades  '1119290': accepted exchange sell 3 ROSN-6.23 at market
CS      0       16:07:43.896    Trades  '1119290': exchange sell 3 ROSN-6.23 at market placed for execution in 10.144 ms
CS      0       16:07:43.898    Trades  '1119290': accepted exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.898    Trades  '1119290': exchange sell 1 ROSN-6.23 at market placed for execution in 10.552 ms
CS      0       16:07:43.898    Trades  '1119290': accepted exchange sell 1 ROSN-6.23 at market
CS      0       16:07:43.899    Trades  '1119290': exchange sell 1 ROSN-6.23 at market placed for execution in 10.305 ms

Что это даёт. Я пишу про вызов функции OnTradeTransaction на добавление сделки в истории, а не на новую ID позиции или её изменение.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопрос о функции OnTradeTransaction

Andrey Kaunov, 2023.03.18 10:38

Нет нет, ты не ищи совпадение количества лотов и количество вызова функции OnTradeTransaction. Это просто совпадение. И переворота здесь никакого нет, ты видишь сделку in/out хоть одну? ID позиции вообще тут не причём. То что ты пишешь, к делу никакого отношения вообще не имеет.

Функция OnTradeTransaction вызывается на добавление сделки 17157064 и 17157065 (событие TRADE_TRANSACTION_DEAL_ADD) по одному разу. А на остальные по нескольку. Вот что главное! Тогда как должна на каждое добавление сделки в историю вызываться один раз. Или я в этом не прав?


P.S. Я логи привел. На добавление сделки 17157066 в историю  функция OnTradeTransaction вызывалась 5 раз, на добавление 17157067 - 4 раза, на добавление 17157068 - 3 раза, на добавление 17157069 - как минимум 2 раза (может ещё там ниже в логах, надо посмотреть). Какие ещё нужны факты?

Почему мне это приходится всем разжевывать. Может статью тоже почитаете, или документацию
Рецепты MQL5 - обработка события TradeTransaction
Рецепты MQL5 - обработка события TradeTransaction
  • www.mql5.com
В статье описываются возможности языка MQL5 с точки зрения событийно-ориентированного программирования. Преимущество данного подхода состоит в том, что программа может получать информацию о поэтапном выполнении торговой операции. Приводится пример того, как с помощью обработчика события TradeTransaction можно получать и обрабатывать информацию о совершаемых торговых действиях. Думаю, что такой подход можно смело применять для целей копирования торговых сделок с терминала на терминал.
 
Andrey Kaunov #:

Почему мне это приходится всем разжевывать.

Мне с первого поста была понятна проблема, но вы решили, что она мне непонятна...


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


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

 

Нет, советник один работает. Это абсолютно точно.

И ничуть не сомневаюсь в вашей компетенции, просто пробиваться через толпы крайне поверхностно читающих форум пользователей, отнимает много энергии и времени.

Кстати, мой сигнал про ошибки в отчёте тестера приняли к сведению. Написал в личку одному из разработчиков MQ.


P.S. В проверках исключил все возможности её ошибочности. И это не единичный результат, такое происходит постоянно. В понедельник могу повторить опыт. Попробуйте сами, брокер Открытие, срочный рынок.

 

Собрал пока вот такой костыль, чтобы повторные вызовы функции по той же сделке отклонялись. Но всё же надеюсь, что разработчики MQ обратят внимание на эту проблему.

//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result) {
  
//--- get transaction type as enumeration value
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in history
   if(type==TRADE_TRANSACTION_DEAL_ADD) {
      static ulong deal_ticket[];
      int size_arr=(int)deal_ticket.Size();      
      for(int t=size_arr-1; t>=0; t--)
         if(deal_ticket[t]==trans.deal)
            return;
      ArrayResize(deal_ticket, size_arr+1, 1000); 
      deal_ticket[size_arr]=trans.deal; 
          
      if(trans.order==gl_ticket_limit_up) {
         double volume_position=trans.volume;
         for(int i=0; i<3; i++)
            if(NormalizeDouble(symbol_data_up[i].volume, 2)>0.0)
               Fn_position_open(symbol_data_up[i].symbol, symbol_data_up[i].is_buy, symbol_data_up[i].volume*volume_position);
      }   
      if(trans.order==gl_ticket_limit_down) {
         double volume_position=m_deal.Volume();
         for(int i=0; i<3; i++)
            if(NormalizeDouble(symbol_data_down[i].volume, 2)>0.0)
               Fn_position_open(symbol_data_down[i].symbol, symbol_data_down[i].is_buy, symbol_data_down[i].volume*volume_position);
      }   
   }
}
 

Для тех, кто не в теме, поясните пожалуйста, почему в изначально приведенном логе эксперта подсвечены сделки по ROSN-6.23, а в вышеприведенном логе терминала - сделки по SBPR-6.23?

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

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопрос о функции OnTradeTransaction

Andrey Kaunov, 2023.03.17 18:33

Я тоже не замечал ранее такого поведения функции OnTradeTransaction. Но в этом советнике требуется открыть позиции по другим инструментам объёмом, пропорционально сработавшему объёму отложенному ордеру. И косяк сразу всплыл. По другим инструментам пошли бОльшие объёмы, чем требовалось.

Конечно, если речь про ордер то трижды. Я пишу про сделку. По каждой сделке должно быть одно срабатывание. А там несколько, и это видно в логах (номер сделки один, это тоже видно). Отложенный ордер там был № 823878027 (14 лотов), и это не все логи его открытия. Там 7 лотов уходило на закрытие BUY (они и отражены в логах) и остальные 7 на открытие SELL, переворот был. Со сделки № 17157069 началось открытие SELL. Можно несложно посчитать, учитывая задублированные срабатывания по сделкам, что 7 (первая сделка 3 лота, остальные по 1) лотов закрыли BUY, и далее пошло открытие. 

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


Тут ответ на первый вопрос. Сделки по ROSN-6.23 открывает на основании объёмов сработавшей лимитки на SBPR-6.23. А стоит советник вообще на третьей паре. Но вы не туда копаете, я же проверяю тип сделки. Кстати, проверяется тип события TRADE_TRANSACTION_DEAL_ADD, вы ошиблись. Тип сделки тоже там проверяется. Там везде  DEAL_TYPE_SELL, типов по комиссии и балансу, типа DEAL_TYPE_BALANCE или DEAL_TYPE_COMMISSION нет. Я тоже сразу об этом подумал.

P.S. К тому же на начисление комиссии предположительно генерировалось бы событие  TRADE_TRANSACTION_DEAL_UPDATE, хотя такого, как писал автор статьи, он никогда не встречал. Либо начисление комиссии проходило бы по типу  TRADE_TRANSACTION_DEAL_ADD, но другой, отдельной, сделкой с другим типом, не DEAL_TYPE_SELL. Но конечно, от брокера можно ожидать всего. И чей это косяк, брокера или подсистемы терминала? Кто генерирует эти события? Вопросов много.

 
Andrey Kaunov #:

Собрал пока вот такой костыль, чтобы повторные вызовы функции по той же сделке отклонялись. Но всё же надеюсь, что разработчики MQ обратят внимание на эту проблему.

Андрей, можете вот сюда

         if(deal_ticket[t]==trans.deal)
            return;

перед return поставить распечатку, типа «условие выполнено». И в дальнейшем посмотреть сколько раз встретится такая ситуация.

 

Да, конечно, Алексей. Вот код:

      static ulong deal_ticket[];
      int size_arr=(int)deal_ticket.Size();      
      for(int t=size_arr-1; t>=0; t--)
         if(deal_ticket[t]==trans.deal) {
            printf("%s: Processed transaction found: %I64u", __FUNCTION__, trans.deal);
            return;
         }   
      ArrayResize(deal_ticket, size_arr+1, 1000); 
      deal_ticket[size_arr]=trans.deal; 

Вот лог:

CS      0       11:24:13.260    eSyntheticChartLimit (RTS-6.23,M1)      CTrade::OrderSend: modify #824749625 at 30311 (sl: 0 tp: 0) [invalid request]
CS      0       11:24:38.878    eSyntheticChartLimit (RTS-6.23,M1)      CTrade::OrderSend: modify #824749625 at 30281 (sl: 0 tp: 0) [invalid request]
CS      0       11:24:50.006    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157950   order: 824749625   volume: 1.000000
CS      0       11:24:50.006    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:24:50.006    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_OUT   Deal Type: DEAL_TYPE_SELL
CS      0       11:24:50.006    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: down 0   symbol: ROSN-6.23   symbol_volume: 1.000000   volume_position: 1.000000
CS      0       11:24:50.006    eSyntheticChartLimit (RTS-6.23,M1)      Symbol ROSN-6.23 trade exe SYMBOL_TRADE_EXECUTION_EXCHANGE
CS      0       11:24:50.006    eSyntheticChartLimit (RTS-6.23,M1)      Тикет открытой сделки: 0; Тикет открытого ордера: 0
CS      0       11:24:50.006    eSyntheticChartLimit (RTS-6.23,M1)      ResultRetcode: 10008
CS      0       11:24:50.037    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157951   order: 824754371   volume: 1.000000
CS      0       11:24:50.037    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:24:50.037    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_OUT   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:12.509    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157955   order: 824749625   volume: 5.000000
CS      0       11:26:12.509    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:12.509    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_INOUT   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:12.509    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: down 0   symbol: ROSN-6.23   symbol_volume: 1.000000   volume_position: 5.000000
CS      0       11:26:12.509    eSyntheticChartLimit (RTS-6.23,M1)      Symbol ROSN-6.23 trade exe SYMBOL_TRADE_EXECUTION_EXCHANGE
CS      0       11:26:12.509    eSyntheticChartLimit (RTS-6.23,M1)      Тикет открытой сделки: 0; Тикет открытого ордера: 0
CS      0       11:26:12.509    eSyntheticChartLimit (RTS-6.23,M1)      ResultRetcode: 10008
CS      0       11:26:12.527    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157956   order: 824757692   volume: 1.000000
CS      0       11:26:12.527    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:12.527    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_OUT   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:12.527    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157956   order: 824757692   volume: 1.000000
CS      0       11:26:12.527    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Processed transaction found: 17157956
CS      0       11:26:12.527    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157957   order: 824757692   volume: 1.000000
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_IN   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157956   order: 824757692   volume: 1.000000
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Processed transaction found: 17157956
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157957   order: 824757692   volume: 1.000000
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Processed transaction found: 17157957
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157958   order: 824757692   volume: 1.000000
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_IN   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157959   order: 824757692   volume: 1.000000
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:12.528    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_IN   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:12.530    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157960   order: 824757692   volume: 1.000000
CS      0       11:26:12.530    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:12.530    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_IN   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:12.710    eSyntheticChartLimit (RTS-6.23,M1)      CTrade::OrderSend: modify #824749625 at 30275 (sl: 0 tp: 0) [invalid request]
CS      0       11:26:22.009    eSyntheticChartLimit (RTS-6.23,M1)      CTrade::OrderSend: modify #824749625 at 30265 (sl: 0 tp: 0) [invalid request]
CS      0       11:26:33.081    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157962   order: 824749625   volume: 2.000000
CS      0       11:26:33.081    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:33.081    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_IN   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:33.081    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: down 0   symbol: ROSN-6.23   symbol_volume: 1.000000   volume_position: 2.000000
CS      0       11:26:33.081    eSyntheticChartLimit (RTS-6.23,M1)      Symbol ROSN-6.23 trade exe SYMBOL_TRADE_EXECUTION_EXCHANGE
CS      0       11:26:33.081    eSyntheticChartLimit (RTS-6.23,M1)      Тикет открытой сделки: 0; Тикет открытого ордера: 0
CS      0       11:26:33.081    eSyntheticChartLimit (RTS-6.23,M1)      ResultRetcode: 10008
CS      0       11:26:33.101    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157963   order: 824758370   volume: 1.000000
CS      0       11:26:33.102    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:33.102    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_IN   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:33.105    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157964   order: 824758370   volume: 1.000000
CS      0       11:26:33.105    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:33.105    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_IN   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:36.391    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157965   order: 824749625   volume: 1.000000
CS      0       11:26:36.391    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:36.391    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_IN   Deal Type: DEAL_TYPE_SELL
CS      0       11:26:36.391    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: down 0   symbol: ROSN-6.23   symbol_volume: 1.000000   volume_position: 1.000000
CS      0       11:26:36.391    eSyntheticChartLimit (RTS-6.23,M1)      Symbol ROSN-6.23 trade exe SYMBOL_TRADE_EXECUTION_EXCHANGE
CS      0       11:26:36.391    eSyntheticChartLimit (RTS-6.23,M1)      Тикет открытой сделки: 0; Тикет открытого ордера: 0
CS      0       11:26:36.391    eSyntheticChartLimit (RTS-6.23,M1)      ResultRetcode: 10008
CS      0       11:26:36.411    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: deal: 17157966   order: 824758464   volume: 1.000000
CS      0       11:26:36.411    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Select   ticket_limit_up: 0   ticket_limit_down: 824749625
CS      0       11:26:36.411    eSyntheticChartLimit (RTS-6.23,M1)      OnTradeTransaction: Deal Entry: DEAL_ENTRY_IN   Deal Type: DEAL_TYPE_SELL
P.S. Не заметил очевидных закономерностей в появлении этой ситуации.
 
Andrey Kaunov #:

Да, конечно, Алексей. Вот код:

Вот лог:

P.S. Не заметил очевидных закономерностей в появлении этой ситуации.

Это опять «переворот» позиции?

Может это от того, что одна сделка влияет на две позиции? У одной позиции убавляет количество лотов, а у второй прибавляет…