Новая версия платформы MetaTrader 5 build 2450: Сервис "Подписки", улучшения в интерфейсе и удобные функции в MetaEditor - страница 15

 
Наверняка мой вопрос утонет но я всё же спрошу: будет ли какое-то развитие формул для синтетических символов?
 
Просьба к разработчикам, сделайте, пожалуйста, возможность ставить алерт терминала на чартах по которым запрещена торговля.
 

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

Бета-версия платформы MetaTrader 5 build 2430: Сервис "Подписки", улучшения в интерфейсе и удобные функции в MetaEditor

fxsaber, 2020.05.17 00:38

Отсутствие не только в Тестере, но и в самой платформе исполнения лимитника по текущей цене - головная боль. Зачем для исполнения ждать следующего тика? Про биржевое исполнение в курсе.

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

https://www.mql5.com/ru/forum/341117

Лимитники/тейки по текущей цене в Терминале (не в Тестере)
Лимитники/тейки по текущей цене в Терминале (не в Тестере)
  • 2020.05.19
  • www.mql5.com
Сабж рассматривался на форуме неоднократно. Рассказывал, что с этими ордерами происходит в Терминале и в Тестере...
 
Renat Fatkhullin:

Вы использовали штатную темную схему операционки или поставили сторонний хак/стиль?

Все штатное, винда лицензионная. Вот так выглядит тотал командер с настройками системы (на всякий случай).



 

В 2432 поломали тестер.

2020.05.20 09:34:14.674 MetaTester 5 started on 127.0.0.1:3000
2020.05.20 09:34:14.676 initialization finished
2020.05.20 09:34:14.910 login (build 2432)
2020.05.20 09:34:14.914 template file tester.tpl added. 3878 bytes loaded
2020.05.20 09:34:14.917 4372 bytes of account info loaded
2020.05.20 09:34:14.917 1482 bytes of tester parameters loaded
2020.05.20 09:34:14.917 4284 bytes of input parameters loaded
2020.05.20 09:34:14.917 847 bytes of symbols list loaded (121 symbols)
2020.05.20 09:34:14.931 9031 Mb available, 112 blocks set for ticks generating
2020.05.20 09:34:14.931 initial deposit 5000.00 USD, leverage 1:500
2020.05.20 09:34:14.934 successfully initialized
2020.05.20 09:34:14.934 86 Kb of total initialization data received
2020.05.20 09:34:14.934 AMD FX-4170 Quad-Core Processor, 12255 MB


  if(trans.type == TRADE_TRANSACTION_HISTORY_ADD)
   {
    if(!HistoryOrderSelect(trans.order))
     {
      Print(__LINE__, " : ", GetLastError());
      DebugBreak();
     }
    // продолжение
   }
/*
Результат:
2020.05.20 09:37:35.895 2020.03.02 00:06:11   241 : 4755
*/

ERR_TRADE_DEAL_NOT_FOUND

4755

Сделка не найдена

При чём тут сделка?

А продолжение, эта строка

    if(trans.symbol == _Symbol && HistoryOrderGetInteger(trans.order, ORDER_MAGIC) == magic)

выполняется без проблем.


В билде 2430 этого не наблюдалось.

 
Alexey Viktorov:

В 2432 поломали тестер.


ERR_TRADE_DEAL_NOT_FOUND

4755

Сделка не найдена

При чём тут сделка?

А продолжение, эта строка

выполняется без проблем.


В билде 2430 этого не наблюдалось.

Спасибо за сообщение. Исправлено.

Исправление будет доступно в следующей сборке.

 
Anton:

Спасибо за сообщение. Исправлено.

Исправление будет доступно в следующей сборке.

Пожалуйста обратите внимание ещё на одну проблему:

Если открыть позицию используя стандартную библиотеку,

   bool              PositionOpen(const string symbol,const ENUM_ORDER_TYPE order_type,const double volume,
                                  const double price,const double sl,const double tp,const string comment="");

да и любым другим способом, то в том-же блоке, при работе в тестере на исторических данных всё нормально, а в реале и при отладке по F5

  if(trans.type == TRADE_TRANSACTION_HISTORY_ADD)
   {
    // тут trans.price равен нулю
   }

и это длится уже очень давно. Но если происходит активация отложенного ордера, то trans.price имеет нормальное значение.

По идее, ведь даже при открытии позиции без ордера никак не обходится. Тикет есть, а цены нет.

Надеюсь и это будет в следующей сборке исправлено. Спасибо.

 
Alexey Viktorov:

Пожалуйста обратите внимание ещё на одну проблему:

Если открыть позицию используя стандартную библиотеку,

да и любым другим способом, то в том-же блоке

и это длится уже очень давно. Но если происходит активация отложенного ордера, то trans.price имеет нормальное значение.

По идее, ведь даже при открытии позиции без ордера никак не обходится. Тикет есть, а цены нет.

Надеюсь и это будет в следующей сборке исправлено. Спасибо.

Если вы про OnTradeTransaction, то не воспроизводится, trans.price имеет значение.

Приложите свой код для воспроизведения.

PS. Если у вас по символу Market execution, то будет нулевое значение цены. Так и должно быть.

 
Anton:

Если вы про OnTradeTransaction, то не воспроизводится, trans.price имеет значение.

Приложите свой код для воспроизведения.

На снимке работа советника в отладчике по F5

Дальше я дополнил код флагом и запустил на демо счёте.

Результат выполнения. Сначала распечатка дебагера, а потом с графика демо счёта.

2020.05.20 11:26:02.147 Test bag (USDCAD.m,M15) 0.0
2020.05.20 11:30:00.646 Test bag (USDCAD.m,H1)  0.0

Что примечательно, если запустить отладку на исторических данных, то цена ордера есть

2020.05.20 11:34:36.442 MetaTester 5 started on 127.0.0.1:3000
2020.05.20 11:34:36.444 initialization finished
2020.05.20 11:34:36.709 login (build 2432)
2020.05.20 11:34:36.717 template file tester.tpl added. 3878 bytes loaded
2020.05.20 11:34:36.719 4372 bytes of account info loaded
2020.05.20 11:34:36.719 1482 bytes of tester parameters loaded
2020.05.20 11:34:36.719 188 bytes of input parameters loaded
2020.05.20 11:34:36.719 847 bytes of symbols list loaded (121 symbols)
2020.05.20 11:34:36.719 expert file added: Experts\Test\Test bag.ex5. 48165 bytes loaded
2020.05.20 11:34:36.732 8959 Mb available, 111 blocks set for ticks generating
2020.05.20 11:34:36.732 initial deposit 5000.00 USD, leverage 1:500
2020.05.20 11:34:36.735 successfully initialized
2020.05.20 11:34:36.735 51 Kb of total initialization data received
2020.05.20 11:34:36.735 AMD FX-4170 Quad-Core Processor, 12255 MB
2020.05.20 11:34:36.785 USDCAD.m: symbol to be synchronized
2020.05.20 11:34:36.785 USDCAD.m: symbol synchronized, 3800 bytes of symbol info received
2020.05.20 11:34:36.785 USDCAD.m: history synchronization started
2020.05.20 11:34:36.787 USDCAD.m: load 31 bytes of history data to synchronize in 0:00:00.001
2020.05.20 11:34:36.787 USDCAD.m: history synchronized from 2019.01.02 to 2020.05.19
2020.05.20 11:34:36.787 USDCAD.m: ticks synchronization started
2020.05.20 11:34:37.788 USDCAD.m: load 38 bytes of tick data to synchronize in 0:00:00.999
2020.05.20 11:34:37.788 USDCAD.m: history ticks synchronized from 2020.03.02 to 2020.05.19
2020.05.20 11:34:37.951 USDCAD.m,M15: history cache allocated for 34270 bars and contains 28715 bars from 2019.01.02 10:00 to 2020.02.28 23:45
2020.05.20 11:34:37.951 USDCAD.m,M15: history begins from 2019.01.02 10:00
2020.05.20 11:34:37.978 USDCAD.m,M15 (RoboForex-MetaTrader 5): generating based on real ticks
2020.05.20 11:34:37.978 USDCAD.m,M15: testing of Experts\Test\Test bag.ex5 from 2020.03.02 00:00 to 2020.05.20 00:00 started
2020.05.20 11:34:39.752 USDCAD.m : real ticks begin from 2020.03.02 00:00:00
2020.05.20 11:34:39.777 2020.03.02 00:05:12   market buy 0.1 USDCAD.m (1.34345 / 1.34418)
2020.05.20 11:34:39.777 2020.03.02 00:05:12   deal #2 buy 0.1 USDCAD.m at 1.34418 done (based on order #2)
2020.05.20 11:34:39.777 2020.03.02 00:05:12   deal performed [#2 buy 0.1 USDCAD.m at 1.34418]
2020.05.20 11:34:39.777 2020.03.02 00:05:12   order performed buy 0.1 at 1.34418 [#2 buy 0.1 USDCAD.m at 1.34418]
2020.05.20 11:34:39.781 2020.03.02 00:05:12   CTrade::OrderSend: market buy 0.10 USDCAD.m [done at 1.34418]
2020.05.20 11:34:39.781 2020.03.02 00:05:12   1.34418
Файлы:
Test_bag.mq5  4 kb
 
Alexey Viktorov:

На снимке работа советника в отладчике по F5

Дальше я дополнил код флагом и запустил на демо счёте.

Результат выполнения. Сначала распечатка дебагера, а потом с графика демо счёта.

Что примечательно, если запустить отладку на исторических данных, то цена ордера есть

У вас market execution, цена тут не проставляется, и это правильно.

Поведение в тестере видимо надо поменять.