Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
ТОП СООБЩЕНИЙ
09.01.2015, 13:13
Лучший ответ
Выплачено: 266 RUB
Часть кода советника. название индикатора поменял, а какие цифры еще надо изменить?

MQL код:
//+-------------------------------------------------------------------------------------+
//| Генерация сигналов покупки и продажи по значениям двух стохастиков |
//+-------------------------------------------------------------------------------------+
void GetSignal()
{
Signal = 0;

// - 1 - == Получение показаний индикатора ==============================================
double main1 = iCustom(NULL, 0, "RSI_Int_01", 0, 1);
double main2 = iCustom(NULL, 0, "RSI_Int_01", 0, 2);
double sign1 = iCustom(NULL, 0, "RSI_Int_01", 1, 1);
double sign2 = iCustom(NULL, 0, "RSI_Int_01", 1, 2);
// - 1 - == Окончание блока ================================================== ===========

// - 2 - == Генерация сигнала покупки ================================================== =
if (main1 != EMPTY_VALUE && main2 != EMPTY_VALUE// Линия сменила цвет с красного на..
&& sign1 == EMPTY_VALUE && sign2 != EMPTY_VALUE)// ..голубой
Signal = 1;
// - 2 - == Окончание блока ================================================== ===========

// - 3 - == Генерация сигнала продажи ================================================== =
if (sign1 != EMPTY_VALUE && sign2 != EMPTY_VALUE// Линия сменила цвет с голубого на..
&& main1 == EMPTY_VALUE && main2 != EMPTY_VALUE)// .. красный
Signal = -1;
// - 3 - == Окончание блока ================================================== ===========
}
09.01.2015, 13:17
Лучший ответ
Выплачено: 266 RUB
индикатор который был до этого "Slope2". это его код:

MQL код:
//+------------------------------------------------------------------+ 
//| HMA.mq4
//| Copyright © 2006 WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104
//| [email]wizardserg@mail.ru[/email]
//| Revised by IgorAD,igorad2003@yahoo.co.uk |
//| Personalized by iGoR AKA FXiGoR for the Trend Slope Trading method (T_S_T)
//| Link:
//| contact: [email]thefuturemaster@hotmail.com[/email]
//+------------------------------------------------------------------+
#property copyright "MT4 release WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104"
#property link "wizardserg@mail.ru"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 LightBlue
#property indicator_color2 Tomato
//---- input parameters
extern int period=80;
extern int method=3; // MODE_SMA
extern int price=0; // PRICE_CLOSE
//---- buffers
double Uptrend[];
double Dntrend[];
double ExtMapBuffer[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
SetIndexBuffer(0, Uptrend);
//ArraySetAsSeries(Uptrend, true);
SetIndexBuffer(1, Dntrend);
//ArraySetAsSeries(Dntrend, true);
SetIndexBuffer(2, ExtMapBuffer);
ArraySetAsSeries(ExtMapBuffer, true);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);

IndicatorShortName("Slope Direction Line("+period+")");
return(0);
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
// ???? ????? ?????? ??????
return(0);
}

//+------------------------------------------------------------------+
//| ?????????? ??????? |
//+------------------------------------------------------------------+
double WMA(int x, int p)
{
return(iMA(NULL, 0, p, 0, method, price, x));
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted();

if(counted_bars < 0)
return(-1);

int x = 0;
int p = MathSqrt(period);
int e = Bars - counted_bars + period + 1;

double vect[], trend[];

if(e > Bars)
e = Bars;

ArrayResize(vect, e);
ArraySetAsSeries(vect, true);
ArrayResize(trend, e);
ArraySetAsSeries(trend, true);

for(x = 0; x < e; x++)
{
vect[x] = 2*WMA(x, period/2) - WMA(x, period);
// Print("Bar date/time: ", TimeToStr(Time[x]), " close: ", Close[x], " vect[", x, "] = ", vect[x], " 2*WMA(p/2) = ", 2*WMA(x, period/2), " WMA(p) = ", WMA(x, period));
}

for(x = 0; x < e-period; x++)

ExtMapBuffer[x] = iMAOnArray(vect, 0, p, 0, method, x);

for(x = e-period; x >= 0; x--)
{
trend[x] = trend[x+1];
if (ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
if (ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1;

if (trend[x]>0)
{ Uptrend[x] = ExtMapBuffer[x];
if (trend[x+1]<0) Uptrend[x+1]=ExtMapBuffer[x+1];
Dntrend[x] = EMPTY_VALUE;
}
else
if (trend[x]<0)
{
Dntrend[x] = ExtMapBuffer[x];
if (trend[x+1]>0) Dntrend[x+1]=ExtMapBuffer[x+1];
Uptrend[x] = EMPTY_VALUE;
}

//Print( " trend=",trend[x]);
}

return(0);
}
//+------------------------------------------------------------------+
09.01.2015, 13:21
Лучший ответ
Выплачено: 266 RUB
а это код индикатора, который нужно вставить:

MQL код:
//+------------------------------------------------------------------+
//| RSI Signals.mq4 |
//| Copyright © 2010, Иван Третьяков |
//| [email]tretyak-off@inbox.ru[/email] |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Иван Третьяков"
#property link "tretyak-off@inbox.ru"

#property indicator_chart_window
#property indicator_buffers 4
//---- для RSI
#property indicator_color1 Red
#property indicator_color2 Blue
//---- input parameters
extern int RSIPeriod=14;
extern double _Up=70.0; //OverBoughtLevel - уровень перекупленности
extern double _Mid=50.0;
extern double _Down=30.0;//OverSoldLevel - уровень перепроданности
extern bool ShowMidSignals=false;
extern bool SoundON=true;
//---- значки
extern int DownArrow=234;
extern int UpArrow=233;
//---- buffers
double UpBuffer[];
double DownBuffer[];

//---- переключатели
int flagval1=0;
int flagval2=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators

SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,DownArrow);//Вниз
SetIndexBuffer(0,UpBuffer);
SetIndexEmptyValue(0,0.0);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,UpArrow);//Вверх
SetIndexBuffer(1,DownBuffer);
SetIndexEmptyValue(1,0.0);

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int limit, i, counter;
double Range, AvgRange;
double RSIPrev,RSIAnow;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(i=1; i<=limit; i++)
{counter=i;Range=0;AvgRange=0;
for(counter=i ;counter<=i+9;counter++)
{AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);}
Range=AvgRange/10;
RSIPrev=iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,i+1) ;
RSIAnow=iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,i);
UpBuffer[i]=EMPTY_VALUE;
DownBuffer[i]=EMPTY_VALUE;
if ((RSIPrev<_Down)&&(RSIAnow>_Down))
{
if (i==1 && flagval1==0)
{
flagval1=1;
flagval2=0;
if (SoundON) Alert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\ n Symbol=",Symbol()," Period=",Period());
}
DownBuffer[i]=Low[i] - Range*0.5;
UpBuffer[i]=EMPTY_VALUE;
flagval1=0;
}
if ((ShowMidSignals)&&((RSIPrev<_Mid)&&(RSIAnow>_Mid) ))
{
if (i==1 && flagval1==0)
{
flagval1=1;
flagval2=0;
if (SoundON) Alert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\ n Symbol=",Symbol()," Period=",Period());
}
DownBuffer[i]=Low[i] - Range*0.5;
UpBuffer[i]=EMPTY_VALUE;
flagval1=0;
}
if ((RSIPrev>_Up)&&(RSIAnow<_Up))
{
if (i==1 && flagval2==0)
{
flagval2=1;
flagval1=0;
if (SoundON) Alert("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\ n Symbol=",Symbol()," Period=",Period());
}
UpBuffer[i]=High[i] + Range*0.5;
DownBuffer[i]=EMPTY_VALUE;
flagval2=0;
}
if ((ShowMidSignals)&&((RSIPrev>_Mid)&&(RSIAnow<_Mid) ))
{
if (i==1 && flagval2==0)
{
flagval2=1;
flagval2=0;
if (SoundON) Alert("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\ n Symbol=",Symbol()," Period=",Period());
}
UpBuffer[i]=High[i] + Range*0.5;
DownBuffer[i]=EMPTY_VALUE;
flagval2=0;
} }

return(0);
}
//+------------------------------------------------------------------+
09.01.2015, 14:48
Лучший ответ
Выплачено: 15893 RUB
Сообщение от sdqrsm Посмотреть сообщение
а это код индикатора, который нужно вставить:
Вообще то нужно поменять логику работы советника. Первый индикатор рисует линию, поэтому эта линия сравнивается на двух барах,
что было до и стало с ней после промежутка времени. Второй индикатор рисует стрелку, для неё не нужно сравнения, стрелка или есть, или нет.
09.01.2015, 15:21
Лучший ответ
Выплачено: 266 RUB
да я вот сравниваю код в этом посту : https://forexdengi.com/threads/69704...ert?p=11453643 в котором Вы писали и думаю как бы так и мне увязать все это дело. код похож но пока чего-то не пойму ничего

там советник очень большой. это лишь маленький кусочек его кода. проще наверное поменять значения в индикаторе. а что будет - линия или стрелка, это не имеет значения. главное, чтобы работало. спасибо за ответ.
09.01.2015, 16:57
Лучший ответ
Выплачено: 15893 RUB
Сообщение от sdqrsm Посмотреть сообщение
а что будет - линия или стрелка, это не имеет значения. главное, чтобы работало. спасибо за ответ.
Давайте ещё раз повторю. Стрелка и линия (точка и линия) - это разные вещи. И ловить стрелку, как в приведённом посте, не нужно.
Там стрелка появляется не сразу, потом пропадает, и опять появляется. Что делать с такой стрелкой большой вопрос. Вам нужно
посмотреть на стрелку в процессе работы на графике. Выяснить, нужна вам стрелка пропадающая, или уже зафиксированная намертво.
На каком баре это происходит, и этот бар подставить double main1 = iCustom(NULL, 0, "RSI_Int_01", 0, 1);
А в советнике изменить условие открытия ордеров.
  • #1 Свернуть

    Как заменить в советнике индикатор стрелочник на другой стрелочник?

    Люди добрые! подскажите, пожалуйста, в коде советника какие нули и единицы надо изменить, чтобы заработал другой индикатор?
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Часть кода советника. название индикатора поменял, а какие цифры еще надо изменить?

    MQL код:
    //+-------------------------------------------------------------------------------------+
    //| Генерация сигналов покупки и продажи по значениям двух стохастиков |
    //+-------------------------------------------------------------------------------------+
    void GetSignal()
    {
    Signal = 0;

    // - 1 - == Получение показаний индикатора ==============================================
    double main1 = iCustom(NULL, 0, "RSI_Int_01", 0, 1);
    double main2 = iCustom(NULL, 0, "RSI_Int_01", 0, 2);
    double sign1 = iCustom(NULL, 0, "RSI_Int_01", 1, 1);
    double sign2 = iCustom(NULL, 0, "RSI_Int_01", 1, 2);
    // - 1 - == Окончание блока ================================================== ===========

    // - 2 - == Генерация сигнала покупки ================================================== =
    if (main1 != EMPTY_VALUE && main2 != EMPTY_VALUE// Линия сменила цвет с красного на..
    && sign1 == EMPTY_VALUE && sign2 != EMPTY_VALUE)// ..голубой
    Signal = 1;
    // - 2 - == Окончание блока ================================================== ===========

    // - 3 - == Генерация сигнала продажи ================================================== =
    if (sign1 != EMPTY_VALUE && sign2 != EMPTY_VALUE// Линия сменила цвет с голубого на..
    && main1 == EMPTY_VALUE && main2 != EMPTY_VALUE)// .. красный
    Signal = -1;
    // - 3 - == Окончание блока ================================================== ===========
    }
    Последний раз редактировалось Gold; 10.01.2015, 02:09.

    Комментарий

    • #3 Свернуть

      индикатор который был до этого &quot;Slope2&quot;. это его код:

      MQL код:
      //+------------------------------------------------------------------+ 
      //| HMA.mq4
      //| Copyright © 2006 WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104
      //| [email]wizardserg@mail.ru[/email]
      //| Revised by IgorAD,igorad2003@yahoo.co.uk |
      //| Personalized by iGoR AKA FXiGoR for the Trend Slope Trading method (T_S_T)
      //| Link:
      //| contact: [email]thefuturemaster@hotmail.com[/email]
      //+------------------------------------------------------------------+
      #property copyright "MT4 release WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104"
      #property link "wizardserg@mail.ru"

      #property indicator_chart_window
      #property indicator_buffers 4
      #property indicator_color1 LightBlue
      #property indicator_color2 Tomato
      //---- input parameters
      extern int period=80;
      extern int method=3; // MODE_SMA
      extern int price=0; // PRICE_CLOSE
      //---- buffers
      double Uptrend[];
      double Dntrend[];
      double ExtMapBuffer[];


      //+------------------------------------------------------------------+
      //| Custom indicator initialization function |
      //+------------------------------------------------------------------+
      int init()
      {
      IndicatorBuffers(3);
      SetIndexBuffer(0, Uptrend);
      //ArraySetAsSeries(Uptrend, true);
      SetIndexBuffer(1, Dntrend);
      //ArraySetAsSeries(Dntrend, true);
      SetIndexBuffer(2, ExtMapBuffer);
      ArraySetAsSeries(ExtMapBuffer, true);

      SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
      SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);

      IndicatorShortName("Slope Direction Line("+period+")");
      return(0);
      }

      //+------------------------------------------------------------------+
      //| Custor indicator deinitialization function |
      //+------------------------------------------------------------------+
      int deinit()
      {
      // ???? ????? ?????? ??????
      return(0);
      }

      //+------------------------------------------------------------------+
      //| ?????????? ??????? |
      //+------------------------------------------------------------------+
      double WMA(int x, int p)
      {
      return(iMA(NULL, 0, p, 0, method, price, x));
      }

      //+------------------------------------------------------------------+
      //| Custom indicator iteration function |
      //+------------------------------------------------------------------+
      int start()
      {
      int counted_bars = IndicatorCounted();

      if(counted_bars < 0)
      return(-1);

      int x = 0;
      int p = MathSqrt(period);
      int e = Bars - counted_bars + period + 1;

      double vect[], trend[];

      if(e > Bars)
      e = Bars;

      ArrayResize(vect, e);
      ArraySetAsSeries(vect, true);
      ArrayResize(trend, e);
      ArraySetAsSeries(trend, true);

      for(x = 0; x < e; x++)
      {
      vect[x] = 2*WMA(x, period/2) - WMA(x, period);
      // Print("Bar date/time: ", TimeToStr(Time[x]), " close: ", Close[x], " vect[", x, "] = ", vect[x], " 2*WMA(p/2) = ", 2*WMA(x, period/2), " WMA(p) = ", WMA(x, period));
      }

      for(x = 0; x < e-period; x++)

      ExtMapBuffer[x] = iMAOnArray(vect, 0, p, 0, method, x);

      for(x = e-period; x >= 0; x--)
      {
      trend[x] = trend[x+1];
      if (ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
      if (ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1;

      if (trend[x]>0)
      { Uptrend[x] = ExtMapBuffer[x];
      if (trend[x+1]<0) Uptrend[x+1]=ExtMapBuffer[x+1];
      Dntrend[x] = EMPTY_VALUE;
      }
      else
      if (trend[x]<0)
      {
      Dntrend[x] = ExtMapBuffer[x];
      if (trend[x+1]>0) Dntrend[x+1]=ExtMapBuffer[x+1];
      Uptrend[x] = EMPTY_VALUE;
      }

      //Print( " trend=",trend[x]);
      }

      return(0);
      }
      //+------------------------------------------------------------------+
      Последний раз редактировалось Gold; 10.01.2015, 02:11.

      Комментарий

      • #4 Свернуть

        а это код индикатора, который нужно вставить:

        MQL код:
        //+------------------------------------------------------------------+
        //| RSI Signals.mq4 |
        //| Copyright © 2010, Иван Третьяков |
        //| [email]tretyak-off@inbox.ru[/email] |
        //+------------------------------------------------------------------+
        #property copyright "Copyright © 2010, Иван Третьяков"
        #property link "tretyak-off@inbox.ru"

        #property indicator_chart_window
        #property indicator_buffers 4
        //---- для RSI
        #property indicator_color1 Red
        #property indicator_color2 Blue
        //---- input parameters
        extern int RSIPeriod=14;
        extern double _Up=70.0; //OverBoughtLevel - уровень перекупленности
        extern double _Mid=50.0;
        extern double _Down=30.0;//OverSoldLevel - уровень перепроданности
        extern bool ShowMidSignals=false;
        extern bool SoundON=true;
        //---- значки
        extern int DownArrow=234;
        extern int UpArrow=233;
        //---- buffers
        double UpBuffer[];
        double DownBuffer[];

        //---- переключатели
        int flagval1=0;
        int flagval2=0;
        //+------------------------------------------------------------------+
        //| Custom indicator initialization function |
        //+------------------------------------------------------------------+
        int init()
        {
        //---- indicators

        SetIndexStyle(0,DRAW_ARROW);
        SetIndexArrow(0,DownArrow);//Вниз
        SetIndexBuffer(0,UpBuffer);
        SetIndexEmptyValue(0,0.0);
        SetIndexStyle(1,DRAW_ARROW);
        SetIndexArrow(1,UpArrow);//Вверх
        SetIndexBuffer(1,DownBuffer);
        SetIndexEmptyValue(1,0.0);

        //----
        return(0);
        }
        //+------------------------------------------------------------------+
        //| Custom indicator deinitialization function |
        //+------------------------------------------------------------------+
        int deinit()
        {
        //----

        //----
        return(0);
        }
        //+------------------------------------------------------------------+
        //| Custom indicator iteration function |
        //+------------------------------------------------------------------+
        int start()
        {
        int counted_bars=IndicatorCounted();
        int limit, i, counter;
        double Range, AvgRange;
        double RSIPrev,RSIAnow;
        if(counted_bars<0) return(-1);
        if(counted_bars>0) counted_bars--;
        limit=Bars-counted_bars;
        for(i=1; i<=limit; i++)
        {counter=i;Range=0;AvgRange=0;
        for(counter=i ;counter<=i+9;counter++)
        {AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);}
        Range=AvgRange/10;
        RSIPrev=iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,i+1) ;
        RSIAnow=iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,i);
        UpBuffer[i]=EMPTY_VALUE;
        DownBuffer[i]=EMPTY_VALUE;
        if ((RSIPrev<_Down)&&(RSIAnow>_Down))
        {
        if (i==1 && flagval1==0)
        {
        flagval1=1;
        flagval2=0;
        if (SoundON) Alert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\ n Symbol=",Symbol()," Period=",Period());
        }
        DownBuffer[i]=Low[i] - Range*0.5;
        UpBuffer[i]=EMPTY_VALUE;
        flagval1=0;
        }
        if ((ShowMidSignals)&&((RSIPrev<_Mid)&&(RSIAnow>_Mid) ))
        {
        if (i==1 && flagval1==0)
        {
        flagval1=1;
        flagval2=0;
        if (SoundON) Alert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\ n Symbol=",Symbol()," Period=",Period());
        }
        DownBuffer[i]=Low[i] - Range*0.5;
        UpBuffer[i]=EMPTY_VALUE;
        flagval1=0;
        }
        if ((RSIPrev>_Up)&&(RSIAnow<_Up))
        {
        if (i==1 && flagval2==0)
        {
        flagval2=1;
        flagval1=0;
        if (SoundON) Alert("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\ n Symbol=",Symbol()," Period=",Period());
        }
        UpBuffer[i]=High[i] + Range*0.5;
        DownBuffer[i]=EMPTY_VALUE;
        flagval2=0;
        }
        if ((ShowMidSignals)&&((RSIPrev>_Mid)&&(RSIAnow<_Mid) ))
        {
        if (i==1 && flagval2==0)
        {
        flagval2=1;
        flagval2=0;
        if (SoundON) Alert("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\ n Symbol=",Symbol()," Period=",Period());
        }
        UpBuffer[i]=High[i] + Range*0.5;
        DownBuffer[i]=EMPTY_VALUE;
        flagval2=0;
        } }

        return(0);
        }
        //+------------------------------------------------------------------+
        Последний раз редактировалось Gold; 10.01.2015, 02:12.

        Комментарий

        • #5 Свернуть

          Сообщение от sdqrsm Посмотреть сообщение
          а это код индикатора, который нужно вставить:
          Вообще то нужно поменять логику работы советника. Первый индикатор рисует линию, поэтому эта линия сравнивается на двух барах,
          что было до и стало с ней после промежутка времени. Второй индикатор рисует стрелку, для неё не нужно сравнения, стрелка или есть, или нет.

          Комментарий

          • #6 Свернуть

            да я вот сравниваю код в этом посту : https://forexdengi.com/threads/69704...ert?p=11453643 в котором Вы писали и думаю как бы так и мне увязать все это дело. код похож но пока чего-то не пойму ничего

            там советник очень большой. это лишь маленький кусочек его кода. проще наверное поменять значения в индикаторе. а что будет - линия или стрелка, это не имеет значения. главное, чтобы работало. спасибо за ответ.
            Последний раз редактировалось sdqrsm; 09.01.2015, 15:28.

            Комментарий

            • #7 Свернуть

              Сообщение от sdqrsm Посмотреть сообщение
              а что будет - линия или стрелка, это не имеет значения. главное, чтобы работало. спасибо за ответ.
              Давайте ещё раз повторю. Стрелка и линия (точка и линия) - это разные вещи. И ловить стрелку, как в приведённом посте, не нужно.
              Там стрелка появляется не сразу, потом пропадает, и опять появляется. Что делать с такой стрелкой большой вопрос. Вам нужно
              посмотреть на стрелку в процессе работы на графике. Выяснить, нужна вам стрелка пропадающая, или уже зафиксированная намертво.
              На каком баре это происходит, и этот бар подставить double main1 = iCustom(NULL, 0, "RSI_Int_01", 0, 1);
              А в советнике изменить условие открытия ордеров.

              Комментарий

              • #8 Свернуть

                спасибо, что уделили время.

                в этом индикаторе RSI стрелка не перерисовывается. она появляется один раз и остается навсегда после закрытия свечи. сама стрелка не обязательна. важен сигнал при закрытии свечи, на которой появляется стрелка.
                Последний раз редактировалось sdqrsm; 09.01.2015, 18:15.

                Комментарий

                • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
                • #9 Свернуть

                  cgon, спасибо Вам большое!!!! все заработало, все получилось!

                  MQL код:
                  //+-------------------------------------------------------------------------------------+
                  //| Генерация сигналов покупки и продажи по значениям двух стохастиков |
                  //+-------------------------------------------------------------------------------------+
                  void GetSignal()
                  {
                  Signal = 0;

                  // - 1 - == Получение показаний индикатора ==============================================
                  double buf0 = iCustom(NULL, 0, "RSI_Int_01", 0, 1);
                  double buf1 = iCustom(NULL, 0, "RSI_Int_01", 1, 1);
                  // - 1 - == Окончание блока ================================================== ===========

                  // - 2 - == Генерация сигнала покупки ================================================== =
                  if (buf0 != EMPTY_VALUE)// ..голубой
                  Signal = 1;
                  // - 2 - == Окончание блока ================================================== ===========

                  // - 3 - == Генерация сигнала продажи ================================================== =
                  if (buf1 != EMPTY_VALUE)// .. красный
                  Signal = -1;
                  // - 3 - == Окончание блока ================================================== ===========


                  вот так сделал. только теперь BUY и SELL поменять местами надо, а-то все наоборот показывает
                  Последний раз редактировалось sdqrsm; 09.01.2015, 18:55.

                  Комментарий

                  working...
                  X