Разработать индикатор, который будет агрегировать данные из нескольких других индикаторов (двух или трех экземпляров) (Ozymandias_Extended_HTF и HeikenAshi)

Trabalho concluído

Tempo de execução 16 dias

Termos de Referência


У меня есть простая стратегия, я хочу получать алерты о смене цвета индикаторов, и нужен простой торговый робот. У меня есть два доработанных индикатора Ozymandias и HeikenAshi.  https://www.mql5.com/ru/code/12604  вышлю доработанную версию.   https://www.mql5.com/ru/code/481

Общее описание
Разработать индикатор, который будет агрегировать данные из нескольких других индикаторов (двух или трех экземпляров) (Ozymandias_Extended_HTF и HeikenAshi) и реализовывать простейший торговый алгоритм на основе данных из этих массивов.
Индикатор должен предоставлять возможность настройки параметров для каждого подключаемого индикатора, а также гибкие правила для открытия позиций.
В массивах должны быть только "текущие данные", история баров не нужна. Поэтому можно использовать и структуру, что лично мне более понятно, но можно и классы. 
Цвета индикаторов: синий = лонг, желтый = шорт.

Пример: такое мне привычнее и понятнее, но если будут классы, то наверное это лучше.
struct OziData {
    double upperBoundary;
    double lowerBoundary;
    double median;
    bool isBlue; // Цвет индикатора (синий или нет)
};

struct HeikenAshiData {
    double hiPrev;
    double lowPrev;
    bool isBlue; // Цвет свечи (синий или нет)
};

// Пример использования
ozi_m5.upperBoundary = CalculateUpperBoundary(M5);
ozi_m5.lowerBoundary = CalculateLowerBoundary(M5);
ozi_m5.isBlue = IsColorBlue(M5);

heiken_ashi_m1.hiPrev = GetHiPrev(M1);
heiken_ashi_m1.lowPrev = GetLowPrev(M1);
heiken_ashi_m1.isBlue = IsCandleBlue(M1);



Параметры агрегируемых индикаторов (новых параметров нет, только те, которые присутствуют в самих индикаторах), т.е. нужно получить хэндл и записать данные в массив\структуру. Если таймфрейм задан как 5 минут, то получать данные раз в 5 минут, если 1 час, то раз в час, чтобы не нагружать.
Настройки Ozymandias_Extended_HTF:
TimeFrame: Таймфрейм, на котором работает индикатор.
Length: Период для расчета основной линии индикатора.
MAType: Метод скользящей средней (например, SMMA).
ChannelKoef: Коэффициент для расчета "двойных" границ канала.
Настройки HeikenAshi:
Timeframe: Таймфрейм для анализа свечей Heiken Ashi.

Пример
ozymandias_htf_extended1
    TimeFrame: M30
    Length: 2
    MAType: SMMA
    ChannelKoef: 1.5

ozymandias_htf_extended2
    TimeFrame: H1
    Length: 2
    MAType: SMMA
    ChannelKoef: 1.5

ozymandias_htf_extended3
    TimeFrame: H4
    Length: 2
    MAType: SMMA
    ChannelKoef: 2.0
HeikenAshi_1
    Timeframe: M15
HeikenAshi_2
    Timeframe: M30


Структура данных и массивы
Массивы для хранения данных. Какие данные я хочу видеть в массиве.
Для Ozymandias_Extended_HTF:
ЗначениеВерхнейГраницы: Текущее значение верхней границы канала.
ЗначениеНижнейГраницы: Текущее значение нижней границы канала.
ТекущийЦвет: Цвет индикатора (синий или желтый). Можно через булево реализовывать.

ЗначениеМедианы: Значение центральной линии индикатора.

Некоторые еще производные значения.

Для HeikenAshi:
ЦенаHi_Prev: Максимальная цена предыдущего бара.
ЦенаLow_Prev: Минимальная цена предыдущего бара.
ЦенаHi_Prev_Prev: Максимальная цена предпредыдущего бара.
ЦенаLow_Prev_Prev: Минимальная цена предпредыдущего бара.
color_Prev: Цвет текущей свечи.
color_Prev_Prev: Цвет предыдущей свечи.
color_Prev_Prev_Prev: Цвет предпредыдущей свечи.
СменаЦвета: Булево значение, указывающее, была ли смена цвета между предыдущими свечами. Если color_Prev не равен color_Prev_Prev, то результат является истинным. Проверка выполняется в соответствии с выбранным таймфреймом индикатора, например, если таймфрейм составляет 5 минут, то сравнение происходит раз в 5 минут на новом баре, а не на каждом тике внутри этого периода.
ThreeCandleColorChange: Булево значение, указывающее, является ли текущая комбинация свечей "третий бар от текущего отличается по цвету от двух других". Истина, если выполняется одно из следующих условий:
color_Prev_Prev_Prev синий, а оба color_Prev_Prev и color_Prev красные и ЦенаHi_Prev > ЦенаHi_Prev_Prev;
color_Prev_Prev_Prev красный, а оба color_Prev_Prev и color_Prev синие и ЦенаLow_Prev < ЦенаLow_Prev_Prev

Настройки основного торгового индикатора, который использует данные массивов:
input bool TradeOnColorMatchChannele = true; Открывать позиции в лонг, если цена находится между нижней границей канала и медианой, а цвет индикатора Ozymandias синий. Соответственно, открывать позиции в шорт, если цена расположена между верхней границей канала и медианой, а цвет индикатора Ozymandias желтый.
input double OrderPriceShift = 5; // Размер в пунктах, для расчета цены устанавливаемой заявки. Вычитается из цены Low_Prev если цвет синий, или прибавляется к Hi_Prev если цвет красный. По умолчанию 100.
Stoploss: // Размер в пунктах, для расчета цены Stoploss устанавливаемой заявки. Вычитается из цены Hi_Prev если цвет синий, или прибавляется к Low_Prev если цвет красный. По умолчанию 100. Аналогично OrderPriceShift, только наоборот.
ContractCount: Количество контрактов для входа.
AlertTelegram: Булево значение, указывающее, отправлять ли уведомления в Telegram.
TakeProfit: Перечисление, определяющее способ расчета Take Profit.
enum TakeProfitMethod
{
    RATIO_1_TO_1 = 1,   // Соотношение 1:1 (тейк-профит равен стоп-лоссу)
    RATIO_1_TO_2 = 2,   // Соотношение 1:2 (прибыль в два раза больше риска)
    RATIO_1_TO_3 = 3,   // Соотношение 1:3 (прибыль в три раза больше риска)
    RATIO_1_TO_4 = 4,   // Соотношение 1:4 (прибыль в четыре раза больше риска)
    RATIO_1_TO_5 = 5,   // Соотношение 1:5 (прибыль в пять раз больше риска)
    RATIO_1_TO_6 = 6,   // Соотношение 1:6 (прибыль в шесть раз больше риска)
    RATIO_1_TO_7 = 7,   // Соотношение 1:7 (прибыль в семь раз больше риска)
    RATIO_1_TO_10 = 10, // Соотношение 1:10 (прибыль в десять раз больше риска)
    REVERS_SIGNAL,      // Обратный сигнал (тейк-профит ждет когда появится обратный сигнал. Если была лонговая позиция открыта, то ожидает шортовый сигнал)
    NONE                // Тейк-профит не используется
};

Торговая стратегия:
Если произошла смена цвета индикатора ozymandias_htf_extended1 и цвет ozymandias_htf_extended1 синий, и цвет ozymandias_htf_extended2 синий, и цвет ozymandias_htf_extended3 синий, и HeikenAshi_1 синий, и HeikenAshi_2 синий тогда установить заявку на покупку, рассчитать цену её установки, и размер стоп лосса. И установить её. Выдать алерт в телеграмм.
Если цвет ozymandias_htf_extended1 стал синий,то отправить алерт в телеграм.

Блок-схема алгоритма
Инициализация:
Получить рассчитать параметры индикаторов.
Создать, заполнить массивы данными индикаторов
Расчет данных:
Для каждого Ozymandias_Extended_HTF:
Рассчитать границы, медиану, цвет, первое касание ценой, и другие данные
Для каждого HeikenAshi:
Рассчитать цены и цвета свечей.
Проверить смену цвета и условие "звезды".
По данным массивов  принять решение об открытии сделки:
Проверить условия для открытия позиций.
Рассчитать цену входа, Take Profit и Stop Loss.
Установить заявку на открытие позиции со своим ID
Управление позициями:
Установить заявку тейкпрофита для заданного ID.
Удалить заявку тейкпрофита если позиция исчезал по стоплосс.
Перевести стоп-лосс в безубыток.
Закрыть позиции при смене цвета.
Оповещения:
Отправить уведомления в Telegram.

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

Могу записать видео, где подробно расскажу.

Respondido

1
Desenvolvedor 1
Classificação
(200)
Projetos
256
21%
Arbitragem
23
48% / 17%
Expirado
0
Carregado
2
Desenvolvedor 2
Classificação
(5)
Projetos
7
0%
Arbitragem
8
13% / 75%
Expirado
3
43%
Livre
Pedidos semelhantes
Требуется написать функцию на MQL4, которая проверяет условия на трех таймфреймах (H4, H1, M15) по индикаторам EMA, AO, RSI и возвращает значения "true" или "false". Открытие сделок не требуется. Только расчет сигнала по готовым формулам. Все формулы и точные условия предоставлю в ТЗ
I need a simple semi-auto assistant for XAUUSD on MT5. Main functions: * BOS detection * CHOCH detection * Liquidity sweep detection * Buy/Sell arrows * London & New York session filter * Alert notifications * Simple dashboard No martingale. No grid. I need clean and optimized code with editable settings. Do you have experience with SMC/ICT concepts and XAUUSD? Can you build something like this
Добрый день. Нужно написать советника: - Хеджирование ( открытия двух сделок одновременно buy, sell) - Buy например в плюсе, то СЛ в безубыток с тралом и пирамидингом (набор объема в buy) - Sell в минусе, то двигается стоп в безубыток buy с набором объема в sell -Трал ордера когда их как минимум 4 в одну сторону (Настраиваемое) -П ирамидинг ордеров через каждые 10 п, усреднение на том же уровне где и открытие ордера
Добрый день! 30 - 100 USD
Требуется адаптировать простенький индикатор для МТ5 под новые существующие сейчас билды. Раньше в 2015гг. индикатор работал. как обновились билды на мт5 , индикатор перестал прикрепляться к графику. Мой емейл: Eduardfoer@mail.ru Ребята с адаптацией индикатора ничего не выходит!!! Нет Mq файла. Тогда может кто нибудь сможет не за бесплатно восстановить сам терминал МТ5 под билды.13-13-15 года. Чтобы индикатор встал
The technical task is described in attached documents. The list of attached docs includes: Currency_Strength_Giraia.mq4 (origin) Technical task for Currency Meter (2 pages) Screenshots for visual understanding The example of indicator Chaos which includes the code of screenshot function which suits me

Informações sobre o projeto

Orçamento
50 - 150 USD