Эта библиотека позволяет любой MT4-style советник запустить в визуальном Тестере.
Для этого вначале нужно прописать только две строки
#define TESTER_CUSTOM // Запуск советника в пользовательском Тестере #include <fxsaber\Tester\Tester.mqh> // https://www.mql5.com/ru/code/24848
После компиляции запускаете советник на нужном Вам чарте и получаете окно визуального Тестера, где крутится Ваша ТС.
В отличие от MT5-Тестера, данный визуальный Тестер работает не на Агенте, а в самом Терминале.
Все это в чем-то повторяет возможности MT4-Тестера. Но есть и доп. возможности.
Первый запуск Тестера.
С библиотекой в качестве примера идет простейший советник для ручной торговли.
// #define REPORT_BROWSER // Создание отчета с запуском браузера - требует разрешения DLL. #define TESTER_CUSTOM // Запуск советника в пользовательском Тестере #include <fxsaber\Tester\Tester.mqh> // https://www.mql5.com/ru/code/24848 // Простейший советник для ручной торговли. #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006 #define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID) #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK) #define KEY_B 66 #define KEY_S 83 #define KEY_C 87 // Клавиша b - покупка, s - продажа, c - закрытие. void OnChartEvent( const int id, const long &lparam, const double &dparam, const string &sparam ) { if (id == CHARTEVENT_KEYDOWN) { switch ((int)lparam) { case KEY_B: // buy OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, 0); break; case KEY_S: // sell OrderSend(_Symbol, OP_SELL, 1, Bid, 100, 0, 0); break; default: case KEY_C: // close for (int i = OrdersTotal() - 1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS) && (OrderType() <= OP_SELL)) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100); } } } // Неиспользуемые On-функции нужно прописать пустыми. void OnTick() {} void OnTimer() {} int OnInit() { return(INIT_SUCCEEDED); } void OnDeinit( const int ) {}
Пример позволяет быстро познакомиться с принципами работы Тестера. Попробовать клавиши управления и т.д.
Ручная торговля
// Полноценная ручная торговля на исторических данных + реал-тайм #define REPORT_BROWSER // Создание отчета с запуском браузера - требует разрешения DLL. #define TESTER_CUSTOM // Запуск советника в пользовательском Тестере #include <fxsaber\Tester\Tester.mqh> // https://www.mql5.com/ru/code/24848 #include <IgorM\TradePanel_C#\TradePanel_C#.mqh> // https://www.mql5.com/ru/code/24829 void OnChartEvent( const int id, const long &lparam, const double &dparam, const string &sparam ) {} void OnTick() {} void OnTimer() {} int OnInit() { return(INIT_SUCCEEDED); } void OnDeinit( const int ) {}
Результат запуска этого советника показан на картинке к данному описанию.
Автоматическая торговля
#define TESTER_CUSTOM // Запуск советника в пользовательском Тестере #include <fxsaber\Tester\Tester.mqh> // https://www.mql5.com/ru/code/24848 // Подключили MT4-style советник. Исходники менять не требуется. #include <..\Experts\fxsaber\TesterEA\TesterEA.mq4> // https://www.mql5.com/ru/code/22770 void OnChartEvent( const int id, const long &lparam, const double &dparam, const string &sparam ) {} void OnTimer() {} int OnInit() { return(INIT_SUCCEEDED); }
Chaikin Oscillator EA
Торговая стратегия на базе индикатора iChaikin (Chaikin Oscillator, CHO)
Din_fibo_Nex_Chn
Индикатор линии перемещения трейлинстопа
ATR arrow level
Модификация стандартного индикатора iATR (Average True Range, ATR).
Flat night
Вечером выставляется небольшая сетка отложенных Limit ордеров. Утром всё закрываем.