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

Aleksei Kuznetsov #:

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

Получил еще несколько закрытий по SL. 
Опять абсолютно перед всеми сделками с моим SL, обязательно есть Bid тик и SL становится равным этому бид (кроме 2х случаев, когда видно, что появился новый Bid тик добавивший новый уровень с положительным проскальзыванием). 
Оставил комментарии о некоторых сделках или тиках в таблице.

 Сделки Тики 
2026.10.22 14:12:23.413    Trades    '27157': modify #866067505 buy 1 GAZP -> sl: 110.93, tp: 0.00 done in 28.044 ms
2026.10.22 14:13:47.618    Trades    '27157': deal #50596402 sell 1 GAZP at 110.91 done (based on order #866069561)
Slippage=-0.02
2026.10.22 14:13:47.453    test_trail (GAZP,M1)    2026.10.22 14:13:46.683 bid:110.95 ask:110.96 last:110.93 vol:13 flags:1112 SELL LAST VOL
2026.10.22 14:13:47.464    test_trail (GAZP,M1)    2026.10.22 14:13:46.709 bid:110.91 ask:110.93 last:110.93 vol:13 flags:1030 BID ASK
2026.10.22 14:13:47.473    test_trail (GAZP,M1)    2026.10.22 14:13:46.715 bid:110.91 ask:110.93 last:110.91 vol:1 flags:1112 SELL LAST VOL

2026.10.22 14:13:47.776    Trades    '27157': exchange buy 1 GAZP at market sl: 110.71
2026.10.22 14:17:51.819    Trades    '27157': deal #50596660 sell 1 GAZP at 110.71 done (based on order #866071097)
Slippage=0
2026.10.22 14:17:51.645    test_trail (GAZP,M1)    2026.10.22 14:17:50.891 bid:110.74 ask:110.75 last:110.71 vol:58 flags:1112 SELL LAST VOL
2026.10.22 14:17:51.653    test_trail (GAZP,M1)    2026.10.22 14:17:50.891 bid:110.72 ask:110.73 last:110.71 vol:58 flags:1030 BID ASK
2026.10.22 14:17:51.672    test_trail (GAZP,M1)    2026.10.22 14:17:50.909 bid:110.72 ask:110.73 last:110.71 vol:1 flags:1112 SELL LAST VOL
Был Last == SL < Bid - тут возможно Last запустил срабатывание SL
2026.10.22 14:18:39.661    Trades    '27157': modify #866071108 buy 1 GAZP -> sl: 110.64, tp: 0.00 done in 27.352 ms
2026.10.22 14:20:17.717    Trades    '27157': deal #50596914 sell 1 GAZP at 110.63 done (based on order #866072180)
Slippage=-0.01
2026.10.22 14:20:17.566    test_trail (GAZP,M1)    2026.10.22 14:20:16.814 bid:110.71 ask:110.73 last:110.62 vol:712 flags:1112 SELL LAST VOL
2026.10.22 14:20:17.577    test_trail (GAZP,M1)    2026.10.22 14:20:16.839 bid:110.63 ask:110.72 last:110.62 vol:712 flags:1030 BID ASK
2026.10.22 14:20:17.626    test_trail (GAZP,M1)    2026.10.22 14:20:16.887 bid:110.63 ask:110.66 last:110.62 vol:712 flags:1028 ASK
2026.10.22 14:20:17.663    test_trail (GAZP,M1)    2026.10.22 14:20:16.921 bid:110.63 ask:110.66 last:110.63 vol:1 flags:1112 SELL LAST VOL

2026.10.22 14:23:32.514    Trades    '27157': modify #866072189 buy 1 GAZP -> sl: 110.70, tp: 0.00 done in 27.354 ms
2026.10.22 14:23:58.442    Trades    '27157': deal #50597086 sell 1 GAZP at 110.72 done (based on order #866073455)
Slippage=+0.02
2026.10.22 14:23:58.125    test_trail (GAZP,M1)    2026.10.22 14:23:57.368 bid:110.8 ask:110.81 last:110.74 vol:270 flags:1112 SELL LAST VOL
2026.10.22 14:23:58.131    test_trail (GAZP,M1)    2026.10.22 14:23:57.371 bid:110.8 ask:110.81 last:110.79 vol:1 flags:1080 BUY LAST VOL
2026.10.22 14:23:58.132    test_trail (GAZP,M1)    2026.10.22 14:23:57.395 bid:110.72 ask:110.77 last:110.79 vol:1 flags:1030 BID ASK
2026.10.22 14:23:58.152    test_trail (GAZP,M1)    2026.10.22 14:23:57.421 bid:110.72 ask:110.73 last:110.79 vol:1 flags:1028 ASK
2026.10.22 14:23:58.163    test_trail (GAZP,M1)    2026.10.22 14:23:57.421 bid:110.69 ask:110.73 last:110.79 vol:1 flags:1026 BID
2026.10.22 14:23:58.166    test_trail (GAZP,M1)    2026.10.22 14:23:57.431 bid:110.70 ask:110.73 last:110.79 vol:1 flags:1026 BID
2026.10.22 14:23:58.194    test_trail (GAZP,M1)    2026.10.22 14:23:57.462 bid:110.72 ask:110.73 last:110.79 vol:1 flags:1026 BID
2026.10.22 14:23:58.206    test_trail (GAZP,M1)    2026.10.22 14:23:57.462 bid:110.72 ask:110.73 last:110.72 vol:1 flags:1112 SELL LAST VOL
Активация SL по Bid=110.69 <=100.70, но к моменту исполнения кто-то добавил уровень 110.72 в стакан и получили положительное проскальзывание
Тиков Last по цене SL=110.70 не было, предыдущий был 110.74
То есть тут активация SL только по Bid тику
2026.10.22 14:24:57.389    Trades    '27157': modify #866073469 buy 1 GAZP -> sl: 110.76, tp: 0.00 done in 28.740 ms
2026.10.22 14:26:02.264    Trades    '27157': deal #50597196 sell 1 GAZP at 110.76 done (based on order #866074058)
Slippage=0
2026.10.22 14:26:02.134    test_trail (GAZP,M1)    2026.10.22 14:26:01.398 bid:110.79 ask:110.8 last:110.76 vol:29 flags:1112 SELL LAST VOL
2026.10.22 14:26:02.139    test_trail (GAZP,M1)    2026.10.22 14:26:01.398 bid:110.76 ask:110.79 last:110.76 vol:29 flags:1030 BID ASK
2026.10.22 14:26:02.157    test_trail (GAZP,M1)    2026.10.22 14:26:01.423 bid:110.76 ask:110.79 last:110.76 vol:1 flags:1112 SELL LAST VOL

2026.10.22 14:39:57.474    Trades    '27157': modify #866074063 buy 1 GAZP -> sl: 110.79, tp: 0.00 done in 28.152 ms
2026.10.22 14:45:03.635    Trades    '27157': deal #50597829 sell 1 GAZP at 110.75 done (based on order #866079447)
Slippage=-0.04
2026.10.22 14:45:03.513    test_trail (GAZP,M1)    2026.10.22 14:45:02.779 bid:110.8 ask:110.81 last:110.78 vol:29 flags:1112 SELL LAST VOL
2026.10.22 14:45:03.515    test_trail (GAZP,M1)    2026.10.22 14:45:02.779 bid:110.76 ask:110.78 last:110.78 vol:29 flags:1030 BID ASK
2026.10.22 14:45:03.563    test_trail (GAZP,M1)    2026.10.22 14:45:02.836 bid:110.75 ask:110.77 last:110.78 vol:29 flags:1030 BID ASK
2026.10.22 14:45:03.588    test_trail (GAZP,M1)    2026.10.22 14:45:02.890 bid:110.75 ask:110.77 last:110.75 vol:1 flags:1112 SELL LAST VOL
2026.10.22 14:45:03.960    test_trail (GAZP,M1)    2026.10.22 14:45:03.51 bid:110.75 ask:110.77 last:110.75 vol:1 flags:1112 SELL LAST VOL
Активация SL=110.79 тиком с Bid=110.76<110.79
2026.10.22 14:45:03.754    Trades    '27157': exchange buy 1 GAZP at market sl: 110.55
2026.10.22 14:46:19.225    Trades    '27157': deal #50598134 sell 1 GAZP at 110.55 done (based on order #866080549)
Slippage=0
2026.10.22 14:46:18.969    test_trail (GAZP,M1)    2026.10.22 14:46:18.281 bid:110.59 ask:110.6 last:110.55 vol:240 flags:1112 SELL LAST VOL
2026.10.22 14:46:18.985    test_trail (GAZP,M1)    2026.10.22 14:46:18.304 bid:110.55 ask:110.57 last:110.55 vol:240 flags:1030 BID ASK
2026.10.22 14:46:18.994    test_trail (GAZP,M1)    2026.10.22 14:46:18.304 bid:110.55 ask:110.57 last:110.55 vol:1 flags:1112 SELL LAST VOL

2026.10.22 14:52:17.845    Trades    '27157': modify #866080562 buy 1 GAZP -> sl: 110.74, tp: 0.00 done in 28.160 ms
2026.10.22 14:54:06.144    Trades    '27157': deal #50599105 sell 1 GAZP at 110.71 done (based on order #866085428)
Slippage=-0.03
2026.10.22 14:54:05.970    test_trail (GAZP,M1)    2026.10.22 14:54:05.304 bid:110.76 ask:110.77 last:110.73 vol:25 flags:1112 SELL LAST VOL
2026.10.22 14:54:05.980    test_trail (GAZP,M1)    2026.10.22 14:54:05.332 bid:110.71 ask:110.76 last:110.73 vol:25 flags:0
2026.10.22 14:54:05.989    test_trail (GAZP,M1)    2026.10.22 14:54:05.338 bid:110.71 ask:110.76 last:110.71 vol:1 flags:1112 SELL LAST VOL
Активация SL=110.74 тиком с Bid=110.71<110.74
2026.10.22 15:00:41.636    Trades    '27157': modify #866085431 buy 1 GAZP -> sl: 111.06, tp: 0.00 done in 538.716 ms
2026.10.22 15:02:14.667    Trades    '27157': deal #50599828 sell 1 GAZP at 111.03 done (based on order #866089223)
Slippage=-0.03
2026.10.22 15:02:14.569    test_trail (GAZP,M1)    2026.10.22 15:02:13.928 bid:111.07 ask:111.08 last:111.03 vol:15 flags:1112 SELL LAST VOL
2026.10.22 15:02:14.572    test_trail (GAZP,M1)    2026.10.22 15:02:13.928 bid:111.03 ask:111.06 last:111.03 vol:15 flags:1030 BID ASK
2026.10.22 15:02:14.583    test_trail (GAZP,M1)    2026.10.22 15:02:13.946 bid:111.03 ask:111.06 last:111.03 vol:1 flags:1112 SELL LAST VOL

2026.10.22 15:02:44.287    Trades    '27157': modify #866089241 buy 1 GAZP -> sl: 111.03, tp: 0.00 done in 31.786 ms
2026.10.22 15:07:10.778    Trades    '27157': deal #50600134 sell 1 GAZP at 111.04 done (based on order #866090966)
Slippage=+0.01
2026.10.22 15:07:10.641    test_trail (GAZP,M1)    2026.10.22 15:07:10.22 bid:111.04 ask:111.07 last:111.03 vol:130 flags:1112 SELL LAST VOL
2026.10.22 15:07:10.655    test_trail (GAZP,M1)    2026.10.22 15:07:10.22 bid:111.03 ask:111.06 last:111.03 vol:130 flags:1030 BID ASK
2026.10.22 15:07:10.662    test_trail (GAZP,M1)    2026.10.22 15:07:10.40 bid:111.04 ask:111.06 last:111.03 vol:130 flags:1026 BID
2026.10.22 15:07:10.668    test_trail (GAZP,M1)    2026.10.22 15:07:10.48 bid:111.04 ask:111.06 last:111.04 vol:1 flags:1112 SELL LAST VOL
Активация SL по Bid=111.03, но к моменту исполнения кто-то добавил уровень 111.04 в стакан и получили положительное проскальзывание
2026.10.22 15:09:36.480    Trades    '27157': modify #866090986 buy 1 GAZP -> sl: 110.99, tp: 0.00 done in 364.374 ms
2026.10.22 15:11:24.061    Trades    '27157': deal #50600482 sell 1 GAZP at 110.99 done (based on order #866092822)
Slippage=0
2026.10.22 15:11:23.494    test_trail (GAZP,M1)    2026.10.22 15:11:22.880 bid:111.0 ask:111.02 last:111.0 vol:4 flags:1112 SELL LAST VOL
2026.10.22 15:11:23.546    test_trail (GAZP,M1)    2026.10.22 15:11:22.902 bid:110.99 ask:111.02 last:111.0 vol:4 flags:1026 BID
2026.10.22 15:11:23.922    test_trail (GAZP,M1)    2026.10.22 15:11:23.222 bid:111.0 ask:111.02 last:111.0 vol:4 flags:1026 BID
2026.10.22 15:11:23.968    test_trail (GAZP,M1)    2026.10.22 15:11:23.363 bid:110.99 ask:111.02 last:111.0 vol:4 flags:1026 BID
2026.10.22 15:11:23.979    test_trail (GAZP,M1)    2026.10.22 15:11:23.367 bid:110.99 ask:111.02 last:110.99 vol:458 flags:1112 SELL LAST VOL
2026.10.22 15:11:24.001    test_trail (GAZP,M1)    2026.10.22 15:11:23.390 bid:110.99 ask:111.02 last:110.99 vol:1 flags:1112 SELL LAST VOL

 2026.10.22 16:00:59.606    Trades    '27157': modify #866103676 buy 1 GAZP -> sl: 110.76, tp: 0.00 done in 32.050 ms
2026.10.22 16:02:23.847    Trades    '27157': deal #50602883 sell 1 GAZP at 110.76 done (based on order #866105588)
Slippage=0
 2026.10.22 16:02:21.018    test_trail (GAZP,M1)    2026.10.22 16:02:20.754 bid:110.77 ask:110.79 last:110.77 vol:20 flags:1112 SELL LAST VOL
2026.10.22 16:02:21.100    test_trail (GAZP,M1)    2026.10.22 16:02:20.822 bid:110.76 ask:110.79 last:110.77 vol:20 flags:1026 BID
2026.10.22 16:02:22.419    test_trail (GAZP,M1)    2026.10.22 16:02:22.147 bid:110.76 ask:110.78 last:110.77 vol:20 flags:1028 ASK
2026.10.22 16:02:22.911    test_trail (GAZP,M1)    2026.10.22 16:02:22.643 bid:110.76 ask:110.78 last:110.78 vol:1 flags:1080 BUY LAST VOL
2026.10.22 16:02:23.656    test_trail (GAZP,M1)    2026.10.22 16:02:23.392 bid:110.76 ask:110.78 last:110.76 vol:65 flags:1112 SELL LAST VOL
2026.10.22 16:02:23.685    test_trail (GAZP,M1)    2026.10.22 16:02:23.417 bid:110.76 ask:110.78 last:110.76 vol:1 flags:1112 SELL LAST VOL

 2026.10.22 16:16:56.514    Trades    '27157': modify #866105605 buy 1 GAZP -> sl: 110.90, tp: 0.00 done in 32.191 ms
2026.10.22 16:21:24.927    Trades    '27157': deal #50603840 sell 1 GAZP at 110.88 done (based on order #866110915)
Slippage=-0.02
 2026.10.22 16:21:24.757    test_trail (GAZP,M1)    2026.10.22 16:21:24.537 bid:110.9 ask:110.91 last:110.89 vol:29 flags:1112 SELL LAST VOL
2026.10.22 16:21:24.760    test_trail (GAZP,M1)    2026.10.22 16:21:24.537 bid:110.88 ask:110.91 last:110.89 vol:29 flags:1026 BID
2026.10.22 16:21:24.777    test_trail (GAZP,M1)    2026.10.22 16:21:24.559 bid:110.88 ask:110.91 last:110.88 vol:1 flags:1112 SELL LAST VOL


Посчитал проскальзывания SL: 
сумма положительных проскальзываний +0.03 в 2-х сделках,
сумма отрицательных  проскальзываний -0.15 в 6-и сделках,
еще 5 сделок с 0 проскальзыванием.
Тестер дает положительные проскальзывания в несколько раз больше отрицательных (см. сообщения выше). То есть он делает ошибочные срабатывания SL.

И еще несколько сделок Sell, чтобы в обзоре были не только Buy:

 Сделки  Тики
2026.10.22 17:15:54.134    Trades    '27157': modify #866127453 sell 1 GAZP -> sl: 110.57, tp: 0.00 done in 33.009 ms
2026.10.22 17:20:35.413    Trades    '27157': deal #50609740 buy 1 GAZP at 110.58 done (based on order #866133037)
Slippage=-0.01
2026.10.22 17:20:35.025    test_trail (GAZP,M1)    2026.10.22 17:20:34.969 bid:110.54 ask:110.56 last:110.56 vol:5 flags:1080 BUY LAST VOL
2026.10.22 17:20:35.073    test_trail (GAZP,M1)    2026.10.22 17:20:35.28 bid:110.55 ask:110.57 last:110.56 vol:5 flags:1030 BID ASK
2026.10.22 17:20:35.234    test_trail (GAZP,M1)    2026.10.22 17:20:35.173 bid:110.55 ask:110.57 last:110.57 vol:10 flags:1080 BUY LAST VOL
2026.10.22 17:20:35.250    test_trail (GAZP,M1)    2026.10.22 17:20:35.195 bid:110.55 ask:110.57 last:110.58 vol:1 flags:1080 BUY LAST VOL
Отрицательное проскальзывание, наверно на уровне 110.57 было 10 лотов, которы полностью выкуплены до меня
2026.10.22 17:33:04.381    Trades    '27157': modify #866133042 sell 1 GAZP -> sl: 110.54, tp: 0.00 done in 55.396 ms
2026.10.22 17:34:43.123    Trades    '27157': deal #50610645 buy 1 GAZP at 110.54 done (based on order #866137961)
Slippage=0

2026.10.22 17:34:43.033    test_trail (GAZP,M1)    2026.10.22 17:34:43.3 bid:110.5 ask:110.52 last:110.54 vol:102 flags:1080 BUY LAST VOL
2026.10.22 17:34:43.040    test_trail (GAZP,M1)    2026.10.22 17:34:43.28 bid:110.52 ask:110.54 last:110.54 vol:102 flags:1030 BID ASK
2026.10.22 17:34:43.071    test_trail (GAZP,M1)    2026.10.22 17:34:43.53 bid:110.52 ask:110.54 last:110.54 vol:1 flags:1080 BUY LAST VOL

2026.10.22 17:35:44.297    Trades    '27157': modify #866137967 sell 1 GAZP -> sl: 110.61, tp: 0.00 done in 33.806 ms
2026.10.22 17:38:03.262    Trades    '27157': deal #50610956 buy 1 GAZP at 110.61 done (based on order #866139315)
Slippage=0
2026.10.22 17:38:03.140    test_trail (GAZP,M1)    2026.10.22 17:38:03.122 bid:110.57 ask:110.58 last:110.61 vol:874 flags:1080 BUY LAST VOL
2026.10.22 17:38:03.144    test_trail (GAZP,M1)    2026.10.22 17:38:03.122 bid:110.6 ask:110.61 last:110.61 vol:874 flags:1030 BID ASK
2026.10.22 17:38:03.161    test_trail (GAZP,M1)    2026.10.22 17:38:03.155 bid:110.6 ask:110.61 last:110.61 vol:1 flags:1080 BUY LAST VOL

2026.10.22 17:47:51.682    Trades    '27157': modify #866139331 sell 1 GAZP -> sl: 110.40, tp: 0.00 done in 33.789 ms
2026.10.22 17:51:39.585    Trades    '27157': deal #50611972 buy 1 GAZP at 110.41 done (based on order #866145227)
Slippage=-0.01
2026.10.22 17:51:35.258    test_trail (GAZP,M1)    2026.10.22 17:51:35.126 bid:110.38 ask:110.41 last:110.37 vol:42 flags:1030 BID ASK
2026.10.22 17:51:35.612    test_trail (GAZP,M1)    2026.10.22 17:51:35.492 bid:110.39 ask:110.41 last:110.37 vol:42 flags:1026 BID
2026.10.22 17:51:35.646    test_trail (GAZP,M1)    2026.10.22 17:51:35.492 bid:110.38 ask:110.41 last:110.37 vol:42 flags:1026 BID
2026.10.22 17:51:37.273    test_trail (GAZP,M1)    2026.10.22 17:51:37.299 bid:110.38 ask:110.41 last:110.38 vol:79 flags:1112 SELL LAST VOL
2026.10.22 17:51:39.395    test_trail (GAZP,M1)    2026.10.22 17:51:39.417 bid:110.38 ask:110.41 last:110.41 vol:13 flags:1080 BUY LAST VOL
2026.10.22 17:51:39.425    test_trail (GAZP,M1)    2026.10.22 17:51:39.442 bid:110.38 ask:110.41 last:110.41 vol:1 flags:1080 BUY LAST VOL

2026.10.22 17:52:12.123    Trades    '27157': modify #866145233 sell 1 GAZP -> sl: 110.44, tp: 0.00 done in 33.284 ms
2026.10.22 17:55:10.095    Trades    '27157': deal #50612244 buy 1 GAZP at 110.43 done (based on order #866146667)
Slippage=+0.01
2026.10.22 17:55:09.824    test_trail (GAZP,M1)    2026.10.22 17:55:09.855 bid:110.4 ask:110.43 last:110.43 vol:24 flags:1080 BUY LAST VOL
2026.10.22 17:55:09.833    test_trail (GAZP,M1)    2026.10.22 17:55:09.855 bid:110.41 ask:110.43 last:110.43 vol:24 flags:1026 BID
2026.10.22 17:55:09.947    test_trail (GAZP,M1)    2026.10.22 17:55:09.980 bid:110.41 ask:110.43 last:110.45 vol:299 flags:1080 BUY LAST VOL
2026.10.22 17:55:09.953    test_trail (GAZP,M1)    2026.10.22 17:55:09.980 bid:110.41 ask:110.44 last:110.45 vol:299 flags:1028 ASK
2026.10.22 17:55:09.980    test_trail (GAZP,M1)    2026.10.22 17:55:10.18 bid:110.41 ask:110.43 last:110.45 vol:299 flags:1028 ASK
2026.10.22 17:55:09.989    test_trail (GAZP,M1)    2026.10.22 17:55:10.25 bid:110.41 ask:110.43 last:110.43 vol:1 flags:1080 BUY LAST VOL
SL активировался от Ask=110.44. К моменту исполнения кто-то заполнил уровень 110.43 и получилось положительное проскальзывание

2026.10.22 17:57:08.864    Trades    '27157': modify #866146671 sell 1 GAZP -> sl: 110.38, tp: 0.00 done in 134.403 ms
2026.10.22 17:58:13.408    Trades    '27157': deal #50612598 buy 1 GAZP at 110.42 done (based on order #866147960)
Slippage=-0.04
2026.10.22 17:58:13.202    test_trail (GAZP,M1)    2026.10.22 17:58:13.149 bid:110.37 ask:110.39 last:110.42 vol:240 flags:1080 BUY LAST VOL
2026.10.22 17:58:13.277    test_trail (GAZP,M1)    2026.10.22 17:58:13.177 bid:110.37 ask:110.39 last:110.42 vol:145 flags:1080 BUY LAST VOL
2026.10.22 17:58:13.279    test_trail (GAZP,M1)    2026.10.22 17:58:13.177 bid:110.4 ask:110.42 last:110.42 vol:145 flags:1030 BID ASK
2026.10.22 17:58:13.598    test_trail (GAZP,M1)    2026.10.22 17:58:13.333 bid:110.4 ask:110.42 last:110.42 vol:284 flags:1080 BUY LAST VOL
До момента 17:58:13.408 не налел тика с Volume=1. Видимо это случай, когда OnTick() может получать не все тики. 

Для Sell сделок SL всегда происходил после Ask и по цене Ask. 

Этот разбор SL и тиков - подтверждение того, что в тестере надо активацию SL делать по Bid/Ask тикам, а не по Last.

Aleksei Kuznetsov # :
Запустил эксперт для проверки срабатывания 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

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

1. В вашем советнике (в логе) отсутствуют данные по тикам. Функция OnTick может пропускать (и пропускать) тики, а также один триггер OnTick может быть результатом нескольких тиков (пакета тиков). Сравните ваш лог текущих данных с историей тиков, записанных платформой.

Ваш журнал История тиков MT5 Комментарии
2026.10.22 13:38:21.937 ставка:110.7 просьба:110.72 последняя:110.69 объем:12 флаги:1112 ПРОДАТЬ ПОСЛЕДНИЙ ОБЪЕМ
2026.10.22 13:38:21.937 ставка:110.68 просьба:110.7 последняя:110.69 объем:12 флаги:1030 СТАВКА ПРОДАЖА

В вашем логе отображается тик Bid/Ask, которого нет в истории, а также 1 тик SELL, хотя в истории зафиксировано 3 тика за ту же миллисекунду.
2026.10.22 13:38:22.183 ставка: 110.67 просьба: 110.68 последняя: 110.67 объем: 36 флагов: 1112 ПРОДАТЬ ПОСЛЕДНИЙ ОБЪЕМ 1 ПРОДАЖА в вашем журнале (ПОСЛЕДНЯЯ). 3 в истории.

2. Некоторые записанные вами тики в реальном времени не совпадают с историей тиков (понятия не имею, почему, если time_msc — это серверное время, они должны совпадать, но я не знаю, как именно это реализовано в вашем коде).

Ваш журнал История тиков MT5 Комментарии
2026.10.22 13:38:21.994 ставка:110.68 просьба:110.7 последняя:110.67 объем:59 флаги:1112 ПРОДАТЬ ПОСЛЕДНИЙ ОБЪЕМ

Время тика в миллисекундах не совпадает!

3. Если зафиксирована сделка на продажу (=последняя цена), это означает, что текущая цена покупки соответствовала этой цене. Если зафиксирована сделка на покупку (=последняя цена), это означает, что текущая цена продажи соответствовала этой цене.

Предположим, что история тиков по "торговым" позициям корректна и полна (я в этом не уверен, это нужно проверить самостоятельно):

История тиков MT5

Сделка на продажу по цене 110,68 (последняя) активирует ваш стоп-лосс (красный). Цена покупки была на уровне 110,68.
Был срабатывает небольшой рыночный ордер (ваш стоп-лосс) (зеленый) на уровне 110,67 (последний).
Это означает, что на тот момент цена предложения составляла 110,67.
Мы не можем быть уверены, что сделка (зеленого цвета) ваша, это может быть следующая сделка или даже та, что состоялась в 13:38.22.117.
На основании имеющихся данных сказать невозможно.

Стоп-лосс (или стоп-ордер) размещается не в DOM (сервере биржи), а отслеживается на сервере MT5. Когда он срабатывает по последней цене, рыночный ордер размещается на бирже. Между сервером MT5 и сервером биржи существуют задержки, и мы можем точно определить их величину.

Alain Verleyen #:

1. В вашем советнике (в логе) отсутствуют данные по тикам. Функция OnTick может пропускать (и пропускать) тики, а также один триггер OnTick может быть результатом нескольких тиков (пакета тиков). Сравните ваш лог текущих данных с историей тиков, записанных платформой.
2. Некоторые записанные вами тики в реальном времени не совпадают с историей тиков (понятия не имею, почему, если time_msc — это серверное время, они должны совпадать, но я не знаю, как именно это реализовано в вашем коде).

Сравнил. Да, запись тиков онлайн не совпадает с историей которую можно получить из терминала.
Пример: тики за 21 и 22 секунды

Онлайн запись  Тики из терминала 


RP    0    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
ID    0    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
Первые 2 Ask и Bid тика - цены и время не совпадают с тиками из терминала. 

RF    0    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
совпадает

QK    0    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
совпадает

EF    0    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
Была серия тиков в 1 мс - это последний

CE    0    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
Была серия тиков в 1 мс - это последний

NJ    0    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
Почему не сохранен в терминале?

NF    0    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
Была серия тиков в 1 мс - это последний, но 994 мс вместо 979 мс

IF    0    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
совпадает

OI    0    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
Почему не сохранен в терминале?

PG    0    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
Мой SL, но 120 мс вместо 117 мс

FD    0    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
Была серия тиков в 1 мс - это последний

RF    0    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
Была серия тиков в 1 мс - это последний

Мысли о такой разнице в тиках: 

1) пропуск тиков в онлайн записи/торговле в сериях за 1 мс не страшен, так как во всех примерах сохранен последний тик в миллисекунде. Ранее обсуждали, что это самый правильный вариант для серий. И получается что это тик о изменении цены Last, как и описано в документации. А в терминале и тестере сохранены все тики в серии - видимо, чтобы можно было получить полный объем.

2) то что в историю не попали Ask Bid тики - намного хуже пропуска тиков в сериях. Почему полная история удаляет важные Ask Bid тики? Это явная ошибка.

3) Первые 2 Ask и Bid тика: запись онлайн: Bid=110.70 Ask=110.72. Далее идут тики Last с ценами  от 110.70 до 110.68 в течении 2-х секунд. 
Терминал сохранил первые 2 тика так Bid=110.66 и Ask=110.67.     Далее идут тики Last с ценами  от 110.70 до 110.68 в течении 2-х секунд. Last цены прыгают вверх - выглядит ошибкой, в онлайн записи этого скачка нет.



Это еще одна ошибка которую обнаружили вы и её тоже нужно исправлять.

Можете завтра тоже записать онлайн тики и сравнить.

Код эксперта для воспроизведения:

void OnTick(void){
   static MqlTick Tick; 
   if (!SymbolInfoTick(_Symbol, Tick)){ return;}
   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));
}
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+=" VOL";} 
   return s;
}
Alain Verleyen #:

3. Если зафиксирована сделка на продажу (=последняя цена), это означает, что текущая цена покупки соответствовала этой цене. Если зафиксирована сделка на покупку (=последняя цена), это означает, что текущая цена продажи соответствовала этой цене.

Мой SL позже на 1117-979=138 миллискунд - это очень долго для активации SL. В предыдущих примерах это всегда быстрее 50мс:
В ваших отметках тики из одной миллсекунды - так быстро они не исполнятся, так как сервера дилера и биржи имеют задержку в передаче данных.

По онлайн записи тиков мой SL сработал после 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

А Bid Ask уровни меняются конечно из за тиков Last, когда они заберут все лоты из предыдущих уроней Bid Ask.
Порядок изменения цен. 2 варианта:

1) Были старые Bid Ask уровни -> Last тики забирают все лоты с уровня в стакане -> обновляем Bid Ask -> по ним активируем SL. В первом примере именно этот вариант.

2) Были старые Bid Ask уровни -> трейдер снимает свои заявки в стакане с уровней Ask и/или Bid -> обновляем Bid Ask -> по ним активируем SL. 
Похоже вы ограничились первой записью и остальное не читали.Тут находится пример этого варианта событий. Я 2 часа это писал для вас... Скопирую. 

2026.10.22 14:23:32.514    Trades    '27157': modify #866072189 buy 1 GAZP -> sl: 110.70, tp: 0.00 done in 27.354 ms
2026.10.22 14:23:58.442    Trades    '27157': deal #50597086 sell 1 GAZP at 110.72 done (based on order #866073455)
Slippage=+0.02
2026.10.22 14:23:58.125    test_trail (GAZP,M1)    2026.10.22 14:23:57.368 bid:110.8 ask:110.81 last:110.74 vol:270 flags:1112 SELL LAST VOL
2026.10.22 14:23:58.131    test_trail (GAZP,M1)    2026.10.22 14:23:57.371 bid:110.8 ask:110.81 last:110.79 vol:1 flags:1080 BUY LAST VOL
далее нет Last тиков - только перстановка заявок в стакане
В тиках из терминала тоже нет Last тиков после 14:23:57.371

2026.10.22 14:23:58.132    test_trail (GAZP,M1)    2026.10.22 14:23:57.395 bid:110.72 ask:110.77 last:110.79 vol:1 flags:1030 BID ASK
2026.10.22 14:23:58.152    test_trail (GAZP,M1)    2026.10.22 14:23:57.421 bid:110.72 ask:110.73 last:110.79 vol:1 flags:1028 ASK
2026.10.22 14:23:58.163    test_trail (GAZP,M1)    2026.10.22 14:23:57.421 bid:110.69 ask:110.73 last:110.79 vol:1 flags:1026 BID
2026.10.22 14:23:58.166    test_trail (GAZP,M1)    2026.10.22 14:23:57.431 bid:110.70 ask:110.73 last:110.79 vol:1 flags:1026 BID
2026.10.22 14:23:58.194    test_trail (GAZP,M1)    2026.10.22 14:23:57.462 bid:110.72 ask:110.73 last:110.79 vol:1 flags:1026 BID
мой SL
2026.10.22 14:23:58.206    test_trail (GAZP,M1)    2026.10.22 14:23:57.462 bid:110.72 ask:110.73 last:110.72 vol:1 flags:1112 SELL LAST VOL
Активация SL по Bid=110.69 <=100.70, но к моменту исполнения кто-то добавил уровень 110.72 в стакан и получили положительное проскальзывание
Тиков Last по цене SL=110.70 не было, предыдущий Last Sell был 110.74
То есть тут активация SL только по Bid тику

В онлайн записи все выглядит логично.
В терминале не сохранено ни одного Ask/Bid тика в эту секунду. Есть одна серия за одна миллисекунду и еще два Last тика, в том числе мой по 110.72. Куда пропали 5 Ask/Bid тиков?

Можно предположить, что мой SL активировался от Last из серии спустя 460-368=92 миллисекунды - это время для прохождения сигнала от домашнего компьютера до дилера за 1000 километров. 
И если посмотреть на историю всех предыдущий описаний SL, то SL срабатывал гораздо быстрее. Так что предположение скорее неверное, чем верное. 
А вот с Ask Bid тиками из онлайн записи мое описание/предположение выше выглядит логично и происходит быстрее: 462-421=41 мс (выше отмечено цветом).

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

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

fxsaber, 2026.10.21 14:47

Предлагаю Вам для MQ сделать (прикрепить скрипт) эталонный кастомный символ из биржевой истории, но который работает по форекс-правилам и содержит только bid/ask.

Если результат бэктеста на таком символе и на реальном биржевом символе совпадает - исполнение Тестера правильное. Иначе - нет.


Конечно, тестируемый советник не должен содержать анализа last/volume. Входные котировочные данные - только SymbolInfoTick. Соответственно, никаких баров и т.д.

Сделал. Если нигде не ошибся, это должен быть ориентир для оценки исполнения ордеров в Тестере.
Библиотеки: TicksShort
Библиотеки: TicksShort
  • 2025.11.21
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: TicksShort