Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Symbol - библиотека для MetaTrader 5

Просмотров:
5431
Рейтинг:
(41)
Опубликован:
2017.07.26 11:50
Обновлен:
2019.06.25 03:35
\MQL5\Scripts\ \MQL5\Include\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Библиотека содержит некоторый функционал, позволяющий разобраться на начальном этапе, как идет работа с кастомными символами, и предлагает некоторые готовые решения, могущие быть полезными.


Пример

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


Однако, почти всегда такая точность является излишней. Поэтому хочется обойти эту навязчивость/несовершенство тестера 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); // Открыли график нового символа
  }
}


Результат

Таким образом достигается бесплатное ускорение Тестера/Оптимизатора.

TesterBenchmark TesterBenchmark

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

OzFx OzFx

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

Nevalyashka Nevalyashka

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

KoliErBands KoliErBands

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