Переделка индикаторов для MT5

  • Автор темы Автор темы RegXRay
  • Дата начала Дата начала

RegXRay

Участник
11 Июл 2018
480
2
18
42
Поинты
0.00
Пол
Муж.
Столкнулся с ситуацией, что есть индикатор для MT4. Хотелось бы переделать его для MT5. Сам индикатор простенький судя по коду.
 

Вложения

Было б хорошо если б нашелся программист который бы смог переделывать такие вещи. Например его можна как- то стимулировать на форуме а более сложные задачи может и с оплатой.
 
Было б хорошо если б нашелся программист ...
На форумах обычно есть умельцы. Работают бесплатно, по доброте душевной, работают и за деньги, всякий труд должен быть оплачен.

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

Некоторые стесняются предложить свои услуги. Может быть, администрация откроет такие ветки и оговорит при этом условия работы в них.

Приветствую, да было-бы не плохо если-бы кто-то нашелся стобы немного пояснил как переделывать программы из языка MQL4 на новый MQL5 как-то мне говорили что это не очень трудно тем кто знает MQL4 но все равно нужен некий толчок.
 
Привыкли все наверное работать или в большинстве с метатрейдером четвертой версии, но время не стоит на месте и с каждым годом мт5 стала улучшаться платформа, чтобы трейдерам было более комфортно на ней работать, вот уже и появилась возможность осуществлять разнонаправленные сделки. Но суть дела обстоит в самих индикаторах, которые как раз в разных версиях не подходят к друг другу. Вот есть к примеру на мт4 определитель максимального лота, а на мт5 сколько не искал такого нет, поэтому если есть возможность переписать этот код на пятую версию, то помогите кто-нибудь.

#property indicator_chart_window
extern color Color = Red;
extern int Size = 14;
extern string Font = "Verdana";
int init() {
return (0);
}

int deinit() {
ObjectDelete("lab");
return (0);
}

int start() {
int l_ind_counted_0 = IndicatorCounted();
double l_free_magrin_4 = 0;
double l_marginrequired_12 = 0;
double ld_20 = 0;
l_free_magrin_4 = AccountFreeMargin();
l_marginrequired_12 = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
ld_20 = l_free_magrin_4 / l_marginrequired_12;
ObjectCreate("lab", OBJ_LABEL, 0, 0, 0);
ObjectSet("lab", OBJPROP_XDISTANCE, 3);
ObjectSet("lab", OBJPROP_YDISTANCE, 27);
ObjectSetText("lab", DoubleToStr(ld_20, 2), Size, Font, Color);
return (0);
}
 
Есть такой индикатор на базе казахского удава,но на М1 тормозит график..как бы подкорректить,что бы не затормаживал...графики..

имха :)
 

Вложения

Есть такой хороший индикатор..он формирует коробку из свечек отслеживая предыдущие 20 свечей..удобен и при по тренду и при ожидании разварота...
Можно его для мт5 переделать?
Amega MetaTrader 4.png
имха :)
 

Вложения

Есть такой хороший индикатор..он формирует коробку из свечек отслеживая предыдущие 20 свечей..удобен и при по тренду и при ожидании разварота...
Можно его для мт5 переделать?
Посмотреть вложение 38593
имха :)


Как правило всё украдено давно и до нас. И большинство инструментов из терминала мт4 уже переделаны под мт5 или существуют подобные по своему функционалу аналоги. Зашёл сейчас на сайт метаквотов ради интереса вбил в поисковик "коробка" и сразу нашёл - по-моему то, что требовалось под твои(?на ты проще) задачи. Вот аналогичный по принципу индюк

PS всегда так делаю, когда что-нибудь нужно найти
 
Последнее редактирование:
К сожелению этот
индикатор хорош по другой тактике.
А вот выложенный мной индикатор..работает немного друго принципа.
Он по последним 20 свечкам ищит патерн ми/мах и примерно ставит уровень профита...но он динамичен,так что надо его постоянно смотреть...лучше всего смотреть (для нас с Наивным) на м5..больше и чаще по тренду сигналов.
А если разворот,то лишне подтверждение дивера...

имха :)
 
IMG_0357.webp



Переделка индикаторов для MT5

Что такое переделка индикаторов и зачем это нужно?


MetaTrader 5 (MT5) предлагает трейдерам и разработчикам мощные инструменты для анализа рынка с помощью индикаторов. Однако многие популярные индикаторы были изначально разработаны для MetaTrader 4 (MT4). Для тех, кто перешел на MT5, может возникнуть необходимость адаптировать эти индикаторы под новую платформу. Процесс переделки индикаторов может включать как простое изменение синтаксиса, так и полную переработку логики для совместимости с новыми функциями MT5.

Основные отличия в MQL4 и MQL5

MQL4 и MQL5 — это схожие, но всё же разные языки программирования. Основные различия заключаются в:


1. Архитектуре: В MQL5 используется объектно-ориентированный подход, который более гибкий и мощный, чем в MQL4. Это позволяет создавать более сложные индикаторы и эксперты, но требует иной структуры кода.
2. Функции и переменные: В MQL5 изменилось множество функций и переменных. Например, работа с тикетами ордеров и позиций, получение цен и объемов может отличаться в зависимости от используемой версии платформы.
3. Обработка событий: В MQL5 появились новые события, такие как OnCalculate() для индикаторов, что делает логику расчета более гибкой и позволяет обрабатывать нестандартные данные.

Шаги по переделке индикаторов с MT4 на MT5

1. Анализ существующего кода: Прежде чем приступать к адаптации индикатора, важно полностью понять, как работает исходный код на MQL4. Это поможет определить, какие именно функции и переменные требуют изменения для работы в MQL5.
2. Замена устаревших функций: В MT5 многие функции изменили свои имена или принцип работы. Например, функции для получения данных о барах и ценах могут выглядеть иначе:
• В MQL4 использовалась функция iClose(), а в MQL5 — CopyClose().
Пример переделки:
MQL4:

double price = iClose(NULL, 0, 0);

MQL5:

double price[];
CopyClose(_Symbol, _Period, 0, 1, price);


3. Использование событий: В MQL5 индикаторы работают на базе событийной модели, и основное событие для расчета индикатора — это OnCalculate(). Поэтому, нужно убедиться, что логика расчета индикатора перенесена в эту функцию:

int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// Ваш код расчета индикатора
return rates_total;
}


4. Тестирование и оптимизация: После того как код был адаптирован, важно тщательно протестировать индикатор на MT5, чтобы убедиться, что он работает так же эффективно, как и на MT4. Возможно, придется внести коррективы в логические или математические расчеты, чтобы адаптировать их под новые условия рынка и платформы.

Рекомендации для успешной переделки индикаторов

• Следите за совместимостью: Не все функции из MT4 могут работать в MT5 в том же виде. Используйте официальную документацию MQL5 для поиска подходящих аналогов.
• Обращайте внимание на производительность: MT5 позволяет более точно управлять ресурсами, такими как память и процессорное время. Оптимизация кода может повысить скорость расчета индикаторов.
• Используйте новые возможности: Переход на MT5 — это возможность не только сохранить функционал индикаторов, но и расширить его за счет новых функций, доступных в MQL5. Например, можно добавить поддержку мультивалютных расчетов или сложные математические модели.

Заключение

Переделка индикаторов с MT4 на MT5 — это необходимый шаг для тех трейдеров, которые хотят использовать свои проверенные временем инструменты на новой платформе. Этот процесс требует знания как MQL4, так и MQL5, а также внимательного тестирования и оптимизации. В результате вы получите индикатор, который будет надежно работать на MT5 и использовать все возможности этой продвинутой платформы.
 

Новые темы