radioman Опубликовано 4 августа, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 4 августа, 2021 Здравствуйте! Прошу помощи. Есть функция, аналог iRSIOnArray(); с одинаковым успехом работает и в МТ4, и в МТ5: //+------------------------------------------------------------------+ //| Relative Strength Index on array | //+------------------------------------------------------------------+ template<typename T> int RSIOnArray(const int rates_total, const int prev_calculated, const int begin, const int period, const T &price[], double &buffer_pos[], double &buffer_neg[], double &buffer_rsi[]) { int i; T diff; //--- check for rates count if(period<1 || rates_total-begin<period) return(0); //--- save as_series flags bool as_series_price=ArrayGetAsSeries(price); bool as_series_rsi =ArrayGetAsSeries(buffer_rsi); if(as_series_price) ArraySetAsSeries(price,false); if(as_series_rsi) { ArraySetAsSeries(buffer_rsi,false); ArraySetAsSeries(buffer_pos,false); ArraySetAsSeries(buffer_neg,false); } //--- preliminary calculations int pos=prev_calculated-1; if(pos<=period) { //--- first RSIPeriod values of the indicator are not calculated buffer_rsi[0]=0.0; buffer_pos[0]=0.0; buffer_neg[0]=0.0; T SumP=0.0; T SumN=0.0; //--- for(i=1; i<=period; i++) { buffer_rsi[i]=0.0; buffer_pos[i]=0.0; buffer_neg[i]=0.0; diff=price[i]-price[i-1]; SumP+=(diff>0 ? diff : 0); SumN+=(diff<0 ?-diff : 0); } //--- calculate first visible value buffer_pos[period]=double(SumP/period); buffer_neg[period]=double(SumN/period); buffer_rsi[period]=100.0-(100.0/(1.0+buffer_pos[period]/(buffer_neg[period]>0 ? buffer_neg[period] : DBL_MIN))); //--- prepare the position value for main calculation pos=period+1; } //--- the main loop of calculations for(i=pos;i<rates_total && !IsStopped();i++) { diff=price[i]-price[i-1]; buffer_pos[i]=(buffer_pos[i-1]*(period-1)+(diff>0.0 ? diff : 0.0))/period; buffer_neg[i]=(buffer_neg[i-1]*(period-1)+(diff<0.0 ?-diff : 0.0))/period; buffer_rsi[i]=100.0-100.0/(1+buffer_pos[i]/(buffer_neg[i]>0 ? buffer_neg[i] : DBL_MIN)); } //--- restore as_series flags if(as_series_price) ArraySetAsSeries(price,true); if(as_series_rsi) { ArraySetAsSeries(buffer_rsi,true); ArraySetAsSeries(buffer_pos,true); ArraySetAsSeries(buffer_neg,true); } //--- return(rates_total); } //+------------------------------------------------------------------+ Просьба написать функцию аналог iCCIOnArray(); в плане шефской помощи. Ну и как гимнастика для ума. Заранее благодарен- Ссылка на сообщение Поделиться на другие сайты More sharing options...
Umen Опубликовано 24 августа, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 24 августа, 2021 Добрый день. Помогите по возможности изменить построение зон индикатора по следующим правилам: 1) Зоны строятся от экстремумов нажатием кнопок 2 (1/2 и 1/4 зоны) и 3 (целая зона NKZ). 2) Когда цена проходит целую зону NKZ требуется дальнейшее построение от данной зоны. Зона имеет формат: "кол-во пунктов + 10% (наружу). 3) Построение следующих зон происходит так же нажатием клавиш 2 и 3 при наведенном курсоре на зону. Но строятся они от внешней границы. А требуется построение от внутренней границы целой зоны NKZ. Спойлер DkzNkzMaker.mq4 Изменено 24 августа, 2021 пользователем Umen Ссылка на сообщение Поделиться на другие сайты More sharing options...
Azovin Опубликовано 12 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 12 сентября, 2021 Здравствуйте. Уважаемые программисты пожалуйста добавьте функцию Multi time frame (MTF) к индикатору HaosVisual_mod. HaosVisual_mod.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 17 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 17 сентября, 2021 Здраствуйте, ищу оригинальный код Moving_Average. То есть не тот который идет в мт. Или другие пользовательские использующие в расчете iMA() или iMAOnArray(), а в чисто девственном виде так сказать. Оказалось не так просто его найти, хотя казалось бы) Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 17 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 17 сентября, 2021 1 час назад, Ar4i сказал: Здраствуйте, ищу оригинальный код Moving_Average. Интересно, какие есть"оригинальные" алгоритмы расчета? Среднее, оно и в Африке среднее... Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 17 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 17 сентября, 2021 3 часа назад, usver73 сказал: Среднее, оно и в Африке среднее Вот я и хочу увидеть средние с формулой в виде расчетов iCustom() а не с использованием iMA(). iMA() -оригинал с закрытым кодом. Не поняли -не мешайте Изменено 17 сентября, 2021 пользователем Ar4i Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 18 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 18 сентября, 2021 18 часов назад, Ar4i сказал: Не поняли -не мешайте Зачем хамишь? В стандартной библиотеке есть код.. И, да, среднее значение считается ровно так, как учили в школе 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 19 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 19 сентября, 2021 Извини, не хамлю просто не хочу отходить от темы в никуда. Ну в школе не было метода усреднения(ma_method) с типом цены(applied_price) которые надо было записывать в mql4. Если имеешь в виду библиотеку мт4, то да там есть Custom Moving Averages. Но он там без параметра: "типа цены(applied_price)"... Изменено 19 сентября, 2021 пользователем Ar4i Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 19 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 19 сентября, 2021 2 часа назад, Ar4i сказал: Ну в школе не было метода усреднения(ma_method) с типом цены(applied_price) которые надо было записывать в mql4 Вопрос был про ФОРМУЛУ расчета. Что касается- какую цену подавать для расчета на вход, то от этого сам способ расчета не меняется. Что касается библиотеки, то там же есть функция расчета экспоненциальным методом. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 19 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 19 сентября, 2021 Методы есть: MODE_SMA 0 Простое усреднение MODE_EMA 1 Экспоненциальное усреднение MODE_SMMA 2 Сглаженное усреднение MODE_LWMA 3 Линейно-взвешенное усреднение Формулы выбора цены нет Константа Значение Описание PRICE_CLOSE 0 Цена закрытия PRICE_OPEN 1 Цена открытия PRICE_HIGH 2 Максимальная за период цена PRICE_LOW 3 Минимальная за период цена PRICE_MEDIAN 4 Медианная цена, (high+low)/2 PRICE_TYPICAL 5 Типичная цена, (high+low+close)/3 PRICE_WEIGHTED 6 Взвешенная цена закрытия, (high+low+close+close)/4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 20 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 20 сентября, 2021 7 часов назад, Ar4i сказал: Формулы выбора цены нет Если не нужно чего-то экзотического, то формулы не нужны. Просто воспользуйся любым массивом, поступающим на вход OnCalculate() Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 20 сентября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 20 сентября, 2021 С использованием этого массива так понял. Спасибо. Если нет чего за пример взять пойду на другую ветку форума) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Evgen 784 Опубликовано 21 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 21 октября, 2021 Добрый день, уважаемые программисты! Просьба, помочь и добавить в индикатор Push Aler и отправку Alerта на почту Заранее спасибо МА & RSI channel.ex4 МА & RSI channel.mq4 Изменено 21 октября, 2021 пользователем Evgen 784 Ошибка Ссылка на сообщение Поделиться на другие сайты More sharing options...
serega08 Опубликовано 22 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 22 октября, 2021 Всем привет! Может кто сможет сделать при открытие нового дня, что бы индикатор показывал сколько пунктов до точки пивот ipivot.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
ph2017 Опубликовано 22 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 22 октября, 2021 Доброго времени суток, уважаемые программисты! Может кто прикрутить Alert к индикатору Bull and Bear Balance при смене баланса? Спасибо!!! Bull and Bear Balance.ex4 Bull and Bear Balance.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
utes56 Опубликовано 23 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 23 октября, 2021 Доброго времени суток уважаемые знатоки mql4, подскажите сложно объединить линейный параболик(Parabolic_r2) и канал линейной регрессии в одном индикаторе(советнике) или если есть возможность помогите с индикатором(советником), не знаю как правильно. Индикатор(советник) показывает искомые формации за последние 100 баров(изменяемый параметр). При совпадении условий включается АЛЕРТ. Б ниже А. Индикатор высчитывает параметры после смены параболика. Берутся две волны параболика следующие одна за другой. Высшая точка волны Б ниже высшей точки волны А. Через эти высшие точки проводится канал линейной регрессии. Ключевой момент канал должен быть направлен вверх. Б выше А Индикатор высчитывает параметры после смены параболика. Берутся две волны параболика следующие одна за другой. Низшая точка волны Б выше низшей точки волны А. Через эти низшие точки проводится канал линейной регрессии. Ключевой момент канал должен быть направлен вниз. Ссылка на сообщение Поделиться на другие сайты More sharing options...
VIK78 Опубликовано 26 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 26 октября, 2021 В отличие от мт4 в мт5 не корректно работает Scale Fix - по идее этот режим должен давать фиксированный масштаб С ВОЗМОЖНОСТЬЮ перемещения графика по всем направлениям - но тут идет жесткая фиксация по min и max графика (решение двойной клик по ценовой шкале) Ссылка на сообщение Поделиться на другие сайты More sharing options...
VIK78 Опубликовано 26 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 26 октября, 2021 47 минут назад, VIK78 сказал: В отличие от мт4 в мт5 не корректно работает Scale Fix - по идее этот режим должен давать фиксированный масштаб С ВОЗМОЖНОСТЬЮ перемещения графика по всем направлениям - но тут идет жесткая фиксация по min и max графика (решение двойной клик по ценовой шкале) ChartAutoScale.ex4 создавался из двух 1)Scale Toggle.mg4 и 2)scale.mg4 - вопрос можно как то переделать ChartAutoScale.ex4 для МТ5? ChartAutoScale.ex4 PeterE.mq4 Scale Toggle.mq4 scale.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
VIK78 Опубликовано 26 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 26 октября, 2021 1 час назад, VIK78 сказал: ChartAutoScale.ex4 создавался из двух 1)Scale Toggle.mg4 и 2)scale.mg4 - вопрос можно как то переделать ChartAutoScale.ex4 для МТ5? ChartAutoScale.ex4 18 \u043a\u0411 · 0 загрузок PeterE.mq4 5 \u043a\u0411 · 0 загрузок Scale Toggle.mq4 2 \u043a\u0411 · 0 загрузок scale.mq4 2 \u043a\u0411 · 0 загрузок вот ссылка на источник https://www.forexfactory.com/thread/890930-automatically-scale-charts-using-button есть еще решение это установка разового скрипта - но он работает один раз и масштабирование как раз работает нормально - вопрос как его сделать индикатором поскольку в мт5 нет возможности работы двух и более скриптов на графике? а это ссылка на источник https://www.mql5.com/en/forum/72215 - MY SCRIPT.mq5 MY SCRIPT.mq5 scalefix.mq4 scalefix.mq5 MY SCRIPT.mq5 MY SCRIPT.mq5 Изменено 26 октября, 2021 пользователем VIK78 Ссылка на сообщение Поделиться на другие сайты More sharing options...
VIK78 Опубликовано 26 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 26 октября, 2021 scalefix.mq4 scalefix.mq5 Ссылка на сообщение Поделиться на другие сайты More sharing options...
VIK78 Опубликовано 27 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 27 октября, 2021 Я тут попытался переделать индикатор PeterE.mq4 в mq5 - может кто посмотреть все ли правильно? PETER E.mq5 Ссылка на сообщение Поделиться на другие сайты More sharing options...
VIK78 Опубликовано 27 октября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 27 октября, 2021 а это оригинал PeterE.mq4 PeterE.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitaliy773 Опубликовано 13 ноября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 13 ноября, 2021 Добрый день, уважаемые программисты! Просьба, помочь в данном индикаторе изменить значение deviations c 0.8 на 0.5 по умолчанию собираю тс через конструктор. очень надо. в параметрах оно меняется но конструктор эти значения не учитывает Yoda Hill 3.ex4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
MakarFX Опубликовано 15 ноября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 15 ноября, 2021 Подскажите, пожалуйста, как правильно сделать for(i=limit;i>=0;i--) { Label1Buffer[i] = MathRand(); Label2Buffer[i] = Label1Buffer[i+1]+Label1Buffer[i+2]+Label1Buffer[i+3]+Label1Buffer[i+4]+Label1Buffer[i+5]; } чтобы не вписывать все элементы которые хочу сложить, а просто указать кол-во элементов Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 15 ноября, 2021 Поделиться Доработка индикаторов: общая тема Опубликовано 15 ноября, 2021 9 минут назад, MakarFX сказал: чтобы не вписывать все элементы которые хочу сложить, а просто указать кол-во элементов пишите вложенный цикл: double tmp = 0.0; for(m=0; m<5; m++) { tmp += Label1Buffer[i+m]; } Label2Buffer[i] = tmp; Изменено 15 ноября, 2021 пользователем usver73 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти