Новая версия платформы MetaTrader 5 build 6230: больше возможностей AI - страница 19

fxsaber #:

Смею утверждать, что bid/ask-поток цен иногда отстает от last-потока.

А еще может быть просто пропуск bid-цены.

На скрине last-цена SELL-сделки выше, чем у предыдущего тика.


На скрине ниже это происходит в одну и ту же миллисекунду.

fxsaber # :

А еще может быть просто пропуск bid-цены.

На скрине last-цена SELL-сделки выше, чем у предыдущего тика.


На скрине ниже это происходит в одну и ту же миллисекунду.

Новые ордера в книге ордеров — это не проблема. Проблема в том, что не все изменения цен покупки/продажи доступны в данных.
Alain Verleyen #:
Можете ли вы предоставить мне советника/настройки для проверки лимитных ордеров?

Вот

input datetime openTime    = D'2026.10.01 11:44:00';
input datetime closeTime   = D'2022.01.02 03:00:00';

input datetime printTiksFrom = D'2026.10.01 11:51:17';
input datetime printTiksTo   = D'2026.10.01 11:51:18';
input ENUM_ORDER_TYPE otype = 0;
input double lot = 1;
input int SL = 20;//SL in points
#include <Trade\Trade.mqh>
CTrade ExtTrade;
void OnTick(void){
   static MqlTick Tick; static bool opened=false, closed=false; static double pt20=20*_Point,open=0;
   if (!SymbolInfoTick(_Symbol, Tick)){ return;}

   if(!opened && Tick.time>=openTime ){opened=true; Print("Open position"); 
      if(otype==ORDER_TYPE_SELL){ExtTrade.PositionOpen(_Symbol,otype,lot,Tick.bid,Tick.ask+(SL*_Point),0);}
      if(otype==ORDER_TYPE_BUY ){ExtTrade.PositionOpen(_Symbol,otype,lot,Tick.ask,Tick.bid-(SL*_Point),0);}
      if(otype==ORDER_TYPE_SELL_LIMIT){open=Tick.bid+pt20;Print("sell lim bid=",Tick.bid," open=",open);ExtTrade.OrderOpen(_Symbol,otype,lot,0,open,open+(SL*_Point),0);}
      if(otype==ORDER_TYPE_BUY_LIMIT ){open=Tick.ask-pt20;Print("buy  lim ask=",Tick.ask," open=",open);ExtTrade.OrderOpen(_Symbol,otype,lot,0,open,open-(SL*_Point),0);}
   }
   if(closeTime>openTime && !closed && Tick.time>=closeTime){closed=true; ExtTrade.PositionClose(_Symbol);}
   
   if(Tick.time>= printTiksFrom && Tick.time< printTiksTo){ Print(Tick.time,".",Tick.time_msc%1000," bid:",Tick.bid," ask:",Tick.ask," last:",Tick.last," vol:",Tick.volume," flags:",Tick.flags,Flags(Tick.flags));}
}

void OnDeinit(const int reason){
   HistorySelect(0,TimeCurrent());
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;double price,sl,slippage;datetime time;long type,entry;ulong msk;
   for(uint i=0;i<total;i++){
      if((ticket=HistoryDealGetTicket(i))>0){ //--- try to get deals ticket
         price =HistoryDealGetDouble(ticket,DEAL_PRICE);
         sl =HistoryDealGetDouble(ticket,DEAL_SL);
         time  =(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
         type  =HistoryDealGetInteger(ticket,DEAL_TYPE);
         msk  =HistoryDealGetInteger(ticket,DEAL_TIME_MSC);
         entry =HistoryDealGetInteger(ticket,DEAL_ENTRY);
           if(entry==DEAL_ENTRY_OUT){
              slippage=(type==0?sl-price:price-sl);
              Print(time,".",msk%1000," entry:OUT type:",(type==0?"sell->buy":"buy->sell")," sl:",sl," close price:",price," slippage:",(slippage>0?"+":""),DoubleToString(slippage,_Digits));
           }
        }
     }
     Print("OnTrade total:",total);
  }
  
string Flags(ulong f){
   string s="";
   if((f &TICK_FLAG_BID)   == TICK_FLAG_BID){s+=" BID";} 
   if((f &TICK_FLAG_ASK)   == TICK_FLAG_ASK){s+=" ASK";} 
   if((f &TICK_FLAG_SELL)  == TICK_FLAG_SELL){s+=" SELL";} 
   if((f &TICK_FLAG_BUY)   == TICK_FLAG_BUY){s+=" BUY";} 
   if((f &TICK_FLAG_LAST)  == TICK_FLAG_LAST){s+=" LAST";} 
   if((f &TICK_FLAG_VOLUME)== TICK_FLAG_VOLUME){s+=" VOLUME";} 
   return s;
}


Настройки в limit.set файле с ними сразу увидите тики в момент срабатывания лимитного ордера.

На скриншоте видно, что он сработал в момент появления Bid/Ask тика, в момент прохождения Ask с 97.96 на 97.88 уровня тригера Limit ордера 97.92. Все логично.

Файлы:
limit.set  1 kb
Aleksey Vyazmikin #:
Так а должны по Last - иначе не было факта сделки в истории и с чего он должен быть в тестере.
Показал что в тестере происходит.
Aleksei Kuznetsov # :

Вот


Настройки в limit.set файле с ними сразу увидите тики в момент срабатывания лимитного ордера.

На скриншоте видно, что он сработал в момент появления Bid/Ask тика, в момент прохождения Ask с 97.96 на 97.88 уровня тригера Limit ордера 97.92. Все логично.

Да, триггер срабатывает правильно, за исключением того, что срабатывание триггера происходит из-за изменения цены предложения до 97,87.

Ваш лимитный ордер на покупку (BUY LIMIT) отображается в книге ордеров как заявка на покупку (Bid), и для того, чтобы сделка стала успешной, он должен совпасть с ордером продавца (Seller).

Alain Verleyen #:

Да, триггер срабатывает правильно, за исключением того, что срабатывание триггера происходит из-за изменения цены предложения до 97,87.

Ваш лимитный ордер на покупку (BUY LIMIT) отображается в книге ордеров как заявка на покупку (Bid), и для того, чтобы сделка стала успешной, он должен совпасть с ордером продавца (Seller).

Вот значит вы согласны, что лимитные ордера исполняются по Ask/Bid тикам и что это правильно.

Возможно и для стоповых ордеров (и StopLoss тоже) правильно будет исполняться по Ask/Bid тикам? Вместо Last, как происходит сейчас.

Aleksei Kuznetsov # :

Вот значит вы согласны, что лимитные ордера исполняются по Ask/Bid тикам и что это правильно.

Да.

Возможно и для стоповых ордеров (и StopLoss тоже) правильно будет исполняться по Ask/Bid тикам? Вместо Last, как происходит сейчас.

Стоп-лосс и стоп-ордера похожи. Они срабатывают по последней цене, а затем исполняются как рыночные ордера (цена покупки/продажи).

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

Alain Verleyen #:
 Проблема в том, что не все изменения цен покупки/продажи доступны в данных.
   Все верно. Когда был брокер Открытие тиков там было больше на десятки процентов, чем в Финам. 
Alain Verleyen #:

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

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

Запустил эксперт для проверки срабатывания SL на рабочем счете. Каждый тик идет печать его параметров.
Вот первое срабатывание SL:
Сделки  Тики 
2026.10.22 13:35:34.627    Trades    '27157': exchange buy 1 GAZP at market sl: 110.68
2026.10.22 13:35:34.659    Trades    '27157': accepted exchange buy 1 GAZP at market sl: 110.68
2026.10.22 13:35:34.659    Trades    '27157': exchange buy 1 GAZP at market sl: 110.68 placed for execution
2026.10.22 13:35:34.799    Trades    '27157': order #866057337 buy 1 / 1 GAZP at market done in 174.744 ms
2026.10.22 13:35:34.799    Trades    '27157': deal #50594844 buy 1 GAZP at 110.90 done (based on order #866057337)

Сработал SL
2026.10.22 13:38:23.018    Trades    '27157': deal #50595011 sell 1 GAZP at 110.67 done (based on order #866058484)

2026.10.22 13:38:21.944    test_trail (GAZP,M1)    2026.10.22 13:38:21.78 bid:110.71 ask:110.72 last:110.71 vol:24 flags:1028 ASK
2026.10.22 13:38:22.168    test_trail (GAZP,M1)    2026.10.22 13:38:21.134 bid:110.7 ask:110.72 last:110.71 vol:24 flags:1026 BID
2026.10.22 13:38:22.483    test_trail (GAZP,M1)    2026.10.22 13:38:21.620 bid:110.7 ask:110.72 last:110.7 vol:109 flags:1112 SELL LAST VOL
2026.10.22 13:38:22.636    test_trail (GAZP,M1)    2026.10.22 13:38:21.774 bid:110.7 ask:110.72 last:110.72 vol:10 flags:1080 BUY LAST VOL
2026.10.22 13:38:22.797    test_trail (GAZP,M1)    2026.10.22 13:38:21.932 bid:110.7 ask:110.72 last:110.69 vol:30 flags:1112 SELL LAST VOL
2026.10.22 13:38:22.839    test_trail (GAZP,M1)    2026.10.22 13:38:21.937 bid:110.7 ask:110.72 last:110.69 vol:12 flags:1112 SELL LAST VOL
2026.10.22 13:38:22.844    test_trail (GAZP,M1)    2026.10.22 13:38:21.937 bid:110.68 ask:110.7 last:110.69 vol:12 flags:1030 BID ASK
2026.10.22 13:38:22.846    test_trail (GAZP,M1)    2026.10.22 13:38:21.994 bid:110.68 ask:110.7 last:110.67 vol:59 flags:1112 SELL LAST VOL
2026.10.22 13:38:22.871    test_trail (GAZP,M1)    2026.10.22 13:38:21.999 bid:110.68 ask:110.7 last:110.68 vol:56 flags:1112 SELL LAST VOL

установился новый Bid = 110.67
2026.10.22 13:38:22.874    test_trail (GAZP,M1)    2026.10.22 13:38:22.23 bid:110.67 ask:110.68 last:110.68 vol:56 flags:1030 BID ASK

сработал мой SL с Volume=1
2026.10.22 13:38:22.986    test_trail (GAZP,M1)    2026.10.22 13:38:22.120 bid:110.67 ask:110.68 last:110.67 vol:1 flags:1112 SELL LAST VOL

Затем сработали другие ордеры по той же цене 110.67
2026.10.22 13:38:23.191    test_trail (GAZP,M1)    2026.10.22 13:38:22.183 bid:110.67 ask:110.68 last:110.67 vol:36 flags:1112 SELL LAST VOL
2026.10.22 13:38:23.648    test_trail (GAZP,M1)    2026.10.22 13:38:22.785 bid:110.67 ask:110.68 last:110.67 vol:2 flags:1112 SELL LAST VOL
2026.10.22 13:38:23.931    test_trail (GAZP,M1)    2026.10.22 13:38:23.73 bid:110.67 ask:110.68 last:110.67 vol:50 flags:1112 SELL LAST VOL

2026.10.22 13:38:23.951    test_trail (GAZP,M1)    2026.10.22 13:38:23.98 bid:110.67 ask:110.68 last:110.69 vol:53 flags:1112 SELL LAST VOL
2026.10.22 13:38:23.991    test_trail (GAZP,M1)    2026.10.22 13:38:23.98 bid:110.69 ask:110.7 last:110.69 vol:53 flags:1030 BID ASK
2026.10.22 13:38:24.704    test_trail (GAZP,M1)    2026.10.22 13:38:23.845 bid:110.69 ask:110.7 last:110.69 vol:1 flags:1112 SELL LAST VOL

Сработал SL второй сделки после тралла:

Сделки  Тики 

2026.10.22 13:38:23.039    Trades    '27157': exchange buy 1 GAZP at market sl: 110.47
2026.10.22 13:38:23.070    Trades    '27157': accepted exchange buy 1 GAZP at market sl: 110.47
2026.10.22 13:38:23.071    Trades    '27157': exchange buy 1 GAZP at market sl: 110.47 placed for execution
2026.10.22 13:38:23.191    Trades    '27157': order #866058488 buy 1 / 1 GAZP at market done in 153.098 ms
2026.10.22 13:38:23.193    Trades    '27157': deal #50595012 buy 1 GAZP at 110.68 done (based on order #866058488)
2026.10.22 13:38:23.962    Trades    '27157': modify #866058488 buy 1 GAZP sl: 110.47, tp: 0.00 -> sl: 110.59, tp: 0.00
2026.10.22 13:38:23.990    Trades    '27157': accepted modify #866058488 buy 1 GAZP sl: 110.59, tp: 0.00 -> sl: 110.59, tp: 0.00
2026.10.22 13:38:23.991    Trades    '27157': modify #866058488 buy 1 GAZP -> sl: 110.59, tp: 0.00 done in 28.808 ms
2026.10.22 13:38:40.051    Trades    '27157': modify #866058488 buy 1 GAZP sl: 110.59, tp: 0.00 -> sl: 110.65, tp: 0.00
2026.10.22 13:38:40.079    Trades    '27157': accepted modify #866058488 buy 1 GAZP sl: 110.59, tp: 0.00 -> sl: 110.65, tp: 0.00
2026.10.22 13:38:40.079    Trades    '27157': modify #866058488 buy 1 GAZP -> sl: 110.65, tp: 0.00 done in 28.947 ms
2026.10.22 13:42:46.479    Trades    '27157': modify #866058488 buy 1 GAZP sl: 110.65, tp: 0.00 -> sl: 110.71, tp: 0.00
2026.10.22 13:42:46.505    Trades    '27157': accepted modify #866058488 buy 1 GAZP sl: 110.65, tp: 0.00 -> sl: 110.71, tp: 0.00
2026.10.22 13:42:46.506    Trades    '27157': modify #866058488 buy 1 GAZP -> sl: 110.71, tp: 0.00 done in 28.254 ms
2026.10.22 13:47:22.808    Trades    '27157': modify #866058488 buy 1 GAZP sl: 110.71, tp: 0.00 -> sl: 110.78, tp: 0.00
2026.10.22 13:47:22.836    Trades    '27157': accepted modify #866058488 buy 1 GAZP sl: 110.71, tp: 0.00 -> sl: 110.78, tp: 0.00
2026.10.22 13:47:22.836    Trades    '27157': modify #866058488 buy 1 GAZP -> sl: 110.78, tp: 0.00 done in 28.034 ms
2026.10.22 13:47:47.531    Experts    expert test_trail (GAZP,M1) removed
2026.10.22 13:47:47.537    Experts    expert test_trail (GAZP,M1) loaded successfully

Сработал SL
2026.10.22 13:50:17.235    Trades    '27157': deal #50595391 sell 1 GAZP at 110.78 done (based on order #866062584)
2026.10.22 13:50:13.880    test_trail (GAZP,M1)    2026.10.22 13:50:13.45 bid:110.84 ask:110.85 last:110.85 vol:3 flags:1080 BUY LAST VOL
2026.10.22 13:50:14.480    test_trail (GAZP,M1)    2026.10.22 13:50:13.653 bid:110.84 ask:110.85 last:110.8 vol:1 flags:1112 SELL LAST VOL
2026.10.22 13:50:14.484    test_trail (GAZP,M1)    2026.10.22 13:50:13.653 bid:110.79 ask:110.8 last:110.8 vol:1 flags:1030 BID ASK
2026.10.22 13:50:14.496    test_trail (GAZP,M1)    2026.10.22 13:50:13.661 bid:110.77 ask:110.8 last:110.8 vol:1 flags:1026 BID
2026.10.22 13:50:14.500    test_trail (GAZP,M1)    2026.10.22 13:50:13.673 bid:110.77 ask:110.79 last:110.8 vol:1 flags:1028 ASK
2026.10.22 13:50:14.580    test_trail (GAZP,M1)    2026.10.22 13:50:13.752 bid:110.77 ask:110.8 last:110.8 vol:1 flags:1028 ASK
2026.10.22 13:50:14.592    test_trail (GAZP,M1)    2026.10.22 13:50:13.752 bid:110.77 ask:110.79 last:110.8 vol:1 flags:1028 ASK
2026.10.22 13:50:14.600    test_trail (GAZP,M1)    2026.10.22 13:50:13.770 bid:110.77 ask:110.8 last:110.8 vol:1 flags:1028 ASK
2026.10.22 13:50:14.602    test_trail (GAZP,M1)    2026.10.22 13:50:13.778 bid:110.77 ask:110.79 last:110.8 vol:1 flags:1028 ASK
2026.10.22 13:50:14.613    test_trail (GAZP,M1)    2026.10.22 13:50:13.781 bid:110.77 ask:110.8 last:110.8 vol:1 flags:1028 ASK

установился новый Bid = 110.78
2026.10.22 13:50:14.724    test_trail (GAZP,M1)    2026.10.22 13:50:13.872 bid:110.78 ask:110.8 last:110.8 vol:1 flags:1026 BID
2026.10.22 13:50:16.235    test_trail (GAZP,M1)    2026.10.22 13:50:15.383 bid:110.79 ask:110.81 last:110.8 vol:1 flags:1030 BID ASK
2026.10.22 13:50:17.010    test_trail (GAZP,M1)    2026.10.22 13:50:16.181 bid:110.79 ask:110.81 last:110.78 vol:42 flags:1112 SELL LAST VOL
снова установился новый Bid = 110.78
2026.10.22 13:50:17.025    test_trail (GAZP,M1)    2026.10.22 13:50:16.181 bid:110.78 ask:110.8 last:110.78 vol:42 flags:1030 BID ASK

мой SL 110.78 c Volume=1
2026.10.22 13:50:17.068    test_trail (GAZP,M1)    2026.10.22 13:50:16.240 bid:110.78 ask:110.8 last:110.78 vol:1 flags:1112 SELL LAST VOL

Затем сработали другой ордер по той же цене 110.78
2026.10.22 13:50:17.370    test_trail (GAZP,M1)    2026.10.22 13:50:16.409 bid:110.78 ask:110.8 last:110.78 vol:11 flags:1112 SELL LAST VOL

2026.10.22 13:50:17.895    test_trail (GAZP,M1)    2026.10.22 13:50:16.531 bid:110.78 ask:110.81 last:110.8 vol:1 flags:1028 ASK
2026.10.22 13:50:17.904    test_trail (GAZP,M1)    2026.10.22 13:50:17.73 bid:110.78 ask:110.8 last:110.8 vol:1 flags:1028 ASK

Сработал SL третьей сделки после тралла:

Сделки  Тики 
2026.10.22 13:50:17.243    Trades    '27157': exchange buy 1 GAZP at market sl: 110.58
2026.10.22 13:50:17.271    Trades    '27157': accepted exchange buy 1 GAZP at market sl: 110.58
2026.10.22 13:50:17.271    Trades    '27157': exchange buy 1 GAZP at market sl: 110.58 placed for execution
2026.10.22 13:50:17.370    Trades    '27157': order #866062590 buy 1 / 1 GAZP at market done in 128.359 ms
2026.10.22 13:50:17.380    Trades    '27157': deal #50595393 buy 1 GAZP at 110.80 done (based on order #866062590)
2026.10.22 13:50:30.365    Trades    '27157': modify #866062590 buy 1 GAZP sl: 110.58, tp: 0.00 -> sl: 110.75, tp: 0.00
2026.10.22 13:50:30.392    Trades    '27157': accepted modify #866062590 buy 1 GAZP sl: 110.58, tp: 0.00 -> sl: 110.75, tp: 0.00
2026.10.22 13:50:30.392    Trades    '27157': modify #866062590 buy 1 GAZP -> sl: 110.75, tp: 0.00 done in 28.012 ms
2026.10.22 13:55:59.680    Trades    '27157': modify #866062590 buy 1 GAZP sl: 110.75, tp: 0.00 -> sl: 110.80, tp: 0.00
2026.10.22 13:55:59.707    Trades    '27157': accepted modify #866062590 buy 1 GAZP sl: 110.75, tp: 0.00 -> sl: 110.80, tp: 0.00
2026.10.22 13:55:59.709    Trades    '27157': modify #866062590 buy 1 GAZP -> sl: 110.80, tp: 0.00 done in 30.154 ms

Сработал SL
2026.10.22 14:07:20.932    Trades    '27157': deal #50596092 sell 1 GAZP at 110.81 done (based on order #866067497)
2026.10.22 14:07:12.272    test_trail (GAZP,M1)    2026.10.22 14:07:11.489 bid:110.83 ask:110.86 last:110.86 vol:25 flags:1080 BUY LAST VOL
2026.10.22 14:07:12.281    test_trail (GAZP,M1)    2026.10.22 14:07:11.489 bid:110.84 ask:110.86 last:110.86 vol:25 flags:1026 BID
2026.10.22 14:07:12.354    test_trail (GAZP,M1)    2026.10.22 14:07:11.554 bid:110.83 ask:110.86 last:110.86 vol:25 flags:1026 BID
2026.10.22 14:07:12.411    test_trail (GAZP,M1)    2026.10.22 14:07:11.580 bid:110.84 ask:110.86 last:110.86 vol:25 flags:1026 BID
2026.10.22 14:07:12.519    test_trail (GAZP,M1)    2026.10.22 14:07:11.637 bid:110.83 ask:110.86 last:110.86 vol:25 flags:1026 BID
2026.10.22 14:07:12.617    test_trail (GAZP,M1)    2026.10.22 14:07:11.841 bid:110.84 ask:110.86 last:110.86 vol:25 flags:1026 BID
2026.10.22 14:07:12.654    test_trail (GAZP,M1)    2026.10.22 14:07:11.841 bid:110.83 ask:110.86 last:110.86 vol:25 flags:1026 BID
2026.10.22 14:07:12.789    test_trail (GAZP,M1)    2026.10.22 14:07:11.976 bid:110.84 ask:110.86 last:110.86 vol:25 flags:1026 BID
2026.10.22 14:07:12.853    test_trail (GAZP,M1)    2026.10.22 14:07:12.43 bid:110.83 ask:110.86 last:110.86 vol:25 flags:1026 BID
2026.10.22 14:07:14.011    test_trail (GAZP,M1)    2026.10.22 14:07:13.166 bid:110.84 ask:110.86 last:110.86 vol:25 flags:1026 BID
2026.10.22 14:07:14.659    test_trail (GAZP,M1)    2026.10.22 14:07:13.875 bid:110.84 ask:110.86 last:110.84 vol:4 flags:1112 SELL LAST VOL
2026.10.22 14:07:15.831    test_trail (GAZP,M1)    2026.10.22 14:07:15.35 bid:110.83 ask:110.86 last:110.84 vol:4 flags:1026 BID
2026.10.22 14:07:18.928    test_trail (GAZP,M1)    2026.10.22 14:07:18.53 bid:110.84 ask:110.86 last:110.84 vol:4 flags:1026 BID
2026.10.22 14:07:19.056    test_trail (GAZP,M1)    2026.10.22 14:07:18.282 bid:110.83 ask:110.86 last:110.84 vol:4 flags:1026 BID
2026.10.22 14:07:19.566    test_trail (GAZP,M1)    2026.10.22 14:07:18.781 bid:110.83 ask:110.86 last:110.83 vol:29 flags:1112 SELL LAST VOL
2026.10.22 14:07:20.020    test_trail (GAZP,M1)    2026.10.22 14:07:19.226 bid:110.83 ask:110.86 last:110.86 vol:41 flags:1080 BUY LAST VOL
2026.10.22 14:07:20.660    test_trail (GAZP,M1)    2026.10.22 14:07:19.864 bid:110.83 ask:110.86 last:110.8 vol:255 flags:1112 SELL LAST VOL

установился новый Bid = 110.81
2026.10.22 14:07:20.664    test_trail (GAZP,M1)    2026.10.22 14:07:19.864 bid:110.81 ask:110.85 last:110.8 vol:255 flags:1030 BID ASK
2026.10.22 14:07:20.664    test_trail (GAZP,M1)    2026.10.22 14:07:19.885 bid:110.81 ask:110.84 last:110.8 vol:255 flags:1028 ASK
2026.10.22 14:07:20.688    test_trail (GAZP,M1)    2026.10.22 14:07:19.907 bid:110.81 ask:110.83 last:110.8 vol:255 flags:1028 ASK

мой SL 110.81 c Volume=1
2026.10.22 14:07:20.760    test_trail (GAZP,M1)    2026.10.22 14:07:19.980 bid:110.81 ask:110.83 last:110.81 vol:1 flags:1112 SELL LAST VOL
2026.10.22 14:07:22.241    test_trail (GAZP,M1)    2026.10.22 14:07:21.260 bid:110.81 ask:110.84 last:110.81 vol:1 flags:1028 ASK
2026.10.22 14:07:22.839    test_trail (GAZP,M1)    2026.10.22 14:07:22.47 bid:110.82 ask:110.84 last:110.83 vol:1 flags:1026 BID

Все 3 раза мой SL срабатывал после установления Bid = SL.
Можно сделать вывод, что в реальной торговле на бирже SL активируется не по Last, а по Bid.

Полный листинг тиков приложен.

Файлы:
ticks.txt  504 kb
pivomoe #:
   Все верно. Когда был брокер Открытие тиков там было больше на десятки процентов, чем в Финам. 
Есть и другие варианты уменьшения числа тиков. Не все трейдеры с О перешли в Ф.
С 2022 вообще торговля на бирже просела из за уменьшения числа иностранных трейдеров и наши перешли на вклады с хорошими процентами.