MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 114

 
Sergey Gritsay :
R Hangi nesneler ayırt edilemez? ve bir nesnenin türünü değiştirmek, ardından özelliklerin çökmesi ne anlama gelir?

bu, geçerli kodumda yatay çizgi nesnesini mevcut mum için bir eğilim çizgisi veya dikey bir çizgi ile değiştirirsem, başka bir nesnenin parametrelerini belirtmeden bağımsız olarak aynı renk ve kırmızı renkte bir şey çalışmaya devam eder.

tüm bu manipülasyonların amacı, göstergeyi ve danışmanı birleştirmek, şimdi olanlardan dolayı hatayı bulmaya çalışıyorum.

onlar. oluşturur, taşır ve siler iyi, ancak satın alırken maviye, satarken kırmızıya ihtiyacım var, zaten kırmızıya değil.
 

Selamlar. "Double bb"den sonra () parantez içindeki girişin ne verdiğini ve bu durumda " double bb( int buff, int shift)" için {} parantez içindeki girişin ne olduğunu söyleyin

double bb( int buff, int shift){ double val = iCustom ( _Symbol , 0 , "BvsB" ,BB_Period,buff,shift); return (val);}  


Ve hala burada. Al ve Sat tipi bool . "< , &&, >" kullanırken onlara ne atandığını nasıl anlayabilirim?

void Entry()
{  
   if (!UseHTF){
  Buy  = (bb( 0 , 1 ) < bb( 1 , 1 ) && bb( 0 , 2 ) > bb( 1 , 2 ));
  Sell = (bb( 0 , 1 ) > bb( 1 , 1 ) && bb( 0 , 2 ) < bb( 1 , 2 ));}
  
   if (UseHTF){
  Buy  = (bbh( 0 , 1 ) < bbh( 1 , 1 ) && bb( 0 , 1 ) < bb( 1 , 1 ) && bb( 0 , 2 ) > bb( 1 , 2 ));
  Sell = (bbh( 0 , 1 ) > bbh( 1 , 1 ) && bb( 0 , 1 ) > bb( 1 , 1 ) && bb( 0 , 2 ) < bb( 1 , 2 ));}  
  
 
Andrey Sokolov :

Selamlar. "Double bb"den sonra () parantez içindeki girişin ne verdiğini ve bu durumda " double bb( int buff, int shift)" için {} parantez içindeki girişin ne olduğunu söyleyin

double bb( int buff, int shift){ double val = iCustom ( _Symbol , 0 , "BvsB" ,BB_Period,buff,shift); return (val);}  


Ve hala burada. Al ve Sat tipi bool . "< , &&, >" kullanırken onlara ne atandığını nasıl anlayabilirim?

void Entry()
{  
   if (!UseHTF){
  Buy  = (bb( 0 , 1 ) < bb( 1 , 1 ) && bb( 0 , 2 ) > bb( 1 , 2 ));
  Sell = (bb( 0 , 1 ) > bb( 1 , 1 ) && bb( 0 , 2 ) < bb( 1 , 2 ));}
  
   if (UseHTF){
  Buy  = (bbh( 0 , 1 ) < bbh( 1 , 1 ) && bb( 0 , 1 ) < bb( 1 , 1 ) && bb( 0 , 2 ) > bb( 1 , 2 ));
  Sell = (bbh( 0 , 1 ) > bbh( 1 , 1 ) && bb( 0 , 1 ) > bb( 1 , 1 ) && bb( 0 , 2 ) < bb( 1 , 2 ));}  
  


1. Bu bir fonksiyondur. Parantez içinde, işlev çağrıldığında iletilen parametrelerdir. Bu durumda, gösterge arabelleğinin numarası ve gösterge değerlerini aldığımız çubuğun ofseti.

2. Boole değişkenlerine, atama işaretinin (=) ardından tüm mantıksal ifadenin sonucu atanır. Tüm koşullar doğruysa, değişken true olarak ayarlanır, aksi takdirde - false
 
trader781 :

bu, geçerli kodumda yatay çizgi nesnesini mevcut mum için bir eğilim çizgisi veya dikey bir çizgi ile değiştirirsem, başka bir nesnenin parametrelerini belirtmeden bağımsız olarak aynı renk ve kırmızı renkte bir şey çalışmaya devam eder.

tüm bu manipülasyonların amacı, göstergeyi ve danışmanı birleştirmek, şimdi olanlardan dolayı hatayı bulmaya çalışıyorum.

onlar. oluşturur, taşır ve siler iyi, ancak satın alırken maviye, satarken kırmızıya ihtiyacım var, zaten kırmızıya değil.
bu, grafik nesnesinin parametrelerini tekrar yanlış ayarladığınız anlamına gelir.
 
Sergey Gritsay :
bu, grafik nesnesinin parametrelerini tekrar yanlış ayarladığınız anlamına gelir.

büyük olasılıkla.

herşey ders kitaplarına göre gözüküyor ama sonuç aynı değil o yüzden kodu buraya attım.

 
Merhaba!
Ben oluşturmadıysam, terminalde neden bir İstemci Terminali Global Değişkeni olduğunu anlayamıyorum? ( GlobalVariablesTotal() işlevi "1" değerini döndürür ). Belki önceden yüklenmiş bir Terminal vardır? Öyleyse neden, adını öğrenmek ve GlobalVariableName(0) veya GlobalVariableName(1) işlevini çağırmak istediğimde, hiçbir ad görüntülenmiyor. Lütfen bana neyin yanlış olabileceğini söyle?
 

Selamlar. Fiyat tablosunda üst üste bindirilmeyen, ancak altında ayrı olarak görüntülenen göstergenin kırmızı çizgisi hakkında veri almanız gerekir. Bunu, grafikte üst üste bindirilmiş göstergelerde olduğu gibi yapmaya çalışıyorum, ancak bir sorun var. nerede hatalıyım?

Signal= iCustom ( NULL , 0 , "ytg_Def_RSI_3_Symbol" , RSI_1_Period, RSI_2_Period, applied_price, ma_period, ma_method, 1 ,shift);

İşte gösterge

#property copyright "Yuriy Tokman"
#property link        "yuriytokman@gmail.com"

//ну если проще запулить в одно окно три мульти с настройками
//1 EUR-USD
//2 EURGBP
//3 EURJPY
//если все три в состоянии перекупленности  значит Бай и наоборот

#property indicator_separate_window
#property   indicator_buffers 6
#property   indicator_color1  Green
#property   indicator_color2  Red
#property   indicator_color3  Yellow
#property indicator_level1 0
#property indicator_level2 5
#property indicator_level3 - 5

extern string Symbol_1   = "EURUSD" ;
extern string Symbol_2   = "EURGBP" ;
extern string Symbol_3   = "EURJPY" ;

extern int RSI_1_Period  = 14 ; //период первого индикатора РСИ
extern int RSI_2_Period  = 28 ; //период второго индикатора РСИ
extern int applied_price = 0 ; //используемая цена  0-6
extern int ma_period     = 14 ; //период сглаживания
extern int ma_method     = 0 ; //метод сглаживания  0-3

double        buf[];
double     MA_buf[];
double       buf2[];
double    MA_buf2[];
double       buf3[];
double    MA_buf3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 );
   SetIndexBuffer ( 0 , buf);
  
   SetIndexStyle ( 4 , DRAW_NONE );
   SetIndexBuffer ( 4 ,MA_buf);
  
   SetIndexStyle ( 1 , DRAW_LINE , STYLE_SOLID , 2 );
   SetIndexBuffer ( 1 , buf2);
  
   SetIndexStyle ( 3 , DRAW_NONE );
   SetIndexBuffer ( 3 ,MA_buf2);  
    
   SetIndexStyle ( 2 , DRAW_LINE , STYLE_SOLID , 2 );
   SetIndexBuffer ( 2 , buf3);
  
   SetIndexStyle ( 5 , DRAW_NONE );
   SetIndexBuffer ( 5 ,MA_buf3);
  
   IndicatorShortName ( "ytg_Def_RSI_3_Symbol" );
   Comment ( "yuriytokman@gmail.com" );  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   Comment ( "" );  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   double RSI_1, RSI_2, RSI_12, RSI_22, RSI_13, RSI_23;
  
   int limit;
   int counted_bars= IndicatorCounted ();
  
   if (counted_bars< 0 ) return (- 1 );

   if (counted_bars> 0 ) counted_bars--;
   limit= Bars -counted_bars;

   for ( int i=limit; i>= 0 ; i--)
   {
     RSI_1 = iRSI (Symbol_1, 0 ,RSI_1_Period,applied_price,i);
     RSI_2 = iRSI (Symbol_1, 0 ,RSI_2_Period,applied_price,i);

     MA_buf[i] = (RSI_1-RSI_2);
    
    
     RSI_12 = iRSI (Symbol_2, 0 ,RSI_1_Period,applied_price,i);
     RSI_22 = iRSI (Symbol_2, 0 ,RSI_2_Period,applied_price,i);

     MA_buf2[i] = (RSI_12-RSI_22);
    
    
     RSI_13 = iRSI (Symbol_3, 0 ,RSI_1_Period,applied_price,i);
     RSI_23 = iRSI (Symbol_3, 0 ,RSI_2_Period,applied_price,i);

     MA_buf3[i] = (RSI_13-RSI_23);          
   }
   for (i=limit; i>= 0 ; i--)
   {
     buf[i] = iMAOnArray (MA_buf, 0 ,ma_period, 0 ,ma_method,i);
    
     buf2[i] = iMAOnArray (MA_buf2, 0 ,ma_period, 0 ,ma_method,i);    
    
     buf3[i] = iMAOnArray (MA_buf3, 0 ,ma_period, 0 ,ma_method,i);    
   }  
  
  
//----
   return ( 0 );
  }
 
Andrey Sokolov :

Selamlar. Fiyat tablosunda üst üste bindirilmeyen, ancak altında ayrı olarak görüntülenen göstergenin kırmızı çizgisi hakkında veri almanız gerekir. Bunu, grafikte üst üste bindirilmiş göstergelerde olduğu gibi yapmaya çalışıyorum, ancak bir sorun var. nerede hatalıyım?

Signal= iCustom ( NULL , 0 , "ytg_Def_RSI_3_Symbol" , RSI_1_Period, RSI_2_Period, applied_price, ma_period, ma_method, 1 ,shift);

İşte gösterge

extern string Symbol_1   = "EURUSD" ;
extern string Symbol_2   = "EURGBP" ;
extern string Symbol_3   = "EURJPY" ;

extern int RSI_1_Period  = 14 ; //период первого индикатора РСИ
extern int RSI_2_Period  = 28 ; //период второго индикатора РСИ
extern int applied_price = 0 ; //используемая цена  0-6
extern int ma_period     = 14 ; //период сглаживания
extern int ma_method     = 0 ; //метод сглаживания  0-3

Giriş parametreleri penceresini açın ve bunları iCustom'da sırayla listeleyin

İlk üç dize değerini kaçırıyorsunuz: