Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 5951
- Рейтинг:
- Опубликован:
- 2017.07.26 11:50
- Обновлен:
- 2019.06.25 03:35
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Библиотека содержит некоторый функционал, позволяющий разобраться на начальном этапе, как идет работа с кастомными символами, и предлагает некоторые готовые решения, могущие быть полезными.
Пример
При запуске бэктеста на кроссах тестер тянет за собой не только основной символ, но и вспомогательный, который позволяет конвертировать валюту прибыли основного символа в валюту счета. Вытягивание дополнительного символа, генерирование его тиков и их синхронизация с основным символом отнимают столь драгоценные вычислительные ресурсы (и время) в режимах одиночного прогона и, особенно, Оптимизации.
Однако, почти всегда такая точность является излишней. Поэтому хочется обойти эту навязчивость/несовершенство тестера MetaTrader 5. В MetaTrader 4 это сделать легко - там есть возможность поменять валюту счета прямо в тестере. MetaTrader 5 же лишен такой возможности.
Демонстрационный скрипт показывает способ обойти данное ограничение тестера - убрать ненужные вычисления. Для этого создается копия символа для бэктеста, но валюта прибыли/маржи задается равной валюте счета. Т.е. переконвертация результатов торговли не потребуется. И прибыль, фактически, будет вычисляться в пипсах, что может быть очень наглядно в некоторых ситуациях.
// Создание копии символа для ускорения Тестера #property script_show_inputs #include <Symbol.mqh> void OnStart() { const SYMBOL Symb("TESTER_" + _Symbol); // Создали символ if (Symb.IsExist()) // Если символ создан { Symb = _Symbol; // Скопировали с основного символа все свойства и баровую историю (+ тиковую, если кастомный) - клон // Сделали валюты символа валютой счета Symb.SetProperty(SYMBOL_CURRENCY_PROFIT, AccountInfoString(ACCOUNT_CURRENCY)); Symb.SetProperty(SYMBOL_CURRENCY_MARGIN, AccountInfoString(ACCOUNT_CURRENCY)); if (Symb.On()) // Включили в Обзор рынка ChartOpen(Symb.Name, PERIOD_CURRENT); // Открыли график нового символа } }
Результат
Таким образом достигается бесплатное ускорение Тестера/Оптимизатора.

Замер чистой производительности тестеров стратегий MetaTrader 4/5.

Система OzFx. Использует индикаторы Accelerator Oscillator и Stochastic Oscillator.

Открываем новую позицию, противоположную предыдущей. Из настроек только Stop loss, Take Profit и количество минимальных лотов.

Еще один вариант полос Боллинджера с использованием в качестве средней линии среднего от максимума и минимума за период.