Перейти к содержанию

Доработка индикаторов: общая тема


Рекомендуемые сообщения

Доработка индикаторов: общая тема Опубликовано

Добрый День ! 
Кто может перенести код с treidingview  на mt4 или mt5 ? 
вот сама стратегия. 
https://www.youtube.com/watch?v=qgNWyr6EaT8

https://www.youtube.com/watch?v=u4iw-7klU9g&t=332s

https://vk.com/@crypto.mozart-torgovaya-strategiya-1-indikator-rsi-v-svyazke-s-bollinger-b

код самого индикатора 

https://www.tradingview.com/script/rHIDJgGI-RSI-BB-EMA-Dispersion/

Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 1,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

прикрутилround_LevelsWhite_alert_1.mq4

Перейти

StepMA_Stoch alert.mq4

Перейти

1. Push-уведомления добавлены. Включается/выключаются в настройках NotificationAlerts 2. Текущий TF добавлен как в алерты, так и в PUSH-уведомления. 3. Ошибки исправлены.   Проверя

Перейти
Доработка индикаторов: общая тема Опубликовано
17 часов назад, nds69 сказал:

Добрый День ! 
Кто может перенести код с treidingview  на mt4 или mt5 ? 
вот сама стратегия. 
https://www.youtube.com/watch?v=qgNWyr6EaT8

https://www.youtube.com/watch?v=u4iw-7klU9g&t=332s

https://vk.com/@crypto.mozart-torgovaya-strategiya-1-indikator-rsi-v-svyazke-s-bollinger-b

код самого индикатора 

https://www.tradingview.com/script/rHIDJgGI-RSI-BB-EMA-Dispersion/

Ну вот это точно в другую ветку.

В доработку индикаторов, как один из вариантов.

И начать можно вот с этого индикатора, в нем не хватает только дисперсии

Спойлер

image.thumb.png.ebf1588cdbdec9c11ad24d39c0cd4be7.png

 

BBRSI_v1.mq4

Изменено пользователем Rigal
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Уважаемые знатоки, переделайте пожалуйста индикатор из гисты в канальный для главного окна. Очень нужен для упрощения визуализации.

 

SnakeForce2.mq4

Изменено пользователем smoked
Ссылка на сообщение
Поделиться на другие сайты

  • 3 weeks later...
Доработка индикаторов: общая тема Опубликовано

Приветствую уважаемые программисты. Прикрутите пож-ста алерт на мобильный терминал, при изменении цвета индикатора. За ранее благодарю.

Inked2020-10-27_15-11-02_LI.jpg

SSL_sBar_240.mq4

Изменено пользователем 36R
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
1 час назад, 36R сказал:

Приветствую уважаемые программисты. Прикрутите пож-ста алерт на мобильный терминал, при изменении цвета индикатора. За ранее благодарю.

 

Спойлер

Inked2020-10-27_15-11-02_LI.jpg

 

SSL_sBar_240.mq4 10 \u043a\u0411 · 2 загрузки

Добавил.

Push сообщение включается настройкой alertsPUSH.

 

SSL_sBar_240.mq4

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Кто умеет пожалуйста модернизируйте индикатор Stochastic Bar chart под новую билду MT4. Индикатор хороший но под новую билду не работает.

Заранее благодарен!

 

stochastic_bar_chart.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Ув. Программисты mql5, сделайте, пожалуйста, чтобы индикатор не рисовал цену открытия бара, а только цену закрытия.  Или можно установить в настраиваемых параметрах возможность выбора цвета для цен открытия и закрытия. Заранее благодарна за помощь.:-*

ColorBars.mq5

Изменено пользователем iloirin
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
В 27.10.2020 в 23:41, Folen сказал:

Кто умеет пожалуйста модернизируйте индикатор Stochastic Bar chart под новую билду MT4. Индикатор хороший но под новую билду не работает.

Заранее благодарен!

stochastic_bar_chart.mq4 4 \u043a\u0411 · 2 загрузки

Пожалуйста.

stochastic bar chart mtf.mq4

  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
17 часов назад, iloirin сказал:

Ув. Программисты mql5, сделайте, пожалуйста, чтобы индикатор не рисовал цену открытия бара, а только цену закрытия.  Или можно установить в настраиваемых параметрах возможность выбора цвета для цен открытия и закрытия. Заранее благодарна за помощь.:-*

ColorBars.mq5 2 \u043a\u0411 · 1 загрузка

Пожалуйста. Цена открытия у бара больше не отображается, только закрытия.

ColorBars.mq5

  • Лайк 1
  • Спасибо 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Всем привет! Помогите встроить плагин расчёт лота AgroLotCalculator мт4 в мт5, сам плагин для версии мт5 не нашёл, заранее спасибо!!!

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Здравствуйте. Подскажите пожалуйста из Pine Script кто то может помочь переписать индикатор в МТ4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
В 05.11.2020 в 16:24, Мишок сказал:

Всем привет! Помогите встроить плагин расчёт лота AgroLotCalculator мт4 в мт5, сам плагин для версии мт5 не нашёл, заранее спасибо!!!

Вы хотя бы исходники приложили.
Уважте тех, к кому обращаетесь

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
В 07.11.2020 в 19:06, Мишок сказал:

Это не исходники. Это бинарник.

Исходники - это файлы с расширением .mq4/.mq5

А с бинарником ничего сделать нельзя

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Всем добрый день. Подправьте пож-ста индикатор, он сигналит на каждой свече при продаже покупка, при покупке продажу сигналит , нужно только при изменении цвета гистограммы и закрытии сигнальной свечи, и добавьте пож-ста алерт на моб терминал. За ранее благодарю!

2020-11-16_15-48-33.png

ultra_filter_2_0_alert_arrows.ex4 ultra_filter_2_0_alert_arrows.mq4

Изменено пользователем 36R
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Help (помогите исправить ошибку в зигзаге под mql5)

Вот решил добавить 2й зигзаг к стандартному зигзагу. При компиляции ошибок и предупреждений нет. На графике отображает 1 зигзаг вместо 2 зигзагов, в чём проблема ни пойму (плохо знаю mql). Помогите разобраться. Вот сам код.

 

Спойлер

 

 

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Уважаемые знатоки, сделайте пожалуйста среднюю линию индикатора двухцветной, чтобы цвет изменялся при изменении направления движения.

 

CHART-2.mq4

Изменено пользователем smoked
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
10 часов назад, smoked сказал:

Уважаемые знатоки, сделайте пожалуйста среднюю линию индикатора двухцветной

Думал напишу за 5 минуты и пойду сериал смотреть. В итоге весь вечер над этой, вроде бы не сложной работой сидел. С тебя пиво.

image.png.ccd11273a4d4d821618a9775462b1f01.png

 

Если не нравится толщина линии, измени 2 строчки

#property indicator_width3 3
#property indicator_width4 3

на эти

#property indicator_width3 1
#property indicator_width4 1

 

CHART-2.1.mq4

  • Лайк 1
  • Спасибо 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Rever27, огромное тебе спасибо. Индюк очень сильно "рисует" и для меня была пытка визуально за ним наблюдать. Посему удваиваю пиво (за  каждый глаз :-b). Куда организовать доставку?

Один вопрос: запаздывание изменения цвета на одну свечу, при переходе от медведей к быкам это особенность индюка или поправимо? Смена цвета от быков к медведям вроде всё чётче отрабатывает.

изображение.png

Изменено пользователем smoked
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
21 час назад, smoked сказал:

это особенность индюка или поправимо?

Я не знаю как это поправить. Индикатору пришлось дописать отдельный буфер для отрисовки зеленой линии поверх оранжевой. Вообще код старый и трогать его страшно. Не так эта отрисовка критична.

Ссылка на сообщение
Поделиться на другие сайты

  • 3 weeks later...
Доработка индикаторов: общая тема Опубликовано

Здравствуйте, уважаемые программисты!

Помогите. Нужно поправить алерт в индикаторе. Пиликает на каждой свечке при касании гориз. уровня, а хотелось бы чтобы сигналил только при первом касании.

Либо сделать так, что после первого касания он уровень не замечает. Либо (что предпочтительнее) чтобы уровень после первого касания дальше не отрисовывался.

07.12.20 USDCADM5.png

Support and Resistance Alert Revision 2.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Никто не отзывается, все заняты. Жаль! Полезный индикатор, в любой стратегии будет полезен. Но вот алерт у него реализован не самым удачным образом. Сам я не программист, поправить не смогу.
Видимо у всех дела в преддверие праздников. Ладно, всех с наступающим!

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Всем привет!

Нашел на просторах индикатор. Декомпил - не декомпил. Привел в удобочитаемый вид.

Но закавыка с limit.

Обычно, в общем виде, так:

int limit=rates_total-prev_calculated;
   //----
   if(limit>1) // значит первый запуск, или есть изменения в истории - полный перерасчёт всех данных
     {
      limit=rates_total-nPeriod-1;
      //----
      ArrayInitialize(ExtBuffer, 0.);
      ArrayInitialize(IntBuffer, 0.);
     }
   //---- и далее
   for(int i=limit; i>=0; i--)
     {
      //----
     }

Но тут этот вариант не работает. Наименьшее из зол:

if(limit=1) // значит появился новый бар - рассчитываются первый и текущий бары
     {
      limit=rates_total-nPeriod-1;
      //----
      }

И далее.. 

Хотелось бы использовать первый вариант. Прошу помощи у более опытных в программировании форумчан.

Индикатор:

Спойлер

//+----------------------------------------------+
//|                              K_Indicator.mq4 |
//+----------------------------------------------+
#property strict
//---- indicator settings
#property indicator_separate_window
#property indicator_minimum -1.05
#property indicator_maximum  1.05
#property indicator_buffers  1
#property indicator_color1   clrSandyBrown
//---- input parameters
input uint Inp_K_Period = 3; // K_Indicator Period
//---- buffers
double  Ext_Buffer[];
//----
int     nK_Period;
//----
int     nDraw_begin1=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   string sShort_name;
   //----
   IndicatorDigits(2);
   //----
   nK_Period=int(Inp_K_Period < 3 ? 3 : Inp_K_Period);
   //---- indicator line
   SetIndexBuffer(0, Ext_Buffer);
   SetIndexStyle (0, DRAW_LINE); 
   SetIndexLabel (0, "K ("+(string)nK_Period+")");
   //---- name for indicator
   sShort_name="K_Indicator";
   IndicatorShortName(sShort_name);
   //----
   nDraw_begin1=nK_Period;
   SetIndexDrawBegin(0,nDraw_begin1);
//---- initialization done
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
{
//----
   if(rates_total<=nDraw_begin1) return(0);
   //----
   double dCoefficient=0., dPeriodRatio=0., k,
          dTempValue, dPriceBag, dPriceToAbs, dPreValue, dValue;
   int    nRelayIO, nPeriod=0, A=0, B, C;
   double ArrayP[300]={0}, ArrayX[300]={0}, ArrayY[300]={0}, ArrayZ[300]={0};
   //----
   int limit=rates_total-prev_calculated;
   //----
   //if(limit>1)
   if(limit=1) // need >1
     {
      limit=rates_total-nDraw_begin1-1;
      //----
      ArrayInitialize(Ext_Buffer, 0.);
     }
   //---- K_Indicator
   for(int i=limit; i>=0; i--)
     {
      nRelayIO  = 0;
      dTempValue= 0.;
      //----
      nPeriod=int(nK_Period-1 >= 2 ? nK_Period : 3);
      //----
      k=nPeriod;
      dCoefficient= 12/(k*(k-1)*(k+1));
      dPeriodRatio= (nPeriod+1)*0.5;
      //----
      for(A=2; A<=nPeriod; A++)
      ArrayP[A-1]=ArrayP[A];
      //----
      ArrayP[nPeriod]=close[i];
      //----
         for(B=1; B<=nPeriod; B++)
           {
            ArrayY[B]= B;
            ArrayZ[B]= B;
            ArrayX[B]= ArrayP[B];
           }
         //----  
         for(B=1; B<=(nPeriod-1); B++)
           {
            dPriceBag= ArrayX[B];
            C= B;
            A= B+1;
            //----
            for(A=B+1; A<=nPeriod; A++)
              {
               if (ArrayX[A]<dPriceBag)
                 {
                  dPriceBag= ArrayX[A];
                  C= A;
                 }
              }
            //----  
            dPriceToAbs= ArrayX[B];
            ArrayX[B]  = ArrayX[C];
            ArrayX[C]  = dPriceToAbs;
            dPriceToAbs= ArrayY[B];
            ArrayY[B]  = ArrayY[C];
            ArrayY[C]  = dPriceToAbs;
           }
         //----  
         B=1;
         while(nPeriod>B)
           {
            A= B+1;
            nRelayIO= 1;
            dTempValue=ArrayZ[B];
            //----
            while(nRelayIO!=0)
              {
               if (ArrayX[B]!=A)
                 {
                  if ((A-B)>1)
                    {
                     dTempValue=dTempValue/(A-B);
                     ArrayZ[B]= dTempValue;
                    }
                  nRelayIO=0;
                 }
               else
                 {
                  dTempValue=dTempValue+ArrayZ[A];
                  A=A+1;
                 }
              }
            B=A;
           }
         dTempValue=0.;
         for(B=1; B<=nPeriod; B++) dTempValue=dTempValue+(ArrayZ[B]-dPeriodRatio)*(ArrayY[B]-dPeriodRatio);
         //----
         dPreValue=dCoefficient*dTempValue;
      //----
      dValue=dPreValue;
      if (dValue==0) dValue=0.00001;
      //----
      Ext_Buffer[i]=dValue;
     }
//----
   return(rates_total);
}
//+------------------------------------------------------------------+

 

 

 

Заранее благодарен

 

 

K_Indicator.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
8 часов назад, radioman сказал:

Всем привет!

Нашел на просторах индикатор. Декомпил - не декомпил. Привел в удобочитаемый вид.

Но закавыка с limit.

Обычно, в общем виде, так:



int limit=rates_total-prev_calculated;
   //----
   if(limit>1) // значит первый запуск, или есть изменения в истории - полный перерасчёт всех данных
     {
      limit=rates_total-nPeriod-1;
      //----
      ArrayInitialize(ExtBuffer, 0.);
      ArrayInitialize(IntBuffer, 0.);
     }
   //---- и далее
   for(int i=limit; i>=0; i--)
     {
      //----
     }

Но тут этот вариант не работает. Наименьшее из зол:



if(limit=1) // значит появился новый бар - рассчитываются первый и текущий бары
     {
      limit=rates_total-nPeriod-1;
      //----
      }

И далее.. 

Хотелось бы использовать первый вариант. Прошу помощи у более опытных в программировании форумчан.

Индикатор:

  Скрыть контент




//+----------------------------------------------+
//|                              K_Indicator.mq4 |
//+----------------------------------------------+
#property strict
//---- indicator settings
#property indicator_separate_window
#property indicator_minimum -1.05
#property indicator_maximum  1.05
#property indicator_buffers  1
#property indicator_color1   clrSandyBrown
//---- input parameters
input uint Inp_K_Period = 3; // K_Indicator Period
//---- buffers
double  Ext_Buffer[];
//----
int     nK_Period;
//----
int     nDraw_begin1=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   string sShort_name;
   //----
   IndicatorDigits(2);
   //----
   nK_Period=int(Inp_K_Period < 3 ? 3 : Inp_K_Period);
   //---- indicator line
   SetIndexBuffer(0, Ext_Buffer);
   SetIndexStyle (0, DRAW_LINE); 
   SetIndexLabel (0, "K ("+(string)nK_Period+")");
   //---- name for indicator
   sShort_name="K_Indicator";
   IndicatorShortName(sShort_name);
   //----
   nDraw_begin1=nK_Period;
   SetIndexDrawBegin(0,nDraw_begin1);
//---- initialization done
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
{
//----
   if(rates_total<=nDraw_begin1) return(0);
   //----
   double dCoefficient=0., dPeriodRatio=0., k,
          dTempValue, dPriceBag, dPriceToAbs, dPreValue, dValue;
   int    nRelayIO, nPeriod=0, A=0, B, C;
   double ArrayP[300]={0}, ArrayX[300]={0}, ArrayY[300]={0}, ArrayZ[300]={0};
   //----
   int limit=rates_total-prev_calculated;
   //----
   //if(limit>1)
   if(limit=1) // need >1
     {
      limit=rates_total-nDraw_begin1-1;
      //----
      ArrayInitialize(Ext_Buffer, 0.);
     }
   //---- K_Indicator
   for(int i=limit; i>=0; i--)
     {
      nRelayIO  = 0;
      dTempValue= 0.;
      //----
      nPeriod=int(nK_Period-1 >= 2 ? nK_Period : 3);
      //----
      k=nPeriod;
      dCoefficient= 12/(k*(k-1)*(k+1));
      dPeriodRatio= (nPeriod+1)*0.5;
      //----
      for(A=2; A<=nPeriod; A++)
      ArrayP[A-1]=ArrayP[A];
      //----
      ArrayP[nPeriod]=close[i];
      //----
         for(B=1; B<=nPeriod; B++)
           {
            ArrayY[B]= B;
            ArrayZ[B]= B;
            ArrayX[B]= ArrayP[B];
           }
         //----  
         for(B=1; B<=(nPeriod-1); B++)
           {
            dPriceBag= ArrayX[B];
            C= B;
            A= B+1;
            //----
            for(A=B+1; A<=nPeriod; A++)
              {
               if (ArrayX[A]<dPriceBag)
                 {
                  dPriceBag= ArrayX[A];
                  C= A;
                 }
              }
            //----  
            dPriceToAbs= ArrayX[B];
            ArrayX[B]  = ArrayX[C];
            ArrayX[C]  = dPriceToAbs;
            dPriceToAbs= ArrayY[B];
            ArrayY[B]  = ArrayY[C];
            ArrayY[C]  = dPriceToAbs;
           }
         //----  
         B=1;
         while(nPeriod>B)
           {
            A= B+1;
            nRelayIO= 1;
            dTempValue=ArrayZ[B];
            //----
            while(nRelayIO!=0)
              {
               if (ArrayX[B]!=A)
                 {
                  if ((A-B)>1)
                    {
                     dTempValue=dTempValue/(A-B);
                     ArrayZ[B]= dTempValue;
                    }
                  nRelayIO=0;
                 }
               else
                 {
                  dTempValue=dTempValue+ArrayZ[A];
                  A=A+1;
                 }
              }
            B=A;
           }
         dTempValue=0.;
         for(B=1; B<=nPeriod; B++) dTempValue=dTempValue+(ArrayZ[B]-dPeriodRatio)*(ArrayY[B]-dPeriodRatio);
         //----
         dPreValue=dCoefficient*dTempValue;
      //----
      dValue=dPreValue;
      if (dValue==0) dValue=0.00001;
      //----
      Ext_Buffer[i]=dValue;
     }
//----
   return(rates_total);
}
//+------------------------------------------------------------------+

 

 

 

Заранее благодарен

 

 

K_Indicator.mq4 9 \u043a\u0411 · 1 загрузка

Я, может, не до конца понимаю проблему...

Если хочется знать, первый ли это запуск - проверяем prev_calculated <= 0

Если лимит должен быть больше единицы - ну прибавляем к нему единицу по умолчанию и сравниваем limit > 1 :) 

 

Ну, или поясните, почему хочется сравнивать именно > 1?

Изменено пользователем Rigal
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...