Partial Close and Trail Частичное закрытие позиций при откатах
Close Minus by Plus Перекрываем убыточные позиции, путем нахождения и закрытия прибыльных позиций
Table of contents
- Описание
- Введение
- Оптимизация советника в примерах
- MetaTrader 5: Настройка оптимизации и сохранение SET файла
- MetaTrader 4: Настройка оптимизации и сохранение SET файла
- Результаты оптимизации
- Мультивалютное тестирование и оптимизация в терминале MetaTrader 5
- Функциональные блоки нашего эксперта
- Блок 1: Торговые сигналы и фильтры
- Блок 2: Signal options
- Блок 3: Opening Filter options
- Блок 4: Close options
- Блок 5: Pending orders options
- Блок 6: Trading options
- Блок 7: Stops options
- Блок 8: Lots options
- Блок 9: Averager options
- Блок 10: Additional opening
- Блок 11: BreakEven WithoutLOSS options
- Блок 12: Standard Trailing options
- Блок 13: TrailingStop by SAR
- Блок 14: Time Trade options
- Блок 15: CloseALL when Profit or LOSS options
- Остальные параметры советника
- Примеры использования функций
- Параметр получения сигнального бара
- Переворот сигналов стратегии
- Использование отложенных ордеров при открытии вместо позиции
- Магический номер
- Стоплосс/ Тейкпрофит позиции
- Закрытие сделок по обратному сигналу
- Количество позиций сигналов стратегии
- Фиксированный лот
- Мартингейл
- Время работы эксперта
- Классический TralingStop
- TralingStop по PARABOLIC SAR
- Функция закрытия по общей прибыли \ убытку
- Установка стоплосса в Безубыток
- Усреднение, открытие против тренда
- Доливка, открытие по тренду
- Ограничение убытков и профита за 1 день\ Неделя\ Месяц
- Виртуальные стопы
- OnTester Дополнительные критерии для оптимизации выбор лучших результатов
- Общие сведения:
- Настройка оптимизации в MetaTrader 4
- Настройка оптимизации в MetaTrader 5
- Варианты вызова OnTester_Custom_max:
- Варианты вызова OnTester_****:
- Выводы
Описание
Мы уже писали о том, что The X – это проект, который стал очень популярным за 5 лет.
Это лучший советник для Форекс, который позволяет создать свою стратегию из стандартных индикаторов и использовать наши функции для советника.
Функциональные особенности эксперта и описание настроек мы уже писали в нашей статье The X – Универсальный советник для форекс MT4 MT5 Полная инструкция
Недавно мы опубликовали статью для тех, кто хотел создать свои сигналы с нашим роботом: Программирование стратегий в открытом коде!
В этой статье мы расскажем о том, как оптимизировать параметры советника и получить желаемый результат.
Мы поговорим о способах тестирования, выборе стратегий для оптимизации, а также включение разных функций для работы на форекс.
Введение
Мы не будем рассказывать о том, как тестировать или оптимизировать советники в терминале мт4 и мт5! Мы уже говорили об этом в нашей статье: Тестирование и оптимизация советников
В этой статье я покажу Вам некоторые способы оптимизации советника и правильном выборе функция для работы с экспертом.
Мы создали для Вас несколько наборов настроек для оптимизации, чтобы Вам было легче начать оптимизацию на своем компьютере.
Начиная с версии 18.008 мы привели названия всех переменных к одинаковому имени в версии для мт4 и мт5. Это сделано для того, чтобы Вы могли переносить файлы настроек с одного терминала на другой!
Мы покажем примеры торговых стратегий на основе THE X.
Помните: The X это конструктор торговых стратегий. Группируя и применяя разные сочетания функций, Вы можете получить абсолютно разные результаты.
Вы должны понимать, что чудес не бывает. И наш советник лишь инструмент для торговли на форекс. Форекс – Это 100 % риск!
Набор настроек зависит от Вашего депозита и лимита просадки. Валютной пары и спецификации контракта. Долгосрочная торговля или пипсовка!
Здесь и далее я буду использовать такие значения:
0-10-100 = означает, что параметры для оптимизации такие:
- Старт значения оптимизации = 0
- Шаг оптимизации параметра = 10
- Стоп значение параметра при оптимизации = 100
Все параметры, которые измеряются в пунктах (Стоплосс, тейкпрофит, дистанция ……) Я использовал из 4-х значной котировки.
- Например EURUSD = 1.2001 означает, что у брокера 4-х значные котировки. и 1 = 1 пункт!
- Если я написал 10, это означает , что я имею ввиду 10 пунктов.
- Если у Вашего брокера 5-значные котировки, тогда Вам необходимо умножать мои рекомендации на 10!
- Например EURUSD = 1.20015 означает, что у брокера 5-х значные котировки. и 1 = 1 пункт!
- Если я написал 10, это означает , что я имею ввиду 10 пунктов. Но Вы должны устанавливать значения 100
Помните ответ на вопрос!
В чем указываются значения в параметрах в пунктах или пипсах?
В пунктах! понятие Пункт взято из значения переменной Point()
- Если у Вас 5\3 значный брокер, тогда 1 пункт = 0.00001\0.001
- Если у Вас 4\2 значный брокер, тогда 1 пункт = 0.0001\0.01
Оптимизация советника в примерах
Наши советники имеют одинаковый алгоритм сигналов и функций.
Но ввиду отличий терминалов MT5 и МТ4 могут быть погрешности в исполнении.
Тестер стратегий в терминале MT5, на текущий момент, самый технологичный и точный.
Самой важной особенностью терминала MetaTrader 5 и Strategy Tester является возможность тестировать на реальных тиках. Спред и стоп уровни в MetaTrader 5 плавающие. Это означает то, что тестирование в тестере стратегий MT5 максимально приближено к условиям реальной торговли.
Мы не будем останавливаться на тестировании и оптимизации в терминале MetaTrader 4! Вы уже знаете как в нем тестировать. А процесс оптимизации похож на процесс мт5 (Настройки и запуск)
Но главной особенностью тестера стратегий от МТ5 – это конечно же возможность оптимизировать в облаке MQL5 Cloud Network
Облако позволяет за минимальную цену оптимизировать советника на тысячах других компьютерах. Это очень дешево и быстро. Поэтому я настоятельно рекомендую использовать облако MQL5.
В архиве с советником Вы найдете несколько файлов с набором для оптимизации. Это только примеры, но она покажут Вам , как надо настраивать оптимизацию.
Помните: Каждая валютная пара и брокер имеют свои условия торговли (Спред, своп, комиссия, способ расчета, исполнение, тип счета), поэтому результаты оптимизации могут отличаться!
Для того, чтобы результаты были более и менее похожи, Вам необходимо отключать Случайную Задержку. Для оптимизации она не нужна!
Настройка тестера стратегий:
- Выберите советника из списка.
- Установите ту валютную пару, для которой будете проводить тест.
- ТФ лучше выбрать М1. (TimeFrame будет задавать советник из своих настроек)
- Дата оптимизации – можете выбрать текущий год! Помните! Результаты в прошлом, не могут гарантировать прибыль в будущем! Оптимизация каждые пол года – самый практичный диапазон!
- Forward можно установить на 1 месяц. Но мы советуем получать чистые результаты. А потом уже проводить Forward Test
- Депозит (Deposit) лучше установить тот, с которого вы начнете свою торговлю. Не нужно устанавливать слишком маленький баланс. А также слишком большой!
- Кредитное плечо выставляйте то, на котором будете торговать.
- Оптимизация Slow Complete algorithm
- и обязательно! Every tick, based on real ticks!
Включение возможности оптимизации в облаке
Я настоятельно рекомендую включать ОБЛАКО ОПТИМИЗАЦИИ!
При этом, я отключаю работу своего процессора. Таким образом мой компьютер не тормозит при оптимизации. А себестоимость одного прохода в облаке получается меньше , чем 0.01 цента!
MetaTrader 5: Настройка оптимизации и сохранение SET файла
Вы можете скачать наши Файла для оптимизации для The X
Для оптимизации эксперта Вам необходимо открыть Оптимизатор MT5:
Выбираем режим Complete Optimization (Новая версия терминала MetaTrader 5)
После этого мы должны настроить наш Strategy Tester для оптимизации:
- Выбираем эксперта для оптимизации.
- Выбираем торговый символ (валютную пару) На которой мы хотим получить результаты.
- Таймфрейм (В нашем эксперте есть возможность оптимизировать ТФ каждого индикатора, поэтому этот пункт можно пропустить)
- Период оптимизации (Можно оптимизировать на протяжении последнего года, нет смысла оптимизировать на протяжении 10 лет!)
- Обязательно выбираем модель Every Tick based on real ticks!
- Выбираем тип оптимизации = Полный перебор параметров (Slow complete optimization)
- Переводим в настройки входных параметров Inputs.
Загружаем наш файл для оптимизации или настраиваем параметры на свое усмотрение!
Клик правой кнопкой мыши – Загрузить (Load)
Выбираем путь , куда Вы сохранили наши файлы и выбираете файл с количеством знаков в цене у Вашего брокера (4-значный или 5-значный брокер)
Настраиваем оптимизированные параметры:
После загрузки Вы увидите Наши варианты оптимизации
- Установите или снимите галочки на тех параметрах, которые Вы хотите оптимизировать. ( По умолчанию я настроил файл так, чтобы Вы могли оптимизировать по всем важным параметрам )
- Старт (Start) – Начальное значение параметра для оптимизации.
- Шаг (Step) – Шаг изменения параметра при каждом прогоне оптимизатора.
- Стоп (Stop) – Конечное значение параметра для оптимизации.
- Нажмите Start для начала оптимизации! Это может занять от 1 часа до 1 недели! Вы также можете использовать облачных клиентов для оптимизации!
- Помните! Чем больше параметров и шагов для оптимизации, тем больше времени необходимо для завершения тестирования и оптимизации!
- Значение (Value) – Это зафиксированное значение параметра. Советник будет брать это значение, если этот параметр не оптимизируется. Или при тестировании!
Выбор результата и сохранение Set файла
После того, как Мы получили результаты оптимизации, мы можем выбрать нужные параметры и сохранить Set файлы, чтобы использовать их в будущем.
- Перейдите в вкладку результаты оптимизации (Optimization results)
- Выберите понравившейся результат
- Запустите одиночное тестирование
- Посмотрите на результат:
После этого перейдите в Вкладку Настройки 1 (Inputs) и сохраните SET FILE 2 (Клик правой кнопкой мышки)
Сохраняйте Файл Настроек там, где Вы будете хранить все важные файлы!
Загрузка файла настроек (Set File) в нашего эксперта на реальном графике:
После того, как Вы нашли свои настройки и результат оптимизации Вас устраивает, Вы можете загрузить эксперта с этими настройками для работы.
Помните! Оптимизация это грубый метод поиска настроек и результаты оптимизации не могут дать гарантию прибыли в будущем в реальном времени!
Я рекомендую проверять систему сначала на демо счете Вашего брокера с этими настройками.
После этого Вы можете открыть центовый счет или маленький депозит для проверки.
И только после продолжительных тестирований Вы можете торговать на больших депозитах!
- Загрузите нашего эксперта на график.
- Перейдите в Вкладку Параметры (Inputs).
- Нажмите Загрузить (Load).
- Откройте папку, где хранятся ваши файлы настроек.
- Выберите нужный файл и нажмите Открыть.
Если Вы все сделали правильно, то на графике появится наша панель EAPADPRO с зеленым смайлом!
Если Вы что-то не так установили или установили неправильно, Вы можете прочитать варианты отказа советника торговать: EAPADPRO работает ли советник?
MetaTrader 4: Настройка оптимизации и сохранение SET файла
Вы можете скачать наши Файла для оптимизации для The X
Внимание: Тестер стратегий терминала MetaTrader 4 является неточным и не учитывает плавающий спред и задержки исполнения, поэтому его результаты являются только примерными!
Для оптимизации эксперта Вам необходимо открыть Оптимизатор MT4
После этого мы должны настроить наш Strategy Tester для оптимизации:
- Выбираем эксперта для оптимизации.
- Выбираем торговый символ (валютную пару) На которой мы хотим получить результаты.
- Обязательно выбираем модель Every Tick !
- Период оптимизации (Можно оптимизировать на протяжении последнего года, нет смысла оптимизировать на протяжении 10 лет!)
- Таймфрейм (В нашем эксперте есть возможность оптимизировать ТФ каждого индикатора, поэтому этот пункт можно пропустить)
- Устанавливаем галочку на Оптимизация (Optimization)
- Переводим в настройки входных параметров Inputs.
Загружаем наш файл для оптимизации или настраиваем параметры на свое усмотрение!
Клик правой кнопкой мыши – Загрузить (Load)
Выбираем путь , куда Вы сохранили наши файлы и выбираете файл с количеством знаков в цене у Вашего брокера (4-значный или 5-значный брокер)
Настраиваем оптимизированные параметры:
После загрузки Вы увидите Наши варианты оптимизации
- Установите или снимите галочки на тех параметрах, которые Вы хотите оптимизировать. ( По умолчанию я настроил файл так, чтобы Вы могли оптимизировать по всем важным параметрам )
- Старт (Start) – Начальное значение параметра для оптимизации.
- Шаг (Step) – Шаг изменения параметра при каждом прогоне оптимизатора.
- Стоп (Stop) – Конечное значение параметра для оптимизации.
- Нажмите Start для начала оптимизации! Это может занять от 1 часа до 1 недели! Вы также можете использовать облачных клиентов для оптимизации!
- Помните! Чем больше параметров и шагов для оптимизации, тем больше времени необходимо для завершения тестирования и оптимизации!
- Значение (Value) – Это зафиксированное значение параметра. Советник будет брать это значение, если этот параметр не оптимизируется. Или при тестировании!
Выбор результата и сохранение Set файла
После того, как Мы получили результаты оптимизации, мы можем выбрать нужные параметры и сохранить Set файлы, чтобы использовать их в будущем.
- Перейдите в вкладку результаты оптимизации (Optimization results)
- Выберите понравившейся результат
- Примените настройки для тестирования.
Запустите одиночное тестирование:
- Посмотрите на результат:
После этого перейдите в Вкладку Настройки (Inputs) и сохраните SET FILE
Сохраняйте Файл Настроек там, где Вы будете хранить все важные файлы!
Загрузка файла настроек (Set File) в нашего эксперта на реальном графике:
После того, как Вы нашли свои настройки и результат оптимизации Вас устраивает, Вы можете загрузить эксперта с этими настройками для работы.
Помните! Оптимизация это грубый метод поиска настроек и результаты оптимизации не могут дать гарантию прибыли в будущем в реальном времени!
Я рекомендую проверять систему сначала на демо счете Вашего брокера с этими настройками.
После этого Вы можете открыть центовый счет или маленький депозит для проверки.
И только после продолжительных тестирований Вы можете торговать на больших депозитах!
- Загрузите нашего эксперта на график.
- Перейдите в Вкладку Параметры (Inputs).
- Нажмите Загрузить (Load).
- Откройте папку, где хранятся ваши файлы настроек.
- Выберите нужный файл и нажмите Открыть.
Если Вы все сделали правильно, то на графике появится наша панель EAPADPRO с зеленым смайлом!
Если Вы что-то не так установили или установили неправильно, Вы можете прочитать варианты отказа советника торговать: EAPADPRO работает ли советник?
Результаты оптимизации
Оптимизация по всем параметрам можно провести за 2-3 дня.
Это достаточно долго, Но Вы получите результаты всех проходов.
За более, чем 20 000 проходов мы потратили на оптимизацию около 6 долларов. Вы можете регулировать количество проходов, ограничивая количество оптимизирующих параметров.
При написании статьи мы будем руководствоваться примерами.
Допустим мы получили результаты по нашей оптимизации.
Выбираем столбец Profit и сортируем результаты по самому большой прибыли.
Вы можете провести одиночный прогон результатов для формирования полного отчета по позициям.
После завершения тестирования мы получим результаты, с которыми можем согласится.
И если они нам подходят, тогда Мы можем сохранить набор настроек!
Помните: Результаты тестирования только на 99% правдивы. На реальных счетах у Вас могут быть задержки исполнения приказов, Проскальзывания, Отключения электричества и другие факторы.
Мультивалютное тестирование и оптимизация в терминале MetaTrader 5
После этих действий я советую проверить эти настройки на других валютных парах. Для этого в обзоре рынка я добавил только те валютные пары, которые считаю основными и по которым можно торговать:
Настраиваем оптимизацию по символам:
Запускаем оптимизацию и получаем результаты:
Эти действия направлены на то, чтобы найти универсальные параметры советника, чтобы использовать на любой валютной паре.
Как Вы видите по результатам оптимизации по валютным парам. Этот набор настроек дает хороший результат только на 4 валютах из 11!
В нашем советнике для MT5 есть возможность работы одновременно с 10 и более валютными парами и одинаковыми настройками.
В том числе, Вы можете оптимизировать все параметры одновременно для 10 валютных пар. Время такой оптимизации существенно затягивается, но Вы не тратите время на выбор валютной пары и оптимизацию ее параметров
+ Вы можете узнать результат работы советника, который одновременно торгует на 10 валютных парах.
Для этого воспользуйтесь параметрами:
string pair="========= Symbols options ========="; string PAIR1=""; string PAIR2=""; string PAIR3=""; string PAIR4=""; string PAIR5=""; string PAIR6=""; string PAIR7=""; string PAIR8=""; string PAIR9=""; string PAIR10=""; string PAIR11=""; string PAIR12="";
Важно, чтобы эти параметры были заполнены так, как заполнены названия символов у Вашего брокера. к примеру:
PAIR1=EURUSD.m PAIR2=USDCHF.m PAIR3=USDJPY.m PAIR4=XAUUSD.m PAIR5=XAGUSD.m PAIR6=EURGBP.m PAIR7=EURJPY.m PAIR8=EURCHF.m PAIR9=GBPUSD.m PAIR10=GBPJPY.m PAIR11=GBPCHF.m
Если тестирование не начинается и ВЫ получаете ошибку:
2018.05.14 10:42:15.916 Core 1 2018.01.01 00:00:00 Check in MarketWatch EURUGBP.m ! 2018.05.14 10:42:15.916 Core 1 OnInit critical error
Значит Вы указали неправильное название валютной пары!
Таким образом Вы можете оптимизировать настройки на получение прибыли, при торговле одновременно по 11 валютным парам. !
Функциональные блоки нашего эксперта
Блок 1: Торговые сигналы и фильтры
В нашем советнике более 20 торговых стратегий, основанных на стандартных индикаторах терминала MetaTrader.
Почему Мы используем стандартные индикаторы?
Все пользовательские индикаторы, почти или полностью, повторяют стандартные индикаторы, которые уже есть в терминале.
Изменяя параметры внутри кода, Вы получаете пользовательский индикатор. По логике – пользовательский индикатор на 90 % состоит из стандартных индикаторов!
Мы написали более 5 000 советников по пользовательским индикаторам и можем с уверенностью сказать: не имеет смысла.
Работа на стандартных индикаторах прогнозируемая и в 90% случаев более прибыльная.
Поэтому мы используем стандартные индикаторы для торговли. Почитать примеры открытия позиций по стандартным индикаторам, а также описание сигналов можно в статье: Примеры работы сигналов!
Индикаторы и сигналы это главное, с чего надо начать нашу оптимизацию и тестирование!
На момент написания этой статьи у нас 20 сигналов:
- NoSignal=0,//No Signal
- Ma=1,//Moving Average
- MACD=2, //Moving Average Convergence/Divergence (MACD)
- STOCH=3,//Stochastic Oscillator
- RSI=4,//RSI
- CCI=5,//Commodity Channel Index (CCI)
- WPR=6,//Williams Percent Range (WPR)
- BB=7,//Bollinger Bands
- Envelopes=8,//Envelopes
- Alligator=9,//Alligator
- OsMA=10,//Moving Average of Oscillator (OsMA)
- AO=11,//Awesome Oscillator (AO)
- ISH=12,//Ichimoku
- AC=13,//AC
- BAR=14,//BAR BEAR\BULL
- ADX=15,//ADX
- ADXWilder=19,//ADX Wilder
- ZigZag=17,//ZigZag
- MFI=20,//Money Flow Index
- Fractals=21,//Fractals
Каждый сигнал и стратегия – это стандартная стратегия использования индикатора. Такие стратегии писали люди, которые придумывали эти индикаторы. Мы не будем объяснять всю суть каждой стратегии.
Это стандартные торговые стратегии!
У Вас появятся 100 000 000 вариантов использования стандартного индикатора, но вы же понимаете, что мы не можем добавить их в советник!
Если Вы желаете написать свою стратегию или советник по вашему индикатора, тогда Вам необходим открытый код:
- Открытый код The X для MetaTrader5
- Открытый код The X для MetaTrader4
- Программирование советника: 10 шагов к Успеху!
В нашем советнике можно комбинировать 1 сигнал и до 5 фильтров.
Отличие сигнала и фильтра:
Сигнал
- Сигнал – происходит тогда, когда есть все условия для сигнала, например факт пересечения линий МА. Или появление новой точки ZigZag .
- Например : Пересечение уровня 70 для индикатора RSI это сигнал. А если RSI выше уровня 70, то это уже фильтр.
- Сигнал – это то, что появляется в момент поступления котировок, фиксируется на баре. Советник принимает факт совершения сигнала.
- Например: Включился свет. Это сигнал потому, что свет только что включился. При включении света , человек проснулся. Это сигнал.
- Открытие позиций происходит по факту совершения сигнала, линии пересеклись , тогда открывается позиция. Если линии были пересечены ранее, то это не сигнал. Сигнал уже прошел.
Фильтр:
- Фильтр – Это текущее положение индикатора, например текущее положение линий МА относительно друг друга. Или текущая последняя вершина ZIGZAG
- Фильтр – это то, что на данный момент показывает индикатор. Это не факт совершения сигнала. Это текущее положение индикатора.
- Например: Свет горел. Это фильтр потому, что свет уже был включен и он уже горит. При включенном свете человек уже не спит. Это фильтр.
- Фильтрация сигналов происходит по текущему значению индикатору. Если Быстрая МА выше медленной МА, то это фильтр на то, что должны открываться только BUY.
Советы по оптимизации параметров сигналов:
input string Signal1s="========= OWN Signal options ========="; input typesignals IndSigToTrade=1; input ENUM_TIMEFRAMES TF_IndSigToTrade1=PERIOD_CURRENT; input bool Signal_Reverse=false; input bool ClosePositionifChangeOWNSignal=false; input int OWNSIGNAL_shift=1; input string Signal2s="========= Filter 1 options ========="; input typesignals2 FILTER_IndSigToTrade1=0; input ENUM_TIMEFRAMES FILTER_TF_IndSigToTrade1=PERIOD_CURRENT; input bool Filter1_Reverse=false; input int FILTERSIGNAL1_shift=1;
Мы не советуем Вам использовать более 2 фильтров для сигнала, поэтому остальные 3 фильтра мы спрятали внизу таблицы настроек.
Это объясняется тем, что каждый фильтр снижает количество сигналов. И при использовании более 2 фильтров сигналы будут очень редкими.
Почему мы сделал 5 фильтров?
На этапе программирования и создания советника, наши первые пользователи составляли для нас “хотелки” и пожелания. Мы выполнили просьбы и сделали 5 фильтров.
Варианты оптимизации блока сигналов
Параметр IndSigToTrade – можно оптимизировать от и до! всего будет 20 переборов этого параметра. Это не так уж и много, Но Вы можете выбрать лучший результат по той или иной стратегии.
Оптимизация значений: 1 – 20 или Moving Average – Fractals
Параметр TF_IndSigToTrade1 – также можно оптимизировать от и до. Но мы советуем ставить TimeFrame , на которых вы обычно торгуете.
- Помните: Чем выше TimeFrame , тем меньше сигналов будут появляться. Чем выше TimeFrame , тем долгосрочнее будут стратегии.
Параметр Signal_Reverse – используется для переворота стратегий! Иногда бывает так, что торговля становится прибыльнее, когда мы переворачиваем стратегию.
Не имеет смысла оптимизировать.
- Но включать этот параметр я рекомендую только на долгосрочной торговле и использовании больших стоплоссов и тейкпрофитов.
- При использовании безубытка и трейлингстопа и получении убытка в пределах спреда, Вам не удастся торговать прибыльнее при включении этого параметра!
- Например: Если Ваша стратегия включает StopLoss = 2000 пунктов и TakeProfit = 500 пунктов , и получении 100 убытков и 1 прибыли.
- При перевороте стратегии вы получите 100 выигрышей и 1 убыток.
- Но это все относительно. Каждую теорию нужно тестировать! Чудес не бывает!
Параметр ClosePositionifChangeOWNSignal – позволяет закрывать открытые позиции при изменении главного сигнала.
Не имеет смысла оптимизировать.
- Эту опцию можно использовать для того, чтобы сразу отсекать ложные сигналы.
- Например, если Вы не используете усреднение (Вывод серии позиций в общую прибыль) и согласны с тем, что некоторые сигналы будут ложные и вы получите моментальный убыток при закрытии по сигналу, тогда вы можете включить эту функцию.
Параметр OWNSIGNAL_shift – это очень важный параметр! Он регулирует получение сигнала с закрытого или текущего бара.
Не имеет смысла оптимизировать.
- Я рекомендую оставить его по умолчанию.
- 1 – получение сигналов с уже закрытого и полностью сформировавшегося бара.
- 0 – Получение сигнала с текущего бара, который только формируется.
- Подробная статья о том, как использовать SHIFT сигнала.
Параметры Filter N options – имеют такие же логические объяснения, как и сигналы. Поэтому мы не будем их повторять, но скажем следующее:
- Вы можете использовать фильтры других индикаторов, отличаемых от сигналов!
- Вы можете использовать тот же индикатор, что и в сигнале, но устанавливать TimeFrame выше, чем TimeFrame сигнала. Например TF сигнала = M15, а TF фильтра = H1
- Фильтр снижает количество сигналов и открытых позиций!
- Один фильтр может не работать с другим сигналом. Все зависит от настроенных стратегий. Некоторые фильтры и сигналы могут конфликтовать друг с другом.
- Например: Mooving Average показывает сигнал на BUY , а Фильтр по RSI показывает в этом момент только SELL. Такие конфликты встречались!
- Если у Вас не открывается позиция с применением фильтра, отключите фильтр и исследуйте этот вопрос. Возможно 2 индикатора конфликтуют!
Блок 2: Signal options
В этом блоке мы добавили параметры, которые могут помочь в тонкой настройке блока сигналов.
Эти параметры являются вспомогательными и я не рекомендую их оптимизировать!
input bool Show_alert_without_opening_positions=false; input bool OpenBarControlOnly=false; input bool ControlNewBarforSIGNAL=true; input bool ReverseSignal=false;
Параметр Show_alert_without_opening_positions – позволяет отключать реальное открытие позиций. Вместо этого советник выводит информацию на экране при поступлении сигнала.
Не имеет смысла оптимизировать.
- Советник не открывает позицию.
- Выводится информация о сигнале с рассчитанными параметрами
- Вы можете разрешить или запретить открытие позиций по этому сигналу
Параметр OpenBarControlOnly используется только для модели тестирования в виде Open Prices Only.
Не имеет смысла оптимизировать.
- Позволяет включать работу советника по открытым барам на реальном графике!
- При включении этого параметра, весь алгоритма советника исполняется только при открытии нового бара 1 раз.
- Результаты при включении этого параметры похожи на результаты тестирования в режиме Open Prices Only
Параметр ControlNewBarforSIGNAL – Параметр , который включает обработку сигнала только 1 раз на новом баре.
Не имеет смысла оптимизировать.
- Позволяет существенно снизить нагрузку на компьютер при оптимизации советника.
- Увеличивает скорость тестирования в тестере стратегий.
- Используется только при параметр SHIFT > 0
Параметр ReverseSignal – переворачивает общий сигнал к открытию позиций.
Оптимизация значений: True – False
- В отличие от Signal_Reverse позволяет перевернуть общий сигнал к открытию, включая сигналы и фильтры
Блок 3: Opening Filter options
В этом блоке собраны те параметры, которые позволяют отфильтровать открытие позиций по техническим ограничениям.
input string oo_121="========= Opening Filter options ========="; input TypeTrade TypeTradeBUYSELL=0; input int MinuteToOpenNextPosition=0; input bool OpenOppositePositionAfterStoploss=false; input bool ONlyOnePosbySignal=true; input bool OnePosPerDirection=true; input bool OnlyOnePositionPerMagic=false; input bool OnlyAlternateSignals=false; input int MAX_BUY_POSITION=0; input int MAX_SELL_POSITION=0; input int MaxSpreadToNotTrade=0; input int MinSpreadToNotTrade=0;
Параметр TypeTradeBUYSELL – включает возможность торговать только в одном направлении.
Не имеет смысла оптимизировать.
- Полезен тогда, когда Вы управляете советником вручную, например при анализе новостей.
- Или когда пользуетесь дополнительными средствами для определения сигналов. Например линиями тренда.
- Включать эту функцию я рекомендую только тогда, когда Вы уверены в том, что тренд имеет направление!
Параметр MinuteToOpenNextPosition – запрет на открытие дополнительной позиции по сигналу.
Не имеет смысла оптимизировать.
- позволяет тонко управлять настройками торговли по сигналам, когда трейдер уверен в силе сигнала.
- Используется вместе с опциями ONlyOnePosbySignal=false
- Ограничивает открытие позиций по одному и тому же сигналу
Параметр OpenOppositePositionAfterStoploss – открывает противоположную позицию, если предыдущая позиция была закрыта по стоплоссу (в убытке).
Не имеет смысла оптимизировать.
- Это эксперементальная опция и может быть использована только трейдером, который понимает суть ее работы.
Параметр ONlyOnePosbySignal – позволяет советнику открывать только одну позицию по выбранной валютной паре и магику.
Можно оптимизировать этот параметр True False при использовании OnePosPerDirection =true
- Отключение этой функции позволяет “набирать” позиции по одному и тому же сигналу, в том же направлении.
- Я не рекомендую менять этот параметр.
Параметр OnePosPerDirection – позволяет советнику открывать позиции только в одном направлении или включает возможность торговли сразу в два направлении.
Не имеет смысла оптимизировать.
- Работает только при ONlyOnePosbySignal=false
- Я не рекомендую менять этот параметр.
Параметр OnlyOnePositionPerMagic – позволяет управлять открытыми позициями всех советников, которые имеют одинаковый MAGIC.
Не имеет смысла оптимизировать.
- Работает только при ONlyOnePosbySignal=false
- Я не рекомендую менять этот параметр.
Параметр OnlyAlternateSignals – позволяет открывать позиции только в противоположном направлении от последней закрытой позиции..
Не имеет смысла оптимизировать.
- Очень сильно снижает количество сигналов.
- Я не рекомендую менять этот параметр.
Параметр MAX_BUY_POSITION MAX_SELL_POSITION– позволяет ограничивать количество одновременно открытых позиций..
Не имеет смысла оптимизировать.
- Работает только при ONlyOnePosbySignal=false.
- Я не рекомендую менять этот параметр.
- Этот параметр создан для торговли в разных направлениях без ограничения на количество сигналов.
- Позволяет ограничивать одновременное открытие позиций по одному сигналу или нахождение открытых позиций в рынке.
Параметр MaxSpreadToNotTrade MinSpreadToNotTrade – позволяет ограничить открытие позиций по сигналом при частом изменении спреда брокером.
Не имеет смысла оптимизировать.
- Я не рекомендую менять этот параметр.
- Эти параметры нужно устанавливать только на реальном графике.
- Позволяют ограничить сигналы при выходе важных новостей и резком скачке спреда, при котором советник может установить большие стопы.
Блок 4: Close options
В этом блоке собраны те параметры, которые позволяют закрывать позиции при определенных ситуациях.
input string oo_123="========= Close options ========="; input bool ClosePosifChange=true; input bool CloseChangeOnlyInProfit=true; input int ClosePosition_After_X_Minutes=0;
Параметр ClosePosifChange – закрытие противоположной позиции при смене сигнала на открытие.
Оптимизация значений: True – False
- Полезен тогда, когда Вы хотите сменить текущий сигнал, если он оказался ложным или при появлении нового сигнала.
- Позволяет зафиксировать прибыль или убыток при смене сигнала от индикатора.
Параметр CloseChangeOnlyInProfit – позволяет закрывать только прибыльные позиции.
Если получен сигнал на открытие протиовположной позиции, то она будет закрыта только тогда, когда текущая позиция выйдет в прибыль.
Оптимизация значений: True – False
- Позволяет зафиксировать прибыль при смене сигнала от индикатора.
- Работает только при ClosePosifChange=true
Параметр ClosePosition_After_X_Minutes – закрытие позиции через определенное время.
Оптимизация значений: Рекомендую устанавливать числа, кратные вашему ТФ.
Например: при использовании советника на TimeFrame M15 установите значения : старт 0, шаг 15, стоп 75.
- Для четких фиксация времени торговли.
- Позволяет закрывать позиции, которые были открыты по сигналу. Например через 15 минут после открытия
- Зависит и работает от параметра CloseChangeOnlyInProfit :
- Если CloseChangeOnlyInProfit = true , тогда позиции закрываются только если они имеют прибыль.
Блок 5: Pending orders options
В этом блоке собраны параметры работы с отложенными ордерами.
input StopOrderType StopOrderUSE=0; input int StopOrderDeltaifUSE=0; input int StopOrderDayToExpiration=0; input int StopOrderBarToExpiration=0; input bool ReInstallStopOrdersNewSignalAppears=true;
Параметр StopOrderUSE – позволяет открывать отложенные или лимитные ордера вместо позиций.
Оптимизация значений: False – Use Stop Orders
- Позволяет дополнительно фильтровать сигналы по дистанции срабатывания!
- Use Stop Orders: Если советник получил сигнал и мы открыли отложенный ордер на дистанции 100 пунктов. Если цена прошла 100 пунктов в нашем направлении и зацепила отложенный ордер, тогда сигнал считается подтвержденным.
- Use Limit Orders: Если советник получил сигнал и мы открыли лимитный ордер на дистанции 100 пунктов. Если цена прошла 100 пунктов в противоположном направлении и зацепила лимитный ордер, тогда сигнал считается отскоком. Вы должны быть уверенным, что будет отскок.
- Я не рекомендую оптимизировать по Use Limit Orders
- Значение Use Stop Orders имеет смысл использовать только для долгосрочной торговли.
Параметр StopOrderDeltaifUSE – дистанция установки отложенного или лимитного ордера.
Оптимизация значений: Рекомендуется устанавливать параметры индивидуально для каждой пары.
- Например: Если это валютная пара EURUSD и Вы торгуете на периоде M30 и среднее движение цены в период , например, 50 баров = 7500 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 100, стоп 1000.
- Например: Если это валютная пара XUGUSD и Вы торгуете на периоде M1 и среднее движение цены в период , например, 50 баров = 100 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 10, стоп 100.
- Например: Вам необходимо подтверждение сигнала открытия, и среднее движение цены в период, например 100 баров = 1000 пунктов, тогда старт 0, шаг 50, стоп 500.
- Позволяет дополнительно фильтровать сигналы по дистанции срабатывания!
- Use Stop Orders: Если советник получил сигнал и мы открыли отложенный ордер на дистанции 100 пунктов. Если цена прошла 100 пунктов в нашем направлении и зацепила отложенный ордер, тогда сигнал считается подтвержденным.
Параметр StopOrderDayToExpiration – удаляет отложенный ордер, если он не сработал установленное количество дней.
Не имеет смысла оптимизировать.
Параметр StopOrderBarToExpiration – удаляет отложенный ордер, если он не сработал установленное количество баров (Зависит от Вашего таймфрейма!).
Варианты оптимизации: старт 0, шаг 1, стоп 10
- Позволяет удалять отложенный ордер, если цена не пробивает уровень установки отложенного ордера
Параметр ReInstallStopOrdersNewSignalAppears – Переустанавливает отложенной ордер при обновлении сигнала.
Не имеет смысла оптимизировать.
- Позволяет устанавливать отложенный ордер каждый раз при появлении нового сигнала.
- Я не рекомендую менять этот параметр
Блок 6: Trading options
В этом блоке собраны те параметры, которые устанавливаются в момент совершения позиций.
Не имеет смысла оптимизировать.
Блок 7: Stops options
Блок работы с стоплоссом и тейкпрофитом
input string oo5="========= Stops options ========="; input bool VirtualStops=false; input bool ForcedModifySLTP=false; input minlevel SetMinStops=0; input int StopLoss=2000; input int TakeProfit=0; input bool Include_Commission_Swap=true;
Параметры ForcedModifySLTP, SetMinStops, Include_Commission_Swap я не рекомендую изменять! Не имеет смысла оптимизировать.
Параметр VirtualStops – включает возможность установки виртуальных стоплоссов и тейкпрофитов. Без фактической модификации позиций (стоплосс и тейкпрофит в позиции будет = 0)
Оптимизация значений: True – False
- Все уровни стоплосс и тейкпрофита хранятся в глобальных переменных и на графике!
- Происходит виртуальное исполнение стоплосса и тейкпрофита
- Имеет смысл применять только тогда, когда Вам необходимо устанавливать очень маленькие (меньше минимально возможного уровня на сервере) стоп уровни.
- Позволяет скрыть от брокера Ваши уровни стопов, тем самым мешая понять логику вашей стратегии.
Параметр StopLoss – Стоплосс позиции.
Оптимизация значений: Рекомендуется устанавливать параметры индивидуально для каждой пары.
- Например: Если это валютная пара EURUSD и Вы торгуете на периоде M30 и среднее движение цены в период , например, 50 баров = 7500 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 100, стоп 1000.
- Например: Если это валютная пара XUGUSD и Вы торгуете на периоде M1 и среднее движение цены в период , например, 50 баров = 100 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 10, стоп 100.
- Зависит от Ваших лимитов на каждую позицию.
- Чем больше стоплосс, тем длиннее время удержания позиции. И возможность надеяться на то, что цена вернется в сторону открытой позиции.
- Чем меньше стоплосс, тем быстрее будут закрываться ложные сигналы.
- Не имеет смысла использовать маленький стоплосс , которые меньше, чем дистанция усреднения Distance
Параметр TakeProfit – Тейкпрофит позиции.
Оптимизация значений: Рекомендуется устанавливать параметры индивидуально для каждой пары.
- Например: Если это валютная пара EURUSD и Вы торгуете на периоде M30 и среднее движение цены в период , например, 50 баров = 7500 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 25, стоп 500.
- Например: Если это валютная пара XUGUSD и Вы торгуете на периоде M1 и среднее движение цены в период , например, 50 баров = 100 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 5, стоп 100.
- Можно устанавливать тейкпрофит в расчете Стоплосс/2 или Стоплосс/3.
- Чем больше тейкпрофит , тем длиннее время удержания позиции. Вы можете упустить прибыль позиции, если она не достигнет цели тейкпрофита.
- Чем меньше тейкпрофит , тем быстрее будут закрываться прибыльные сигналы.
- Не имеет смысла использовать маленький тейкпрофит, которые меньше, чем дистанция дополнительного открытия DistanceAdditionalOpening
Блок 8: Lots options
Блок работы с фиксированным лотом и автолотом.
input string oo4="========= Lots options ========="; input double Lots=0.01; input bool DynamicLot=false; input double LotBalancePercent=0.01; input double RiskRate=0; input double MaxLot=999; input double Martin=1;
Параметры MaxLot, RiskRate я не рекомендую изменять! Не имеет смысла оптимизировать.
Параметр Lots– регулирует объем позиции.
Оптимизация значений: Зависит от Вашего депозита. Например: При шаго лота в 0.01 и депозите 1000 $: старт 0.01, шаг 0.01 стоп 0.1
- Этот параметр лучше оптимизировать после оптимизации остальных параметров стратегии.
- При увеличение лота Вы увеличиваете прибыль, полученную с одной позиции.
- При увеличении лота, Вы можете слить депозит.
- Не имеет смысла оптимизировать при DynamicLot =true
- Рассчитывайте лот так, чтобы при открытии позиции с этим лотом, У вас было использовано только 1-2 % от баланса., Например:
- Для открытия одной позиции лотом 0.01, Вам требуется 10 долларов свободной маржи.
- При использовании стоплосса в 100 пунктов (где цена 1 пункта = 0.1 доллара) Вы получите убыток 10 долларов. Это 1 % от 1000 $
Параметр DynamicLot и LotBalancePercent – регулирует авто расчет лота позиции.
Оптимизация значений: DynamicLot=true и LotBalancePercent с параметрами : старт 0.1 шаг 0.1 стоп 1
- Этот параметр лучше оптимизировать после оптимизации остальных параметров стратегии.
- Позволяет увеличивать лот при получении прибыли в геометрической прогрессии.
- Может повлиять на итоговую прибыль.
- Не рекомендую использовать значения больше 1 %.
Параметр Martin– Включает Мартингейл при закрытии по стоплоссу.
Оптимизация значений: старт 0.1, шаг 0.2, стоп 2
- Имеет смысл использовать, только при значении StopLoss>0
- Если Martin меньше 1, тогда каждая следующая позиция и ее лот будет меньше, чем предыдущая.
- Значения меньше 1 имеет смысл использовать только тогда, когда Lotsпозиций больше, чем минимальный лот на сервере.
- Если Martin больше 1, тогда каждая следующая позиция и ее лот будет больше, чем предыдущая.
- Чем выше значение Martin , тем опаснее торговля советником.
- Мартингейл это очень простая и опасная стратегия.
- Рекомендую проверить и почитать о нашей стратегии торговли по мартингейлу : Two Sides
Блок 9: Averager options
Блок работы с открытием против тренда. Усреднение позиций.
input string oo2="========= Averager options ========="; input bool AverageUSE=true; input bool OnlyModify=false; input int TakeProfitALL=200; input int Distance=500; input double DistanceMartin=1; input double LotsMartin=1; input int MaxOrdersOpen=5;
Параметры OnlyModify, я не рекомендую изменять! Не имеет смысла оптимизировать.
Параметр AverageUSE – Включает функции усреднения. Только при AverageUSE=true можно оптимизировать другие параметры!
Оптимизация значений: True – FALSE
- Усреднение позиций может загружать Ваш депозит дополнительными позициями.
- Стратегия усреднения требует баланс, который больше, чем стандартный депозит (без усреднения) минимум в 3 раза.
- Усреднение позиций это попытка сопровождения убыточной позиции в прибыль.
- При использовании рекомендованного депозита, позволяет увеличить количество прибыльных сделок до 70-90%
- При использовании усреднения, советник будет пытаться вывести ложный сигнал в прибыль. При этом другие сигналы будут игнорироваться до тех пор, пока серия усреднения не закроется.
Параметр TakeProfitALL – Модифицирует тейкпрофит всех позиций на 1 уровень
Оптимизация значений: 10-50-1000 (старт = 10, шаг = 50, стоп = 1000)
- Служит дополнительной защитой позиций, Если у Вас отключили свет.
- Имеет смысл, если ВЫ не используете Дополнительное открытие AdditionalOpening=false
Параметр Distance – Дистанция, на которой открываются дополнительные позиции против тренда!
Оптимизация значений: Рекомендуется устанавливать параметры индивидуально для каждой пары.
- Например: Если это валютная пара EURUSD и Вы торгуете на периоде M30 и среднее движение цены в период , например, 50 баров = 7500 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 25, стоп 500.
- Например: Если это валютная пара XUGUSD и Вы торгуете на периоде M1 и среднее движение цены в период , например, 50 баров = 100 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 5, стоп 100.
- Еще один способ оптимизации этого параметра, это использование среднего спреда по выбранной валютной паре. Этот метод используется в нашем советнике TickSniper
- Например: Средний спред по валютной паре = 3 пункта, тогда дистанция усреднения = 50 * 3 = 150 пунктов. При этом оптимизацию можно задавать так: 100-25-250
- Подробнее о рекомендациях, относительно дистанции усреднения: Averager для мт4 и мт5
- Чем выше значения дистанции, тем дольше советнику требуется времени, чтобы вывести серию позиций в общую прибыль
- Чем меньше значение дистанции усреднения, тем больше нагрузка на ваш баланс. Тем больше будут открываться позиций. Тем быстрее можно получить прибыль, но при этом будет большая нагрузка на ваш торговый счет!
Параметр DistanceMartin – Увеличение дистанции Distance на каждой дополнительной позиции!
Оптимизация значений:Только в крайних случаях, 1-0.1-2
- Этот параметр следует оптимизировать только в том случае, если Вам необходимо увеличить дистанцию при каждой новой позиции из серии.
- Если Distance слишком маленький, тогда DistanceMartin позволяет увеличивать шаг сетки усреднения.
- Если DistanceMartin меньше 1, тогда шаг сетки усреднения и Distance будут уменьшаться при открытии каждой дополнительной позиции усреднения!
- Если DistanceMartin больше 1, тогда шаг сетки усреднения и Distance будут увеличиваться при открытии каждой дополнительной позиции усреднения!
Параметр LotsMartin – Увеличение лота на каждой дополнительной позиции!
Оптимизация значений:Только в крайних случаях, 1-0.1-2
- Позволяет уменьшить время на то, чтобы серия позиций вышла в прибыль.
- Может давать нагрузку на Ваш торговый счет и баланс.
- Рекомендуется использовать только при достаточном объеме баланса!
- Если LotsMartin меньше 1, тогда лот следующего усреднения будет уменьшаться при открытии каждой дополнительной позиции усреднения!
- Если LotsMartin больше 1, тогда лот следующего усреднения будет увеличиваться при открытии каждой дополнительной позиции усреднения!
Параметр MaxOrdersOpen – Ограничение на количество дополнительных позиций усреднения против тренда!
Оптимизация значений:Только в крайних случаях, 0 – 1 – 10
- Позволяет ограничить нагрузку на депозит, путем ограничения количества новых дополнительных позиций.
- Я использую значения 5. Но вы можете оптимизировать это значения, для получения лучших результатов.
Блок 10: Additional opening
Блок работы с открытием по тренду. Дополнительное открытие.
input string oo10="========= Additional opening ========================================="; input bool AdditionalOpening=false; input bool OnlyModifyAdditionalOpening=false; input int StopLossALL=0; input int DistanceAdditionalOpening=100; input double LotsMartinAdditionalOpening=1; input int MaxOrdersOpenAdditionalOpening=0;
Параметры OnlyModifyAdditionalOpening, я не рекомендую изменять! Не имеет смысла оптимизировать.
Параметр AdditionalOpening – Включает функции дополнительного открытия по тренду. Только при AdditionalOpening=true можно оптимизировать другие параметры!
Оптимизация значений: True – FALSE
- Дополнительное открытие позиций позволяет получить больше прибыли, если сигнал был очень прибыльным.
- Дополнительная позиция может получить убыток и снизить прибыль от первоначальной серии.
- Позволяет строить сетку позиций в сторону прибыли
- Имеет смысл использовать вместе с Безубытком или Трейлингстопом
Параметр StopLossALL – Модифицирует стоплосс всех позиций на 1 уровень
Оптимизация значений: 10-50-1000 (старт = 10, шаг = 50, стоп = 1000)
- Служит дополнительной защитой позиций, Если у Вас отключили свет.
- Имеет смысл, если ВЫ не используете Усреднение AverageUSE=false
Параметр DistanceAdditionalOpening – Дистанция, на которой открываются дополнительные позиции по тренду!
Оптимизация значений: Рекомендуется устанавливать параметры индивидуально для каждой пары.
- Например: Если это валютная пара EURUSD и Вы торгуете на периоде M30 и среднее движение цены в период , например, 50 баров = 7500 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 25, стоп 500.
- Например: Если это валютная пара XUGUSD и Вы торгуете на периоде M1 и среднее движение цены в период , например, 50 баров = 100 пунктов, тогда устанавливаете этот параметр для оптимизации так: старт 0, шаг 5, стоп 100.
- Еще один способ оптимизации этого параметра, это использование среднего спреда по выбранной валютной паре.
- Например: Средний SPREAD по валютной паре = 3 пункта, тогда дистанция усреднения = 50 * 3 = 150 пунктов. При этом оптимизацию можно задавать так: 100-25-250
Параметр LotsMartinAdditionalOpening – Увеличение лота на каждой дополнительной позиции!
Оптимизация значений:Только в крайних случаях, 1-0.1-2
- Может давать нагрузку на Ваш торговый счет и баланс.
- Рекомендуется использовать только при достаточном объеме баланса!
- Если LotsMartinAdditionalOpening меньше 1, тогда лот следующей дополнительной позиции будет уменьшаться при открытии каждой дополнительной позиции!
- Если LotsMartinAdditionalOpening больше 1, тогда лот следующей дополнительной позиции будет увеличиваться при открытии каждой дополнительной позиции!
Параметр MaxOrdersOpenAdditionalOpening – Ограничение на количество дополнительных позиций по тренду!
Оптимизация значений:Только в крайних случаях, 0 – 1 – 10
Блок 11: BreakEven WithoutLOSS options
Блок включения безубытка.
input string MovingInWLUSE_="========= BreakEven WithoutLOSS options ========="; input bool MovingInWLUSE=false; input int LevelWLoss=0; input int LevelProfit=0;
Параметр MovingInWLUSE – Включает функции установки стоплосса в безубыток. Только при MovingInWLUSE=true можно оптимизировать другие параметры!
Оптимизация значений: True – FALSE
Параметр LevelWLoss – Уровень установки стоплосса в прибыль. Параметр LevelProfit – Значение прибыли в пунктах, когда начинает работать безубыток
Оптимизация значений: 0-5-50
- Параметр LevelProfit всегда должен быть больше, чем LevelWLoss
- Вы можете установить оптимизацию LevelProfit в значения 25-5-100, а значение LevelWLoss в 0-5-50
- Чем Выше значение LevelProfit тем больше нужно позиции пройти в прибыль, чтобы советник установил безубыток. Это защита от маленького безубытка, но ВЫ можете упустить прибыль.
- Чем больше разница между LevelProfit и LevelWLoss , тем менее чувствителен порог срабатывания безубытка.
Блок 12: Standard Trailing options
Блок включения стандартного трейлингстопа.
input string Trailing_="========= Standard Trailing options ========="; input bool TrailingStopUSE=true; input bool IfProfTrail=true; input int TrailingStop=100; input int TrailingStep=1; input bool SaveTPafterTrailingStop=false;
Параметры IfProfTrail и TrailingStep и SaveTPafterTrailingStop, я не рекомендую изменять! Не имеет смысла оптимизировать.
Параметр TrailingStopUSE– Включает функции сопровождения и модификации стоплосса в прибыль. Только при TrailingStopUSE=true можно оптимизировать другие параметры!
Оптимизация значений: True – FALSE
- Отличие TrailingStop и BreakEven в том, что трейлингстоп устанавливает BreakEven и дальше тянет стоплосс в прибыль, если это позволяет ситуация на рынке.
- Вы можете использовать разные значения параметров для TrailingStop и безубытка. Нет смысла использовать одинаковые параметры.
Параметр TrailingStop – Дистанция установки стоплосса от текущей цены. При этом позиция должна собрать TrailingStop пунктов прибыли.
Оптимизация значений: 0-10-100 (При среднем движении валютной пары 200-300 пунктов в день)
- Чем Выше значение TrailingStop тем больше нужно позиции пройти в прибыль, чтобы советник установил безубыток и дальше сопровождал позицию. Это защита от маленького безубытка, но ВЫ можете упустить прибыль.
Блок 13: TrailingStop by SAR
Блок включения трейлингстопа по индикатору SAR.
input string periods6="========= TrailingStop by SAR ====================================="; input bool TrailingStopSAR=false; input ENUM_TIMEFRAMES TrailingStopSAR_TimeFrame=PERIOD_CURRENT; input double step=0.02; input double maximum=0.2;
Параметры TrailingStopSAR_TimeFrame и step и maximum,
я не рекомендую изменять! Не имеет смысла оптимизировать.
Параметр TrailingStopSAR – Включает функции сопровождения и модификации стоплосса в прибыль по точкам индикатора PARABOLIC.
Только при TrailingStopSAR = true можно оптимизировать другие параметры!
Оптимизация значений: True – FALSE
- Позволяет устанавливать стоплосс на экстремумы индикатора.
- Всегда держит расстояние от текущей цены до экстремума, вычисляя дистанцию автоматически
- Не имеет смысла использовать вместе с TrailingStopUSE=true
Блок 14: Time Trade options
Блок управления работой советника по времени
input string oo6="========= Time Trade options========================================"; input bool TradeStartStopbyTime=false; input string SeveralTimeWork=""; input string periods41="=== Time Trade Start/Stop Time ============================"; input int OpenHour=0; input int OpenMinute=0; input int ClosePeriod_Minute=0; input int CloseHour=23; input int CloseMinute=59; input typeofclosebyouttime CloseAllTradesByOutOfTime=NotUse; input string periods43="=== Time Trade Days ============================"; input bool TradeByDays=false; input string Days="1,2,3,4,5,6,0"; input int DayForOptimization=0; input string periods42="=== Time Trade Monday ============================"; input bool TradeStartbyTimeMonday=false; input int OpenHourMonday=0; input int OpenMinuteMonday=0; input string periods44="=== Time Trade Friday ============================"; input bool TradeStartStopbyTimeFriday=false; input int OpenHourFriday=0; input int OpenMinuteFriday=0; input int CloseHourFriday=23; input int CloseMinuteFriday=59; input bool CloseFriday=false;
В этом блоке очень много параметров и оптимизировать все параметры очень долго.
Вы можете оптимизировать параметры времени после оптимизации всех остальных блоков для того, чтобы улучшить результаты тестирования.
Только при TradeStartStopbyTime=true имеет смысл оптимизировать остальные параметры!
Я могу советовать оптимизацию только таких параметров:
- OpenHour = 0-1-23
- CloseHour = 0-1-23
- TradeByDays= True-False
- DayForOptimization = 0-1-6
Блок 15: CloseALL when Profit or LOSS options
Блок закрытия по общей прибыли.
input string CloseProfitLoss="========= CloseALL when Profit or LOSS options ========="; input typeprofloss TypeofClose=1; input bool CloseProfit=false; input double prifitessss=10; input bool CloseLoss=false; input double lossss=-10; input double TrailOptions=0; input double TrailOptionsStep=0; input double BalanceStart=0; input bool ForcedClose=true; input bool MailSend; input bool Orderdelete=true; input bool OFFAfterClosePROF=false; input bool OFFAfterCloseLOSS=false; input bool CloseTerminalAfterClosePROF=false; input bool CloseTerminalAfterCloseLOSS=false;
Индивидуальный блок. Вы можете оптимизировать параметры только тогда, когда это необходимо по Вашей стратегии.
Например: При открытии нескольких позиций или хаотичное открытие позиций.
Имеет смысл оптимизировать при включении TypeofClose=PercentBalance следующие параметры:
- CloseProfit=True-False;
- prifitessss=0.1-0.1-1
- CloseLoss=True-False;
- lossss=(-0.1)-(-0.1)-(-1)
Остальные параметры советника
Я не рекомендую изменять и оптимизировать остальные параметры системы без изучения подробных описаний этих параметров. А также без знания того, что происходит с советником при включении остальных параметров.
Примеры использования функций
Параметр получения сигнального бара
shift (0,1,2…..) Номер бара
Данный параметр представляет собой номер бара, с которого Ваши индикаторы будут брать сигнал. При заказе эксперта Вы должны указать такие параметры определения сигнала: Открывать сделку сразу же после сигнала, или же ждать , пока сигнал сформируется на закрытом баре и открывать сделку только открытии следующего бара
Некоторые индикаторы, в силу своих алгоритмов, имеют четкое определение: на каком баре подается сигнал. Если говорить о четкости и правильном исполнении приказа: то сделку необходимо обрабатывать только на закрытом баре т.е. параметр shift=1, Если же необходимо открывать сделку сразу же по наступлению сигнала на текущем баре и индикатор это позволяет необходимо ставить shift=0.
Переворот сигналов стратегии
ReverseSignal (true – false) Включен\Выключен
Данный параметр представляет собой переворот сигналов Вашего индикатора\индикаторов
Если Ваш эксперт построен на определенном алгоритме, или на определенных сигналах индикатора, у Вас есть возможность, без перепрограммирования поменять местами сигналы BUY\SELL
Например: ReverseSignal=true
Ваш индикатор подал сигнал на BUY, но эксперт откроет сделку SELL.
Ваш индикатор подал сигнал на SELL, но эксперт откроет сделку BUY.
Использование отложенных ордеров при открытии вместо позиции
StopOrderUSE (Orders – Limit- false) и StopOrderDeltaifUSE(От минимально допустимого стопа на сервере ) в пунктах
Данный параметр в связке представляет собой возможность открывать не позиции а отложенные ордера. Если допустим после наступления сигнала Вы хотите его проверить путем установки отложенного ордера
Например: StopOrderUSE =Orders StopOrderDeltaifUSE=100
Если Ваш индикатор подал сигнал на открытие BUY то советник откроет отложенный ордер BUYSTOP по цене Ask+StopOrderDeltaifUSE пунктов
Если Ваш индикатор подал сигнал на открытие SELL то советник откроет отложенный ордер SELLSTOP по цене Bid-StopOrderDeltaifUSE пунктов
Если параметр будет меньше минимально допустимого на сервере – эксперт выдаст ошибку 130
Магический номер
Magic (0….99999) Номер
Данный параметр представляет собой особый номер эксперта, который стоит на графике, Если Вы используете множество экспертов на разных графиках, для исключения проблем с запутыванием между собой сделок экспертами, Вам необходимо каждому эксперту присвоить свой отдельный номер.
Если же, например, Вы используете 1 эксперта но с разными настройками, Вам необходимо каждому отдельному эксперту с настройками присвоить свой магический номер. Также данный параметр необходимо менять на разных валютных парах, дабы вскоре разобраться с детализированным отчетом, какой эксперт к какой паре был привязан.
Стоплосс/ Тейкпрофит позиции
StopLoss (0…)в пунктах
Данный параметр представляет собой Стоплосс каждой позиции, Это количество пунктов минуса, при котором сделка будет закрыта сервером
0 – параметр отключен, и Стоплосс сделки будет равен 0.
TakeProfit (0…)в пунктах
Данный параметр представляет собой Тейкпрофит каждой позиции, Это количество пунктов плюса, при котором сделка будет закрыта сервером
0 – параметр отключен, и Тейкпрофит сделки будет равен 0.
Данный параметр необходимо выставлять не меньше – минимально допустимого стопа на Вашем сервере.
Если параметр будет меньше минимально допустимого на сервере – эксперт выдаст ошибку 130
Закрытие сделок по обратному сигналу
ClosePosifChange (true – false)
Данный параметр регулирует возможность закрывать противоположную сделку при открытии новой. Если Ваш индикатор использует сигналы : BUY – SELL – BUY – SELL , то при включении данного параметра, эксперт перед открытием новой сделки будет закрывать противоположную
CloseChangeOnlyInProfit (true – false)
Данный параметр включает возможность закрывать по обратному сигналу только тогда! Когда обратное направление вышло в профит и имеет общий + (Если сделка одна = считается ее профит, если сделок несколько = считается общий профит всех сделок обратного направления)
Количество позиций сигналов стратегии
ONlyOnePosbySignal (true – false)Включен\Выключен
Данный параметр регулирует возможность открытия одной позиции или множества позиций.
При чем в включенном положении, при каждом сигнале на 1 бар будет открыта 1 позиция.
Например: Сигналы Вашей стратегии дают поочередно сигнал на BUY на каждом новом баре, при этом если функция ONlyOnePosbySignal = false то на каждом баре при поступлении сигнала будет открыта сделка BUY
Если данная функция ONlyOnePosbySignal = true, то эксперт может открыть только одну сделку BUY и одну сделку SELL и ждать, пока они не закроются
OnePosPerDirection: Открытие 1 сделки на 1 направление
например:
если OnePosPerDirection=true и ONlyOnePosbySignal = false
тогда советник может открыть 1 сделку Бай по сигналу и 1 сделку Селл по сигналу
если OnePosPerDirection=false и ONlyOnePosbySignal = true
тогда советник может открыть только 1 сделку по сигналу либо Бай либо СЕЛЛ
если OnePosPerDirection=false и ONlyOnePosbySignal = false
тогда советник может открывать любые сделки по каждому сигналу индикаторов
OnlyOnePositionPerMagic: Открытие 1 позиции на 1 магик,
Советник проверяет есть ли открытые позиции по данному магику у других валютных пар. Если позиции нет – советник откроет сделку по сигналу, а остальные советники будут ждать завершения этой сделки.
Фиксированный лот
Lots (0.01 ………) Установка фиксированного лота на все сделки
Данный параметр устанавливает количество лотов при открытии сделки. Лот фиксированный и распространяется на все сделки
При этом, Вы должны уточнить у брокера минимально допустимый лот, для открытия сделки
Мартингейл
Martin (1….) в коэффициенте
Данный параметр позволяет Вам использовать принцип Мартингейла для своей стратегии, в котором следующая сделка за убыточной будет открывать из расчета Лот * Martin
При этом если параметр равен 1, то Мартингейл не используется.
Например: Lots = 0.01 Martin =2:
1 сделка BUY(0.01) закрылась в минусе \ или по стоплоссу(в минусе)
2 сделка будет открыта с лотом 0.01 * 2 = 0.02
3 если предыдущая сделка была закрыта по стоплоссу, то следующая сделка будет открыта лотом 0.04
Если предыдущая сделка была закрыта в + либо же по тейкпрофиту, то следующая за ней будет открыта с начальным лотом 0.0
Время работы эксперта
Внимание: Торговля по времени подразумевает только фильтрацию на открытие новых сделок по новым сигналам.
Все остальные функции: Трейлингстоп, Безубыток (установка стоплосса на точку безубыточности), Усреднение, Доливки по тренду и так далее работает круглосуточно.
Внимание: Все параметры торгового времени Вы можете оптимизировать в тестере.
Если TradeStartStopbyTime = false, тогда советник торгует круглосуточно, если не указаны работа в пятницу и в понедельник
Если TradeStartStopbyTime = true, тогда включается время торговли:
Начало времени торговли начинается с понедельника.
Советник начинает работать в понедельник, если задано TradeStartbyTimeMonday=true по времени OpenHourMonday:OpenMinuteMonday
Например, OpenHourMonday=3 и OpenMinuteMonday=40, тогда советник начинает торговать в понедельник в 03:40 по времени сервера
(время Вашего брокера, указывается в обзоре рынка).
Далее советник проверяет время торговли по параметрам: OpenHour:OpenMinute – начало торговли и CloseHour:CloseMinute – конец торговли за 1 сутки.
Например: OpenHour=5 и OpenMinute=0, а также CloseHour=18 и CloseMinute=59, тогда советник будет торговать каждый день с 5:00 до 18:59.
Если Вы хотите задать период торговли от начального времени, Вы можете задать параметр ClosePeriod_Minute – период в минутах.
Например, OpenHour=6 и OpenMinute=0 и ClosePeriod_Minute=180, тогда советник устанавливает время торговли с 6:00 до 9:00(6+180 минут = 9 часов).
Вы также можете задать несколько временных отрезков для торговли в параметре SeveralTimeWork. Формат записи: ЧЧ:ММ-ЧЧ:ММ;
где: Час старта торговли:Минута старта торговли – Част стоп торговли: Минута стоп торговли.
Например, SeveralTimeWork=3:00-5:00;7:30-8:50;12:00-15:00;
тогда советник будет торговать 3 отрезка времени. с 3 часов до 5 часов, с 7:30 до 8:50 и с 12:00 до 15:00. Все остальное время советник не будет открывать новые сделки.
Также Вы можете закрыть все открытые сделки и отложенные ордера в нерабочее время, CloseAllTradesByOutOfTime=true.
При этом советник будет торговать в установленное выше время, а когда время торговли закончится – советник будет закрывать все открытые позиции и ордера.
TradeStartStopbyTimeFriday – Торговое время для пятницы.
В нашем советнике ВЫ можете задать время торговли советника в пятницу.
Параметры времени для пятницы: OpenHourFriday:OpenMinuteFriday – CloseHourFriday:CloseMinuteFriday
Например, Вам нужно, чтобы советник не открывал новых сделок в пятницу после 18:00, тогда ВЫ устанавливаете:
OpenHourFriday=0:OpenMinuteFriday=0 – CloseHourFriday=18:CloseMinuteFriday=0
В таком случае, советник не будет открывать новые сделки после 18 : 00
Также Вы можете закрыть все открытые сделки и отложенные ордера в пятницу в установленное время 18:00, CloseFriday=true.
CloseAllTradesByOutOfTime
В нашем блоке работы по времени ВЫ можете задать Торговые дни для торговли: TradeByDays
Например, TradeByDays=true Days=1,2,3 – в таком случае советник будет торговать только в понедельник, вторник и среду по установленному выше времени. Или торговать круглосуточно эти 3 дня, если время не установлено.
Если ВЫ указали Days=1,2,3,4,5 но параметр TradeStartStopbyTimeFriday=false, советник не будет торговать в пятницу.
Также ВЫ можете задать 1 день для оптимизации в параметре DayForOptimization.
Эта опция полезна для того, чтобы определить в какие дни на оптимизации были самые прибыльные.
например, DayForOptimization = 3, тогда советник будет торговать только по средам.
Вы можете задать старт торговли в понедельник и стоп торговли в пятницу, при этом в остальные дни советник будет торговать круглосуточно.
Вы можете задать старт в понедельник и определенные часы в остальные дни.
Классический TralingStop
TrailingStopUSE(true – false) IfProfTrail(true – false) TrailingStop(в пунктах) TrailingStep(в пунктах)
Данные параметры включают\отключают автоматическое слежение за позицией путем модификации стоплосса в + зону.
TrailingStopUSE – Включает\отключает функцию Траллингстоп
IfProfTrail – при true Советник начинает модификацию только с момента выхода позиции в Безубыток (установка стоплосса на точку безубыточности). при false – тралингстоп начинает работать сразу после выставления позиции и тянет его вслед за ценой
TrailingStop – расстояние в пунктах от текущей цены до предполагаемого стоплосса. Данный параметр не может быть меньше минимально допустимого на Вашем сервере.
TrailingStep– шаг модификации стоплосса
Например: Стоплосс будет модифицироваться каждые TrailingStep 50 пунктов на расстоянии TrailingStop 100 пунктов от текущей цены
TralingStop по PARABOLIC SAR
TrailingStopSAR (true – false) step и maximum(параметры Параболик SAR)
Данные параметры включают возможность модификации стоплосса по установленному Параболику
При этом стоплосс будет модифицироваться при каждом новом значении Параболик SAR.
Соответственно, BUY модифицируется, когда Параболик находится ниже цены, Sell модифицируется когда ПАРАБОЛИК находится выше цены.
Функция закрытия по общей прибыли \ убытку
Данные параметры регулируют возможность закрыть сделку\сделки по данному инструменту и магику, достигнув один из параметров
Параметры
TypeofClose=1; -Тип закрытия по прибыли 1 – Доллар, 2 -Пункты ,3 -%Эквити ,4 -%Балан
CloseProfit=false; Закрывать если общая совокупная позиция (все сделки) вышли в прибыль +
prifitessss=10; -Количество юнитов(в зависимости от выбора TypeofClose) для закрытия профита.
CloseLoss=false; Закрывать если общая совокупная позиция (все сделки) вышли в убыток –
lossss=-10; -Количество юнитов(в зависимости от выбора TypeofClose) для закрытия убытка.
Например:
Если Вы хотите закрыть несколько сделок BUY \ SELL при прибыли по счету в 10 $:
TypeofClose=1; CloseProfit=true; prifitessss=10;
Если Вы хотите закрыть несколько сделок BUY \ SELL при убытке по счету в 200 пунктов:
TypeofClose=2; CloseLoss=true; lossss=200;
Если Вы хотите закрыть несколько сделок BUY \ SELL при убытке по счету в 5 % от депозита, а также закрыть несколько сделок BUY \ SELL при прибыли по счету в 10 % от депозита:
TypeofClose=4; CloseLoss=true; prifitesssslossss=5;CloseProfit=true; prifitesssslossss=10;
Установка стоплосса в Безубыток
MovingInWLUSE (true – false) LevelWLoss(в пунктах) LevelProfit (в пунктах)
Данные параметры регулируют возможность включить модифицирование сделки в Безубыток (установка стоплосса на точку безубыточности), при первой возможности
Например
Вы хотите установить стоплосс в Безубыток (установка стоплосса на точку безубыточности), когда сделка наберет +10 пунктов прибыли:
MovingInWLUSE = true; LevelWLoss=0 ; LevelProfit =10;
Вы хотите установить стоплосс в +5 пунктов, когда сделка наберет +20 пунктов прибыли:
MovingInWLUSE = true; LevelWLoss=5 ; LevelProfit =20;
При этом Разница между LevelProfit – LevelWLoss должны быть всегда больше или равна минимальному стопу на сервере
Усреднение, открытие против тренда
UseAverAdditionalOpenOrderinOne – true Количество ордеров считается общее и доливки и усреднителя;
AverageUSE – Использовать усреднение, открытие дополнительных ордеров против тренда ;
Distance – Дистанция открываемых позиций сетка;
LotsMartin – Увеличение лота для сетки позиций;
MaxOrdersOpen – Максимальное количество колен 0 — неограничен;
Данный советник поддерживает функцию усреднения позиций. Принцип ее работы заключается в том, что когда цена идет в противоположную сторону от сделки и проходит определенное расстояние Distance в пунктах — советник открывает сделку в том же направлении, что и основная сделка с лотом основной сделки * LotsMartin. Таким образом из 2 сделок получается усредненная сделка с общим тейкпрофитом(Если он установлен в параметрах TakeProfit).
Если включен трейлингстоп TrailingStopUSE советник будет сопровождать всю серию сделок по общему трейлингстопу.
Также есть возможность установить максимальное количество колен в серии параметром MaxOrdersOpen
Например:
AverageUSE = true Distance=100 LotsMartin=2 MaxOrdersOpen=3 TakeProfit=50
Доливка, открытие по тренду
AdditionalOpen– Использовать открытие дополнительных ордеров по тренду;
DistanceAdditionalOpen – Дистанция открываемых позиций сетка доливка по тренду;
LotsMartinAdditionalOpen – Увеличение лота для сетки позиций;
MaxOrdersOpenAdditionalOpen – Максимальное количество колен 0 – неограничен;
Советник способен доливаться по тренду, если цена идет в сторону позиций. Если цена проходит установленное расстояние DistanceAdditionalOpen в пунктах от цены открытия позиции, советник откроет такую же позицию с лотом основной позиции * LotsMartinAdditionalOpen . Также есть возможность установить максимальное количество позиций доливки
Например:
AdditionalOpen = true DistanceAdditionalOpen=100 LotsMartinAdditionalOpen=2 MaxOrdersOpenAdditionalOpen=3 TakeProfit=500
Также Вы можете установить стоплосс, трейлингстоп, Безубыток (установка стоплосса на точку безубыточности)
Ограничение убытков и профита за 1 день\ Неделя\ Месяц
Limiting LimitFor – Тип ограничения день\неделя\месяц
LimitForLosses – ограничение по профиту
LimitForProfits– ограничение по убытку
LimitType – Тип лимита по Долларам, Пунктам, Процентам от депозита
ClosebyLIMITING – Закрывать сделки советника при превышении Лимита
UseCurrentProfit – Учитывать, при вычислении лимита, текущий профит\ убыток
Данная функция способна отключить работу советника, если советник набрал определенный профит\убыток в валюте депозита за день\месяц\неделю. При этом следующая работа советника будет на следующий день\неделя\месяц
Например LimitFor=DAY LimitForProfits=1 Закрытие по общему профиту = 10 долларов
Также Вы можете выбрать тип лимита LimitType для расчетов. В долларах, пунктах, процентах от баланса счета.
Если Вам необходимо закрыть и удалить все сделки по данному советнику, при превышении лимитов, Вы можете поставить ClosebyLIMITING = true
Параметр UseCurrentProfit запрещает или разрешает учитывать текущий плавающий профит\убыток по данному советнику
Виртуальные стопы
VirtualStops — Скрывает реальные стопы на позициях и делает их виртуальными.
Данный параметр превращает реальные стоплосс, тейкпрофит, трейлингстоп, Безубыток (установка стоплосса на точку безубыточности)и все что связано с
стопами в виртуальные стопы. Т.е. Советник не выставляет стоплосс\тейкпрофит на сервере брокера, а
держит все данные в памяти.
Как только цена пересекает виртуальный уровень стопов — советник закрывает позицию.
Преимущества виртуальных стопов очевидны. Можно выставлять даже самый минимальный тейкпрофит
или стоплосс т 1 пункта. Сервер не видит Ваших стопов, тем самым не может их сбивать.
Но есть и недостатки: Компьютер всегда должен быть включен. Иначе виртуальный стоплосс не сработает.
При закрытии позиций — могут быть реквоты, тем самым сдвигать пункты стопов.
Полностью переработан алгоритм виртуальных стоплосс\тейкпрофит\трейлингстоп\ Безубыток (установка стоплосса на точку безубыточности).
Теперь все виртуальные стопы отображаются на графике и являются ключевыми при закрытии позиций по этим уровням.
Данные записываются в виде линий и глобальных переменных.
Внимание: Если удалить линию стопа на графике и глобальные переменные – Виртуальное закрытие по это
линии работать не будет.
Внимание: Проверьте Ваши эксперты и индикаторы на удаление линий с графика и глобальных переменных!
Внимание: Виртуальные уровни срабатывают по текущей цене, после чего происходит закрытие.
Во время закрытия могут быть проскальзывания в пару пунктов!
Внимание: При включении VirtualStops – скорость тестирования значительно ниже.
OnTester Дополнительные критерии для оптимизации выбор лучших результатов
В новых версиях терминала появилась возможность отбирать лучшие результаты оптимизации по пользовательским критериям!
Например: Можно установить Минимальное количество торговых сделок, которое нужно получить в результате оптимизации.
Все остальные проходы, в которых меньше торговых сделок, чем задано в настройках, будут иметь результат 0 и их можно отфильтровать!
Общие сведения:
Функция вызывается непосредственно перед вызовом функции OnDeinit() и имеет тип возвращаемого значения double. Функция OnTester() может быть использована только в экспертах при тестировании и предназначена в первую очередь для расчета некоторого значения, используемого в качестве критерия Custom max при генетической оптимизации входных параметров.
При генетической оптимизации сортировка результатов в пределах одного поколения производится по убыванию. То есть, лучшими с точки зрения критерия оптимизации считаются результаты с наибольшим значением (для критерия оптимизации Custom max в расчет принимаются значения, возвращенные функцией OnTester). Худшие значения при такой сортировке помещаются в конец и впоследствии отбрасываются и не принимают участия в формировании следующего поколения.
Настройка оптимизации в MetaTrader 4
Для начала работы в режиме оптимизации по пользовательским критериям, Вам необходимо настроить Ваш термсинал.
Откройте Свойства эксперта
Установите Режим оптимизации (Оптимизируемый параметр) CUSTOM
Установите галочку на Оптимизации:
Установите желаемые пользовательские критерии для генетической оптимизации:
В результате работы этой функции Вы можете Сортировать результат по колонке OnTester result
В результате Вы можете увидеть, что все проходы оптимизации, которые не отвечают условиям установленных параметров, будут иметь результат 0!
А все остальные результаты тестирования будут иметь результат, заданный в параметре OnTester_Custom_max ()
Настройка оптимизации в MetaTrader 5
Для начала работы в режиме оптимизации по пользовательским критериям, Вам необходимо настроить Ваш термсинал.
Установите Режим оптимизации (Оптимизируемый параметр) CUSTOM
Установите желаемые пользовательские критерии для генетической оптимизации:
В результате работы этой функции Вы можете Сортировать результат по колонке OnTester result
В результате Вы можете увидеть, что все проходы оптимизации, которые не отвечают условиям установленных параметров, будут иметь результат 0!
А все остальные результаты тестирования будут иметь результат, заданный в параметре OnTester_Custom_max ()
Варианты вызова OnTester_Custom_max:
Первый параметр является общей формулой для получения результата прогона оптимизатора!
По умолчанию: (Прибыль*Количество Трейдов) / Процент просадки свободных средств
OnTester_Custom_max | Свой критерий генетической оптимизации. Подробнее о результатах тестирования: Статистика Запись в виде формулы.Например:OnTester_Custom_max=”STAT_PROFIT*STAT_TRADES/STAT_EQUITY_DD” Обязательно указание имен переменных, как в справочнике! |
Варианты вызова OnTester_****:
OnTester_Min_Trades | Min Deals for optimization | Минимальное количество торговых сделок, открытых советником, для успешного результата оптимизации.Например: 50 = Если торговых сделок в данном прогоне оптимизатора меньше, чем 50, то этот результат будет равен 0 |
OnTester_Min_Profit | Min Profit for optimization | Минимальная прибыль в валюте депозита, полученная советником, для успешного результата оптимизации.Например: 100 = Если Прибыль в данном прогоне оптимизатора меньше, чем 100, то этот результат будет равен 0 |
OnTester_Min_ProfitFactor | Min ProfitFactor for optimization | Минимальный Профит фактор, полученный советником, для успешного результата оптимизации.Например: 1 = Если ПрофитФактор в данном прогоне оптимизатора меньше, чем 1, то этот результат будет равен 0 |
OnTester_Min_Balance | Min Balance for optimization | Минимальный Баланс (в валюте депозита), Который будет при завершении тестирования, для успешного результата оптимизации.Например: 1000 (Такой же как стартовый депозит) = Если Баланс в данном прогоне оптимизатора меньше, чем Стартовый депозит, то этот результат будет равен 0 |
OnTester_Min_Equity | Min Equity for optimization | Минимальные свободные средства (в валюте депозита), Который будет при завершении тестирования , для успешного результата оптимизации.Например: 500 = Если Эквити в данном прогоне оптимизатора меньше, чем 500 (в валюте депозита), то этот результат будет равен 0 |
OnTester_Max_Balance_DD | Max Balance DD % for optimization | Максимальная просадка по балансу (в процентах), открытых советником, для успешного результата оптимизации.Например: 25 = Если Просадка по балансу в процентах в данном прогоне оптимизатора больше , чем 25, то этот результат будет равен 0 |
OnTester_Max_Equity_DD | Max Equity DD %for optimization | Максимальная просадка по эквити(в процентах), открытых советником, для успешного результата оптимизации.Например: 25 = Если Просадка по эквити в процентах в данном прогоне оптимизатора больше , чем 25, то этот результат будет равен 0 |
Выводы
Оптимизация и тестирование советников достаточно нужное занятие.
Вам может показаться, что оптимизация это очень сложно и дорого. Но ВЫ же собираетесь зарабатывать миллионы долларов?
Вы должны понимать, что ничего легкого на форексе не существует. И каждый советник это всего лишь алгоритм, построенный в коде.
Мы работает уже более 10 лет и знаем, что такое торговые эксперты.
С уверенностью можем сказать, что оптимизация и настройка одного советника – это намного легче, чем поиск и оптимизация тысячи других роботов.
- Тестируйте и находите свои параметры для торговли, которые будут Вас радовать.!
- Проводите оптимизацию каждые пол года!
- Следите за советником, изучайте журнале и лог файлы, будьте внимательны к советнику!
- Регулируйте параметры советников в зависимости от новостей.
Изучайте материалы по торговле на форекс.
This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어