Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 112
- Рейтинг:
- Опубликован:
- Обновлен:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Универсальная библиотека классов для реализации различных стратегий трейлинга StopLoss в торговых роботах. Библиотека позволяет гибко управлять StopLoss открытых позиций по фиксированному отступу от цены, а также по значениям популярных индикаторов: Parabolic SAR, AMA, DEMA, FRAMA, MA, TEMA, VIDYA и произвольному уровню.
Библиотека предоставляет удобный способ добавить несколько видов различных трейлингов StopLoss в Ваш советник на MQL5. Просто подключите нужный класс, настройте параметры и вызывайте метод Run() в OnTick().
Заголовок
#include <Trailings\Trailings.mqh>
Структура классов
Класс | Назначение | Примеры использования |
---|---|---|
CSimpleTrailing | базовый класс трейлинга по цене (простой трал) | //--- Подключение #include <Trailings\Trailings.mqh> //--- Глобально CSimpleTrailing trail; //--- В OnInit(): trail.SetSymbol(_Symbol); trail.SetMagicNumber(123); trail.SetStopLossOffset(100); trail.SetActive(true); //--- В OnTick(): trail.Run(); |
CTrailingByInd | базовый класс трейлинга по индикатору | Используется наследуемыми классами |
CTrailingBySAR | трейлинг по индикатору Parabolic SAR | //--- Подключение #include <Trailings\Trailings.mqh> //--- Глобально CTrailingBySAR trailSAR; //--- В OnInit(): trailSAR.Initialize(_Symbol, PERIOD_M15, 0.02, 0.2); trailSAR.SetActive(true); //--- В OnTick(): trailSAR.Run(); |
CTrailingByAMA | трейлинг по Adaptive Moving Average | //--- Подключение #include <Trailings\Trailings.mqh> //--- Глобально CTrailingByAMA trailAMA; //--- В OnInit(): trailAMA.Initialize(_Symbol, PERIOD_H1, 9, 2, 30, 0, PRICE_CLOSE); trailAMA.SetActive(true); //--- В OnTick(): trailAMA.Run(); |
CTrailingByDEMA | трейлинг по Double Exponential Moving Average | //--- Подключение #include <Trailings\Trailings.mqh> //--- Глобально CTrailingByDEMA trailDEMA; //--- В OnInit(): trailDEMA.Initialize(_Symbol, PERIOD_H1, 14, 0, PRICE_CLOSE); trailDEMA.SetActive(true); //--- В OnTick(): trailDEMA.Run(); |
CTrailingByFRAMA | трейлинг по Fractal Adaptive Moving Average | //--- Подключение #include <Trailings\Trailings.mqh> //--- Глобально CTrailingByFRAMA trailFRAMA; //--- В OnInit(): trailFRAMA.Initialize(_Symbol, PERIOD_H1, 14, 0, PRICE_CLOSE); trailFRAMA.SetActive(true); //--- В OnTick(): trailFRAMA.Run(); |
CTrailingByMA | трейлинг по Moving Average | //--- Подключение #include <Trailings\Trailings.mqh> //--- Глобально CTrailingByMA trailMA; //--- В OnInit(): trailMA.Initialize(_Symbol, PERIOD_H1, 20, 0, MODE_EMA, PRICE_CLOSE); trailMA.SetActive(true); //--- В OnTick(): trailMA.Run(); |
CTrailingByTEMA | трейлинг по Triple Exponential Moving Average | //--- Подключение #include <Trailings\Trailings.mqh> //--- Глобально CTrailingByTEMA trailTEMA; //--- В OnInit(): trailTEMA.Initialize(_Symbol, PERIOD_H1, 14, 0, PRICE_CLOSE); trailTEMA.SetActive(true); //--- В OnTick(): trailTEMA.Run(); |
CTrailingByVIDYA | трейлинг по Variable Index Dynamic Average | //--- Подключение #include <Trailings\Trailings.mqh> //--- Глобально CTrailingByVIDYA trailVIDYA; //--- В OnInit(): trailVIDYA.Initialize(_Symbol, PERIOD_H1, 9, 12, 0, PRICE_CLOSE); trailVIDYA.SetActive(true); //--- В OnTick(): trailVIDYA.Run(); |
CTrailingByValue | трейлинг по заданному уровню | //--- Подключение #include <Trailings\Trailings.mqh> //--- Глобально CTrailingByValue trailValue; //--- В OnInit(): trailValue.SetSymbol(_Symbol); trailValue.SetActive(true); //--- В OnTick(): trailValue.Run(customSLBuy, customSLSell); |
Установка параметров:
- SetSymbol(symbol) — установка торгового символа;
- SetMagicNumber(magic) — установка magic number;
- SetStopLossOffset(offset) — установка отступа StopLoss от цены/индикатора;
- SetTrailingStart(start) —установка минимальной прибыли для активации трейлинга;
- SetTrailingStep(step) — установка шага перемещения StopLoss;
- SetSpreadMultiplier(value) — установка множителя спреда для StopLevel;
- SetActive(flag) — включение/отключение трейлинга.
Для индикаторных классов — дополнительные параметры индикаторов (периоды, типы цен, методы и т.д.).
Пример работы подключенного трала по Parabolic SAR к стандартному советнику \MQL5\Experts\Advisors\ExpertMACD.mq5:
Подробнее по теме этих тралов можно ознакомиться в статьях
- Как добавить Trailing Stop по индикатору Parabolic SAR
- Как сделать любой тип Trailing Stop и подключить к советнику
Trailings.mqh — простой способ добавить трейлинг StopLoss в ваш советник на MQL5.
Подключите нужный класс, настройте параметры и вызывайте *.Run() в OnTick.
Если в Вашем советнике есть цикл перебора своих позиций, то можно вызывать метод Run() трейлингов с указанием тикета выбранной позиции:
Run(const ulong pos_ticket);
В общем простом случае это будет так в обработчике OnTick():
for(int i=PositionsTotal()-1; i>=0; i--) { trailing_simple.Run(PositionGetTicket(i)); }

Простая стратегия на основе сигналов двух индикаторов: Williams' Percent Range (WPR) и полос Боллинджера (BB). Открытие позиции происходит только при совпадении сигналов обоих индикаторов.

Советник Cincin (v2.24) - это автоматическая торговая система для MetaTrader 5, которая совершает консервативные случайные сделки по заданному инструменту (например, EURUSD), с такими функциями, как управление корзиной, хеджирование и контроль позиции.

TardioBot V1.05, названный в честь исторического деятеля Джузеппе Тардио, - советник для MetaTrader 5, использующий треугольную арбитражную стратегию.

Эта библиотека моделирует сценарии работы проп-трейдинговых компаний, сбрасывая баланс счета на основе настраиваемых пороговых значений прибыли и убытков во время бэктестирования, и регистрирует результаты сброса для анализа.