-Sıcak turtalar, krepler, krepler! - elbette, mecazi anlamda. Yeni göstergeleri tartışır ve eleştiririz. - sayfa 5

 

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

Programlamada oluşturulan mantıksal bir hatayı düzelterek sözümü tutmak.
Yalnız olmadığı ortaya çıktı.


Hata (1). Bu hata ile gösterge "belirli bir hareket yönünün gücünü" gösterdi. Değişkenlerin yanlış tanımlanmasından oluşuyordu. Onsuz, "tam hareket yönünün göreceli gücünü" göstermeye başladı.

Hata (2). Bu hata ile gösterge "tam hareket yönünün göreceli gücünü" gösterdi. FORMÜLÜN DERLENMESİNDE yapılan bir kusurdan oluşuyordu. O olmadan, göstermeye başladı
"FİYAT hareketinin tam yönünün göreceli gücü".


İşte "sağlıklı" kod:

 //|+-----------------------------------------------------------------+
//|Название : 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                                                           |
//|+-----------------------------------------------------------------+
.
--------------------------------------
 
kötü canlı !

MQ4 eğitiminde böyle "yapılar" gördüm ama nasıl kullanılacağını bilmiyordum. )
 
iki göstergeyi geçmeye yardım et, aksi takdirde onları bir pencereye yerleştiremem
 
ve
Dosyalar:
 
Şimdi deneyeceğim.
 
sIndex-v6g-uEUR.mq4 - ayrı bir pencerede görüntülenen gösterge.
Kolier_SuperTrend_Indip_1_.mq4 - ana pencerede görüntülenen gösterge.

Bunları geçmek için bunlardan birinin görüntüleme yöntemini (ana pencere veya alt pencere) değiştirmek yeterli olacaktır.
Göstergelerin, nihai sonuçları farklı aralıklarla olan hesaplamaları gösterdiğini görüyorum.

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

Bunlardan birini hesaplamak için formülü değiştirme seçeneği vardır.
 
ANCAK!!!
 
Hesaplama formülü değişirse, gösterge okumaları değişecektir (aksiyom). :)

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

B - fiyatın kalıcı andaki değerine eşit bir sayı,
R, gösterge okumalarını dengelemek için ayarlanmış bir sayıdır.

L - fiyatla ilişkili gösterge hesaplamalarının nihai sonucuna eşit bir sayı.


Kolier_SuperTrend_Indip_1_.mq4 * T = E, burada

T, 0 ile 1 arasında bir sayıdır (bölen görevi görür).
veya

Kolier_SuperTrend_Indip_1_.mq4 / T = E.

T değişkeni 1'den (+) sonsuza kadar daha geniş bir aralık alacaktır.


E - Kolier_SuperTrend_Indip_1_.mq4 özel fiyat göstergesine eşit bir sayı.
 

Formülleri fazla değiştirmeye değeceğini düşünmüyorum.

 
İki farklı göstergenin hesaplamaları eşitlenebilir, ancak yalnızca "CEVAPLAR" eşitlenmelidir.