Работа завершена
Время выполнения 16 дней
Техническое задание
У меня есть простая стратегия, я хочу получать алерты о смене цвета индикаторов, и нужен простой торговый робот. У меня есть два доработанных индикатора 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.
Индикатор будет усложняться и дописываться в дальнейшем, поэтому развивать его с вами дальше, начинаем с простого функционала.
Могу записать видео, где подробно расскажу.
Откликнулись
1
Оценка
Проекты
225
20%
Арбитраж
19
42%
/
16%
Просрочено
0
Загружен
2
Оценка
Проекты
7
0%
Арбитраж
8
13%
/
75%
Просрочено
3
43%
Свободен
Похожие заказы
Нужен торговый робот для работы на форексе (MT4).
300 - 500 USD
Торговый робот для Форекс сцепка трейдинг вью и мт4. Алгоритм работы робота на основе отскока ценовых уровней коррекции Фибоначчи и временных периодов Фибоначчи а так же на основе коррекции Фибоначчи выставление тейк профита и стоп лоса Исполнитель должен быть с города Ижевск
Нужен Expert Advisor, который позволяет входить в рынок и закрывать позицию по нажатию определённых клавиш, с автоматической установкой SL/TP и отображением уровней на графике. Также EA должен позволять вручную двигать SL и TP по определённым клавишам. В техническом задании отображена клавиатура как основной источник ввода команд, но на данный будет использоваться Haute42 R16, который эмулирует нажатие кнопок
Нужно доработать перспективного советника
30 - 80 USD
Нужно прописать проскальзывание, отладить трейлинг стоп, так же проработать пинг через дата-центр на определённом сете, советник торгует, но на разных счетах по разному, есть логи и история счёта, проверял на 8 счетах в течении месяц, буду благодарен если поможете
Добрый день! Требуется индикатор по паттернам волн Эллиотта "треугольник" и "диагональ". На первый взгляд, может показаться запутанно, но я могу в течении короткого созвона показать логику работы индикатора на графике. Волны строятся по локальным минимумам и максимумам цены на графике в соответствии с условиями волнового анализа. Сигнал о появлении паттерна выводится на экран на этапе формирования волны D (в
Принять сигналы через webhook
70 - 150 USD
Здравствуйте! Мне необходимо написать торгового советника (Expert Advisor) для MetaTrader 5, который будет работать по сигналам из TradingView через Webhook. Ключевая особенность: Робот должен иметь систему подтверждения сигнала перед входом и систему экстренного закрытия при исчезновении сигнала. Технические требования: 1. Связь: Прием сигналов в формате JSON через Webhook. 2. Риск-менеджмент: * Лот: Автоматический
Ищу опытного разработчика для работы с торговыми роботами в MetaTrader 5 и сопутствующими инструментами на Python. Основные задачи: Реализация/модификация советника MT5 на MQL5 по стратегиям (с сеткой, динамическим лотом, TP/SL, частичной фиксацией прибыли); Внедрение или адаптация готового MQL5-модуля в существующий советник без нарушения логики; Написание вспомогательных скриптов на Python для: • сбора и анализа
Доброго дня. Нужен советник на основе индикатора, либо скрипт Trading View. Лучше это оформит в качестве программы на Python. Но если код легче будет через PineScript, то можно и скриптом. Главное чтобы последовательность соблюдалась с первого по четвертый пункты из ТЗ (во вложении). Индикатор есть, предоставлю, хотелось бы понять примерную стоимость, создания советника. Спасибо. В индикаторе много параметров, но
Провести полную мульти-брокерную WFA оптимизацию
30 - 100 USD
Нужен специалист с большим практическим опытом в работе с WFA оптимизацией советников. Вы должны понимать все базовые ошибки которые можно допустить и их не допустить. Важна поочередность действий, выделение "плато", валидация и так далее. Задача: WFA оптимизация советника на двух брокерах , третий брокер будет этапом двойной валидации. При правильном подходе мы должны получить устойчивые +- одинаковые результаты на
Информация о проекте
Бюджет
50 - 150 USD