Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Опубликовал:
-
Vladimir Karputov
Create a personal work for me: https://www.mql5.com/en/job/new?prefered=barabashkakvn - Просмотров:
- 2185
- Рейтинг:
- Опубликован:
- Обновлен:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Автор идеи: 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 Deviation используются промежуточные расчеты T3 для получения отклонения на его основе. Как и ожидалось, отклонение, полученное таким способом, более сглаженное, чем стандартное отклонение, поскольку T3 сам по себе более сглаженный, чем SMA. Индикатор быстрее отвечает на изменения рынка.
EMAVFS_StDev
Индикатор EMAVFS с дополнительной индикацией силы тренда цветными точками на основе алгоритма стандартного отклонения.