-Warme Kuchen, Pfannkuchen, Pfannkuchen! - Natürlich nur im übertragenen Sinne. Diskutieren und kritisieren Sie die neuen Indikatoren. - Seite 5

 

--------------------------------------

Ich halte mein Versprechen und korrigiere einen logischen Fehler, der bei der Programmierung entstanden ist.
Es stellte sich heraus, dass es mehr als einen gab.


Fehler (1). Mit diesem Fehler zeigte der Indikator "die Stärke einer bestimmten Richtung" an. Sie bestand in der falschen Variablenbeschreibung. Ohne sie begann sie, die "relative Stärke der bestimmten Bewegungsrichtung" anzuzeigen.

Fehler (2). Mit diesem Fehler hat der Indikator die "relative Stärke der genauen Bewegungsrichtung" angezeigt. Es handelte sich um einen Fehler, der bei der FORMEL-EINSTELLUNG gemacht wurde. Ohne sie begann er,
"die relative Stärke der genauen Richtung der Kursbewegung" anzuzeigen.


So viel zum "gesunden" Code:

//|+-----------------------------------------------------------------+
//|Название : RSAR_Korsar / Корсар                                   |
//|Создатель : Jonny Bravo / Джони Браво                             |
//|Тип : зеркальнопериодический индикатор                            |
//|Построен на основе RSI, Stohastic, RVI, ADX.                      |
//|Работает на основе экстримумов и фигур.                           |
//|+-----------------------------------------------------------------+
#property copyright "Jonny Bravo"
#property indicator_separate_window
#property indicator_buffers 6
#property  indicator_color1 DarkGreen 
#property  indicator_color2 Green
#property  indicator_color3 MediumSeaGreen
#property  indicator_color4 MediumSeaGreen
#property  indicator_color5 Green
#property  indicator_color6 DarkGreen
//|+-----------------------------------------------------------------+
//|Inputs                                                            |
//|+-----------------------------------------------------------------+
double price;
//|+--+
extern double _N_  = 1;
extern double _NN_ = -1;
//|+--+
extern int History = 10000;
//|+--+
extern double RSI_Type_Line_1 = 0;
extern double RSI_Period_Line_1_1 = 5;
extern double ADX_Type_Price_1 = 0;
extern double ADX_Period_Line_1 = 5;
extern double RVI_Period_Line_1 = 5;
extern double Stohastic_MA_Metod_1 = 0;
extern double Stochastic_Period_Line_A_1 = 10;
extern double Stochastic_Period_Line_B_1 = 6;
//|+--+
extern double RSI_Type_Line_2 = 0;
extern double RSI_Period_Line_1_2 = 10;
extern double ADX_Type_Price_2 = 0;
extern double ADX_Period_Line_2 = 10;
extern double RVI_Period_Line_2 = 10;
extern double Stohastic_MA_Metod_2 = 0;
extern double Stochastic_Period_Line_A_2 = 10;
extern double Stochastic_Period_Line_B_2 = 6;
//|+--+
extern double RSI_Type_Line_3 = 0;
extern double RSI_Period_Line_1_3 = 20;
extern double ADX_Type_Price_3 = 0;
extern double ADX_Period_Line_3 = 20;
extern double RVI_Period_Line_3 = 20;
extern double Stohastic_MA_Metod_3 = 0;
extern double Stochastic_Period_Line_A_3 = 10;
extern double Stochastic_Period_Line_B_3 = 6;
//|+--+
extern double RSI_Type_Line_4 = 0;
extern double ADX_Type_Price_4 = 0;
extern double ADX_Period_Line_4 = 5;
extern double RVI_Period_Line_4 = 5;
extern double Stohastic_MA_Metod_4 = 0;
extern double Stochastic_Period_Line_A_4 = 10;
extern double Stochastic_Period_Line_B_4 = 6;
//|+--+
extern double RSI_Type_Line_5 = 0;
extern double ADX_Type_Price_5 = 0;
extern double ADX_Period_Line_5 = 10;
extern double RVI_Period_Line_5 = 10;
extern double Stohastic_MA_Metod_5 = 0;
extern double Stochastic_Period_Line_A_5 = 10;
extern double Stochastic_Period_Line_B_5 = 6;
//|+--+
extern double RSI_Type_Line_6 = 0;
extern double ADX_Type_Price_6 = 0;
extern double ADX_Period_Line_6 = 20;
extern double RVI_Period_Line_6 = 20;
extern double Stohastic_MA_Metod_6 = 0;
extern double Stochastic_Period_Line_A_6 = 10;
extern double Stochastic_Period_Line_B_6 = 6;
//|+-----------------------------------------------------------------+
//|Declaration                                                       |
//|+-----------------------------------------------------------------+
int p;
//|+--+
double Buf_0[];  double Buf_1[];  double Buf_2[]; 
double Line_1_A; double Line_2_A; double Line_3_A;
double Line_1_B; double Line_2_B; double Line_3_B;
double Line_1_C; double Line_2_C; double Line_3_C;
double Line_1_D; double Line_2_D; double Line_3_D;
double Line_1_I; double Line_2_I; double Line_3_I;
double Line_1_F; double Line_2_F; double Line_3_F;
double Line_1_K; double Line_2_K; double Line_3_K;
double Line_1_L; double Line_2_L; double Line_3_L;
double Line_1_M; double Line_2_M; double Line_3_M;
//|+--+
double Buf_3[];  double Buf_4[];  double Buf_5[]; 
double Line_4_A; double Line_5_A; double Line_6_A;
double Line_4_B; double Line_5_B; double Line_6_B;
double Line_4_C; double Line_5_C; double Line_6_C;
double Line_4_D; double Line_5_D; double Line_6_D;
double Line_4_I; double Line_5_I; double Line_6_I;
double Line_4_F; double Line_5_F; double Line_6_F;
double Line_4_K; double Line_5_K; double Line_6_K;
double Line_4_L; double Line_5_L; double Line_6_L;
double Line_4_M; double Line_5_M; double Line_6_M;
//|+-----------------------------------------------------------------+
//|Buf inform                                                        |
//|+-----------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,Buf_0);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(1,Buf_1);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(2,Buf_2);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(5,Buf_3);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(4,Buf_4);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(3,Buf_5);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
return;
}
//|+-----------------------------------------------------------------+
//|Start                                                             |
//|+-----------------------------------------------------------------+
int start()
  {
  //|+---------------------------------------------------------------+
  //|Level_1                                                         |
  //|+---------------------------------------------------------------+
  for(
  p=0;
  p<History;
  p++)
    {
    //|+-------------------------------------------------------------+
    //|Level_2                                                       |
    //|+-------------------------------------------------------------+
    price = Bid;
    //|+--+
    Line_1_A = iRSI(Symbol(),0,RSI_Period_Line_1_1,RSI_Type_Line_1,p);
    Line_1_M = iRSI(Symbol(),0,RSI_Period_Line_1_2,RSI_Type_Line_1,p);
    Line_1_L = iRSI(Symbol(),0,RSI_Period_Line_1_3,RSI_Type_Line_1,p);
    Line_1_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_1,Stochastic_Period_Line_B_1,Stochastic_Period_Line_B_1,Stohastic_MA_Metod_1,0,0,p);
    Line_1_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_1,Stochastic_Period_Line_B_1,Stochastic_Period_Line_B_1,Stohastic_MA_Metod_1,0,1,p);
    Line_1_C = iADX(Symbol(),0,ADX_Period_Line_1,ADX_Type_Price_1,0,p);
    Line_1_D = iADX(Symbol(),0,ADX_Period_Line_1,ADX_Type_Price_1,1,p);
    Line_1_I = iADX(Symbol(),0,ADX_Period_Line_1,ADX_Type_Price_1,2,p);
    Line_1_F = iRVI(Symbol(),0,RVI_Period_Line_1,ADX_Type_Price_1,p);
    //|+--+
    Line_2_A = iRSI(Symbol(),0,RSI_Period_Line_1_1,RSI_Type_Line_2,p);
    Line_2_M = iRSI(Symbol(),0,RSI_Period_Line_1_2,RSI_Type_Line_2,p);
    Line_2_L = iRSI(Symbol(),0,RSI_Period_Line_1_3,RSI_Type_Line_2,p);
    Line_2_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_2,Stochastic_Period_Line_B_2,Stochastic_Period_Line_B_2,Stohastic_MA_Metod_2,0,0,p);
    Line_2_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_2,Stochastic_Period_Line_B_2,Stochastic_Period_Line_B_2,Stohastic_MA_Metod_2,0,1,p);
    Line_2_C = iADX(Symbol(),0,ADX_Period_Line_2,ADX_Type_Price_2,0,p);
    Line_2_D = iADX(Symbol(),0,ADX_Period_Line_2,ADX_Type_Price_2,1,p);
    Line_2_I = iADX(Symbol(),0,ADX_Period_Line_2,ADX_Type_Price_2,2,p);
    Line_2_F = iRVI(Symbol(),0,RVI_Period_Line_2,ADX_Type_Price_2,p);
    //|+--+
    Line_3_A = iRSI(Symbol(),0,RSI_Period_Line_1_1,RSI_Type_Line_3,p);
    Line_3_M = iRSI(Symbol(),0,RSI_Period_Line_1_2,RSI_Type_Line_3,p);
    Line_3_L = iRSI(Symbol(),0,RSI_Period_Line_1_3,RSI_Type_Line_3,p);
    Line_3_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_3,Stochastic_Period_Line_B_3,Stochastic_Period_Line_B_3,Stohastic_MA_Metod_3,0,0,p);
    Line_3_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_3,Stochastic_Period_Line_B_3,Stochastic_Period_Line_B_3,Stohastic_MA_Metod_3,0,1,p);
    Line_3_C = iADX(Symbol(),0,ADX_Period_Line_3,ADX_Type_Price_3,0,p);
    Line_3_D = iADX(Symbol(),0,ADX_Period_Line_3,ADX_Type_Price_3,1,p);
    Line_3_I = iADX(Symbol(),0,ADX_Period_Line_3,ADX_Type_Price_3,2,p);
    Line_3_F = iRVI(Symbol(),0,RVI_Period_Line_3,ADX_Type_Price_3,p);
    //|+--+
    Line_4_A = iRSI(Symbol(),0,RSI_Period_Line_1_1,RSI_Type_Line_4,p);
    Line_4_M = iRSI(Symbol(),0,RSI_Period_Line_1_2,RSI_Type_Line_4,p);
    Line_4_L = iRSI(Symbol(),0,RSI_Period_Line_1_3,RSI_Type_Line_4,p);
    Line_4_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_4,Stochastic_Period_Line_B_4,Stochastic_Period_Line_B_4,Stohastic_MA_Metod_4,0,0,p);
    Line_4_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_4,Stochastic_Period_Line_B_4,Stochastic_Period_Line_B_4,Stohastic_MA_Metod_4,0,1,p);
    Line_4_C = iADX(Symbol(),0,ADX_Period_Line_4,ADX_Type_Price_4,0,p);
    Line_4_D = iADX(Symbol(),0,ADX_Period_Line_4,ADX_Type_Price_4,1,p);
    Line_4_I = iADX(Symbol(),0,ADX_Period_Line_4,ADX_Type_Price_4,2,p);
    Line_4_F = iRVI(Symbol(),0,RVI_Period_Line_4,ADX_Type_Price_4,p);
    //|+--+
    Line_5_A = iRSI(Symbol(),0,RSI_Period_Line_1_1,RSI_Type_Line_5,p);
    Line_5_M = iRSI(Symbol(),0,RSI_Period_Line_1_2,RSI_Type_Line_5,p);
    Line_5_L = iRSI(Symbol(),0,RSI_Period_Line_1_3,RSI_Type_Line_5,p);
    Line_5_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_5,Stochastic_Period_Line_B_5,Stochastic_Period_Line_B_5,Stohastic_MA_Metod_5,0,0,p);
    Line_5_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_5,Stochastic_Period_Line_B_5,Stochastic_Period_Line_B_5,Stohastic_MA_Metod_5,0,1,p);
    Line_5_C = iADX(Symbol(),0,ADX_Period_Line_5,ADX_Type_Price_5,0,p);
    Line_5_D = iADX(Symbol(),0,ADX_Period_Line_5,ADX_Type_Price_5,1,p);
    Line_5_I = iADX(Symbol(),0,ADX_Period_Line_5,ADX_Type_Price_5,2,p);
    Line_5_F = iRVI(Symbol(),0,RVI_Period_Line_5,ADX_Type_Price_5,p);
    //|+--+
    Line_6_A = iRSI(Symbol(),0,RSI_Period_Line_1_1,RSI_Type_Line_6,p);
    Line_6_M = iRSI(Symbol(),0,RSI_Period_Line_1_2,RSI_Type_Line_6,p);
    Line_6_L = iRSI(Symbol(),0,RSI_Period_Line_1_3,RSI_Type_Line_6,p);
    Line_6_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_6,Stochastic_Period_Line_B_6,Stochastic_Period_Line_B_6,Stohastic_MA_Metod_6,0,0,p);
    Line_6_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_6,Stochastic_Period_Line_B_6,Stochastic_Period_Line_B_6,Stohastic_MA_Metod_6,0,1,p);
    Line_6_C = iADX(Symbol(),0,ADX_Period_Line_6,ADX_Type_Price_6,0,p);
    Line_6_D = iADX(Symbol(),0,ADX_Period_Line_6,ADX_Type_Price_6,1,p);
    Line_6_I = iADX(Symbol(),0,ADX_Period_Line_6,ADX_Type_Price_6,2,p);
    Line_6_F = iRVI(Symbol(),0,RVI_Period_Line_6,ADX_Type_Price_6,p);
      //|+-----------------------------------------------------------+
      //|Level_3                                                     |
      //|+-----------------------------------------------------------+
      Buf_0[p] = price * (_N_ * (((Line_1_B + Line_1_F) / Line_1_K) - ((Line_1_D + Line_1_I) / Line_1_C) + ((Line_1_A + Line_1_M) / Line_1_L)));
      //|+--+
      Buf_1[p] = price * (_N_ * (((Line_2_B + Line_2_F) / Line_2_K) - ((Line_2_D + Line_2_I) / Line_2_C) + ((Line_2_A + Line_2_M) / Line_2_L)));
      //|+--+
      Buf_2[p] = price * (_N_ * (((Line_3_B + Line_3_F) / Line_3_K) - ((Line_3_D + Line_3_I) / Line_3_C) + ((Line_3_A + Line_3_M) / Line_3_L)));
      //|+--+
      Buf_3[p] = price * (_NN_ * (((Line_4_B + Line_4_F) / Line_4_K) - ((Line_4_D + Line_4_I) / Line_4_C) + ((Line_4_A + Line_4_M) / Line_4_L)));
      //|+--+
      Buf_4[p] = price * (_NN_ * (((Line_5_B + Line_5_F) / Line_5_K) - ((Line_5_D + Line_5_I) / Line_5_C) + ((Line_5_A + Line_5_M) / Line_5_L)));
      //|+--+
      Buf_5[p] = price * (_NN_ * (((Line_6_B + Line_6_F) / Line_6_K) - ((Line_6_D + Line_6_I) / Line_6_C) + ((Line_6_A + Line_6_M) / Line_6_L)));
        //|+---------------------------------------------------------+
        //|Level_4                                                   |
        //|+---------------------------------------------------------+
        }
        return;
        }
//|+-----------------------------------------------------------------+
//|The_end                                                           |
//|+-----------------------------------------------------------------+
.
--------------------------------------
 
evolutiv!

Ich habe solche "Konstruktionen" im MQ4-Tutorial gesehen, wusste aber nicht, wie man sie anwendet. )
 
Helfen Sie mir, die beiden Indikatoren zu kreuzen, ich kann sie nicht im selben Fenster anzeigen lassen.
 
и
Dateien:
 
Ich werde es ausprobieren.
 
sIndex-v6g-uEUR.mq4 - Indikator, angezeigt in einem separaten Fenster.
Kolier_SuperTrend_Indip_1_.mq4 - Indikator, der im Hauptfenster angezeigt wird.

Um sie zu kreuzen, würde es genügen, die Art der Anzeige zu ändern (Hauptfenster oder Unterfenster).
Ich sehe, dass die Indikatoren Berechnungen mit Endergebnissen in verschiedenen Intervallen anzeigen.

sIndex-v6g-uEUR.mq4 = x, (2 < x > 3 );
Kolier_SuperTrend_Indip_1_.mq4 = y, (0,5 < y > 2).

Es besteht die Möglichkeit, die Berechnungsformel für einen der beiden Punkte zu ändern.
 
ABER!!!
 
Wenn sich die Berechnungsformel ändert, ändern sich auch die Indikatorwerte (Axiom). :)

sIndex-v6g-uEUR.mq4 * B * R = L, wobei

B - Zahl, die dem aktuellen Preiswert entspricht,
R - die Zahl, die für den Abgleich der Anzeigewerte eingestellt ist.

L - die Zahl, die dem Endergebnis der Indikatorberechnungen, bezogen auf den Preis, entspricht.


Kolier_SuperTrend_Indip_1_.mq4 * T = E, wobei

T - Zahl, die zwischen 0 und 1 liegt (übernimmt die Funktion des Teilers).
oder

Kolier_SuperTrend_Indip_1_.mq4 / T = E.

Die Variable T erhält einen größeren Bereich, von 1 bis (+) unendlich.


E ist eine Zahl, die dem Quotienten aus dem Preisindikator Kolier_SuperTrend_Indip_1_.mq4 entspricht.
 

Ich glaube nicht, dass man die Formeln zu sehr verändern sollte.

 
Die Berechnungen der beiden verschiedenen Indikatoren können angeglichen werden, aber nur die "VERANTWORTLICHKEITEN" müssen angeglichen werden.