#1501

Добрый День ! 
Кто может перенести код с 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/

#1502
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.mq420 скач.

Изменено 8 октября, 2020 пользователем Rigal

#1503

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

 

SnakeForce2.mq415 скач.

Изменено 18 октября, 2020 пользователем smoked

#1504

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

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

SSL_sBar_240.mq418 скач.

Изменено 27 октября, 2020 пользователем 36R

#1505
1 час назад, 36R сказал:

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

 

Спойлер

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

 

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

Добавил.

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

 

SSL_sBar_240.mq415 скач.

#1506

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

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

 

stochastic_bar_chart.mq49 скач.

#1507

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

ColorBars.mq510 скач.

Изменено 28 октября, 2020 пользователем iloirin

#1508
В 27.10.2020 в 23:41, Folen сказал:

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

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

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

Пожалуйста.

stochastic bar chart mtf.mq415 скач.

#1509
17 часов назад, iloirin сказал:

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

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

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

ColorBars.mq511 скач.

#1510

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

#1511

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

#1512
В 05.11.2020 в 16:24, Мишок сказал:

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

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

#1513

Извиняюсь

ArgoLotCalculator v2.1.ex414 скач.

Изменено 7 ноября, 2020 пользователем Мишок

#1514
В 07.11.2020 в 19:06, Мишок сказал:

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

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

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

#1515

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

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

ultra_filter_2_0_alert_arrows.ex48 скач. ultra_filter_2_0_alert_arrows.mq419 скач.

Изменено 16 ноября, 2020 пользователем 36R

#1516

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

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

 

Спойлер

 

 

Изменено 17 ноября, 2020 пользователем Pavel888

#1517

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

 

CHART-2.mq414 скач.

Изменено 19 ноября, 2020 пользователем smoked

#1518
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.mq430 скач.

#1519

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

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

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

Изменено 20 ноября, 2020 пользователем smoked

#1520
21 час назад, smoked сказал:

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

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

#1521

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

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

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

07.12.20 USDCADM5.png

Support and Resistance Alert Revision 2.mq412 скач.

#1522

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

#1523

Всем привет!

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

Но закавыка с 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.mq49 скач.

#1524

А вы уверены что в rates_total и prev_calculated есть данные?

#1525
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?

Изменено 16 декабря, 2020 пользователем Rigal

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

Перейти к списку тем
Форум · 2.0.20260627.0025