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

Библиотека классов трейлинга StopLoss для MQL5 - библиотека для MetaTrader 5

Просмотров:
112
Рейтинг:
(2)
Опубликован:
Обновлен:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Универсальная библиотека классов для реализации различных стратегий трейлинга 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:


Подробнее по теме этих тралов можно ознакомиться в статьях

  1. Как добавить Trailing Stop по индикатору Parabolic SAR
  2. Как сделать любой тип 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)); 
  } 



Простой советник на основе индикаторов WPR, Bollinger Bands и ATR Простой советник на основе индикаторов WPR, Bollinger Bands и ATR

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

Cincin EA Cincin EA

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

TardioBot TardioBot

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

Balance_Reset Balance_Reset

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