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

VR---Moving - эксперт для MetaTrader 5

Опубликовал:
Vladimir Karputov
Просмотров:
1672
Рейтинг:
(11)
Опубликован:
2018.05.11 12:20
\MQL5\Experts\VR---Moving\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Автор идеи: Vladimir Pastushak.

Автор MQL5-кода: Vladimir Karputov.

Советник торгует по индикатору "Moving Average", при этом все подготовительные и торговые функции реализованы в виде торгового класса CMoving в отдельном файле Moving.mqh.


Входные параметры

  • magic number - уникальный идентификатор эксперта;
  • Lots - объем позиции (допускается указывать или объем позиции больше нуля, или размер риска больше нуля);
  • Risk - риск на сделку в процентах от свободной маржи (допускается указывать или объем позиции больше нуля, или размер риска больше нуля);
  • MA: period - индикатор "Moving Average": таймфрейм;
  • MA: averaging period - индикатор "Moving Average": период усреднения;
  • MA: horizontal shift - индикатор "Moving Average": горизонтальный сдвиг;
  • MA: smoothing type - индикатор "Moving Average": метод усреднения;
  • MA: type of price - индикатор "Moving Average": тип цен по которым рассчитывается индикатор;
  • Take Profit - тейк профит (для случая, пока открыта одна позиция);
  • Lot multiplier for a series of Positions - увеличение объема позиции для серии позиций;
  • Distance from Moving Average - расстояние от индикатора "Moving Average";
  • Additive in the presence of the general profit - добавка к отступу при наличии общей прибыли.

Советник использует принцип качелей, при этом есть возможность увеличивать лоты, для работы применяется простая стратегия:

  • Если цена выше индикатора "Moving Average" на заданную дистанцию Distance from Moving Average, открываем BUY позицию;
  • Если цена уходит вниз от индикатора "Moving Average" на заданную дистанцию Distance from Moving Average, открываем SELL позицию тем же лотом;
  • Если цена поднялась вверх от BUY позиции с самой высокой ценой на заданную дистанцию Distance from Moving Average, открываем следующую BUY позицию;
  • Если цена опустилась вниз от SELL позиции с самой низкой ценой на заданную дистанцию Distance from Moving Average, открываем следующую SELL позицию.


Класс CMoving

Установка параметров
Initialization

Начальная инициализация - устанавливаются параметры:

  • symbol - имя символа, по которому будет работать советник
  • magic - уникальный идентификатор эксперта
  • slippage - проскальзывание.
GetFlag
Возвращает состояние флага инициализации. Используется как вспомогательная функция при вызове из главного эксперта для проверки состояния внутренней переменной m_init класса CMoving.
LotsOrRisk
Задание типа расчета лота позиций: или в ручном режиме (параметр lots больше нуля) или в процентах риска на сделку от свободной маржи (параметр risk больше нуля).
CreateMA
Создание индикатора "Moving Average".
TakeProfit
Задание параметра тейк профит.
Multiplier
Задание параметра увеличения лота.
DistanceMA
Задание отступа от индикатора "Moving Average".
ProfitPlus
Задание добавочного отступа при общей прибыли.
Главная функция
Processing
Главная функция, в которой выполняются все расчеты.
Функции класса со спецификатором доступа protected
RefreshRates
Обновление котировок по символу.
CheckVolumeValue
Проверка корректности введенного объема позиции (проверка используется при ручном задании объема позиции).
IsFillingTypeAllowed
Проверка режима заливки ордеров.
iMAGet
Получение значения индикатора "Moving Average" на баре с индексом index.
CalculateAllPositions

Получение за один вызов информации по позициям:

  • count_buys - количество BUY позиций;
  • price_highest_buy - цена самой высокой BUY позиции;
  • price_lowest_buy - цена самой низкой BUY позиции;
  • lot_highest_buy - объем самой высокой BUY позиции;
  • lot_lowest_buy - объем самой низкой BUY позиции;
  • total_lots_buy - общий объем BUY позиций;
  • count_sells - количество SELL позиций;
  • price_lowest_sell - цена самой низкой SELL позиции;
  • price_highest_sell - цена самой высокой SELL позиции;
  • lot_lowest_sell - объем самой низкой SELL позиции;
  • lot_highest_sell - объем самой низкой SELL позиции;
  • total_lots_sell - общий объем SELL позиций.
Prices
Получение расчетных цен для BUY и SELL позиции с учетом заданной дистанции Distance from Moving Average.
LotCheck
Проверка и нормирование объема позиции (используется при ручном задании размера позиции).
OpenBuy
Открытие BUY позиции.
OpenSell
Открытие SELL позиции.
PrintResult
Распечатка результатов выполнения торговой операции по открытию позиции.
SetTakeProfit
Установка позициям уровня тейк профит или удаление всех уровней тейк профит и стоп лосс (при параметре delete_take_profit равном true).
CompareDoubles
Сравнение на равенство двух вещественных чисел.
AwerageTakeProfit
Расчет и установка единого уровня тейк профит для позиция определенного типа pos_type.

GBPUSD, таймфрейм H1, режим генерации тиков "Каждый тик на основе реальных тиков".

VR---MUVING

T3 Deviation T3 Deviation

В индикаторе T3 Deviation используются промежуточные расчеты T3 для получения отклонения на его основе. Как и ожидалось, отклонение, полученное таким способом, более сглаженное, чем стандартное отклонение, поскольку T3 сам по себе более сглаженный, чем SMA. Индикатор быстрее отвечает на изменения рынка.

EMAVFS_StDev EMAVFS_StDev

Индикатор EMAVFS с дополнительной индикацией силы тренда цветными точками на основе алгоритма стандартного отклонения.

T3 bands T3 bands

Вариация на тему полос Боллинджера.

TST TST

Безиндикаторный советник. Оперирует только текущей ценой и OHLC нулевого бара.