Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
VR---Moving - эксперт для MetaTrader 5
- Опубликовал:
- Vladimir Karputov
- Просмотров:
- 1752
- Рейтинг:
- Опубликован:
- 2018.05.11 12:20
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Автор идеи: 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 |
Начальная инициализация - устанавливаются параметры:
|
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 |
Получение за один вызов информации по позициям:
|
Prices |
Получение расчетных цен для BUY и SELL позиции с учетом заданной дистанции Distance from Moving Average. |
LotCheck |
Проверка и нормирование объема позиции (используется при ручном задании размера позиции). |
OpenBuy |
Открытие BUY позиции. |
OpenSell |
Открытие SELL позиции. |
PrintResult |
Распечатка результатов выполнения торговой операции по открытию позиции. |
SetTakeProfit |
Установка позициям уровня тейк профит или удаление всех уровней тейк профит и стоп лосс (при параметре delete_take_profit равном true). |
CompareDoubles |
Сравнение на равенство двух вещественных чисел. |
AwerageTakeProfit |
Расчет и установка единого уровня тейк профит для позиция определенного типа pos_type. |
GBPUSD, таймфрейм H1, режим генерации тиков "Каждый тик на основе реальных тиков".
В индикаторе T3 Deviation используются промежуточные расчеты T3 для получения отклонения на его основе. Как и ожидалось, отклонение, полученное таким способом, более сглаженное, чем стандартное отклонение, поскольку T3 сам по себе более сглаженный, чем SMA. Индикатор быстрее отвечает на изменения рынка.
EMAVFS_StDevИндикатор EMAVFS с дополнительной индикацией силы тренда цветными точками на основе алгоритма стандартного отклонения.