Gösterge Sorusu - sayfa 2

 
Doğru için 1 veya Yanlış için 0 değil mi?

Yarın biraz daha düşüneceğim ve bakalım bunu çözebilecek miyim.
 
Agent86 :
Doğru için 1 veya Yanlış için 0 değil mi? <---- bu doğru, AMA

Yarın biraz daha düşüneceğim ve bakalım bunu çözebilecek miyim.


İngiltere, MACD değerlerinize daha çok atıfta bulunuyor.
 
daha hızlı ve daha yavaş bool değil çiftlerdir. . . İlk değerinden ve belki 3 yinelemeden döngü boyunca çalışın, bu nedenle Bars, Bars-1, Bars-2 değerleri için. . . daha hızlı ve daha yavaş değerleri nelerdir?
 
//+------------------------------------------------------------------+
//|                                   
//+------------------------------------------------------------------+


#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 White

//---- buffers
double v1[];
double v2[];
double v3[];
double val1;
double val2;
double val3;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
//----
   IndicatorBuffers ( 3 );

   SetIndexArrow ( 0 , 111 );
   SetIndexStyle ( 0 , DRAW_ARROW , STYLE_DOT , 1 , Blue );
   SetIndexBuffer ( 0 , v1);
   SetIndexLabel ( 0 , "Resistance" );
   

   SetIndexArrow ( 1 , 111 );
   SetIndexStyle ( 1 , DRAW_ARROW , STYLE_DOT , 1 , Red );
   SetIndexBuffer ( 1 , v2);
   SetIndexLabel ( 1 , "Support" );
  
   
   SetIndexArrow ( 2 , 111 );
   SetIndexStyle ( 2 , DRAW_ARROW , STYLE_DOT , 1 , White );
   SetIndexBuffer ( 2 , v3);
   SetIndexLabel ( 2 , "High A" );
   
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   
   int i= Bars ;
   
   double    faster = iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 1 ), //MODE_MAIN
            slower = iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 1 ); //MODE_SIGNAL        
  
     for (i= Bars ; i>= 0 ; i--)
     {
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
       if (val1 > 0 )
         {                             
          v1[i]=High[i]; 
                         
           Print ( "v1[" , i, "]= " , v1[i], " if" );
           Print ( "i=" ,i, " faster=" , faster);
           Print ( "i=" ,i, " slower=" ,slower);
          }    
               
       else           
         {
         //v1[i]=v1[i+1];
         //Print ("v1[", i, "]= ", v1[i], " else");
         }
      
      val2= iFractals ( NULL , 0 , MODE_LOWER,i);
       if (val2 > 0 )
         {
          v2[i]=Low[i];
          
           Print ( "v2[" , i, "]= " , v2[i], " if" );
         }
          
       else           
         {
         //v2[i]=v2[i+1]; 
         //Print ("v2[", i, "]= ", v2[i], " else");         
         }
      }

   
     
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+




2011.09.28 16:43:30 sup_res EURUSD,M5: i=411 daha hızlı=-0.0005

2011.09.28 16:43:30 sup_res EURUSD,M5: v1[411]= 1.3522 ise
2011.09.28 16:43:30 sup_res EURUSD,M5: v2[414]= 1.3495 ise
2011.09.28 16:43:30 sup_res EURUSD,M5: i=414 daha yavaş=-0.0007
2011.09.28 16:43:30 sup_res EURUSD,M5: i=414 daha hızlı=-0.0005
2011.09.28 16:43:30 sup_res EURUSD,M5: v1[414]= 1.3527 ise
2011.09.28 16:43:30 sup_res EURUSD,M5: i=417 daha yavaş=-0.0007
2011.09.28 16:43:30 sup_res EURUSD,M5: i=417 daha hızlı=-0.0005
2011.09.28 16:43:30 sup_res EURUSD,M5: v1[417]= 1.3528 ise
2011.09.28 16:43:30 sup_res EURUSD,M5: v2[419]= 1.3506 ise
2011.09.28 16:43:30 sup_res EURUSD,M5: i=420 daha yavaş=-0.0007
2011.09.28 16:43:30 sup_res EURUSD,M5: i=420 daha hızlı=-0.0005
2011.09.28 16:43:30 sup_res EURUSD,M5: v1[420]= 1.3523 ise
2011.09.28 16:43:30 sup_res EURUSD,M5: i=426 daha yavaş=-0.0007
2011.09.28 16:43:30 sup_res EURUSD,M5: i=426 daha hızlı=-0.0005
2011.09.28 16:43:30 sup_res EURUSD,M5: v1[426]= 1.3522 ise
2011.09.28 16:43:30 sup_res EURUSD,M5: v2[429]= 1.3481 ise


Göstergeyi çalıştırırken bunu yazdırır

Ancak bir EA için aynı kod diziyi yazdırmaz

2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: i=227 daha hızlı=-0.0015
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: v1[227]= 0 ise
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: v2[230]= 0 ise
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: i=232 daha yavaş=-0.0013
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: i=232 daha hızlı=-0.0015
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: v1[232]= 0 ise
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5dk EURUSD,M5: i=825 daha hızlı=-0.0015
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5dk EURUSD,M5: v1[825]= 0 ise
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5dk EURUSD,M5: i=829 daha yavaş=-0.0008
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5dk EURUSD,M5: i=829 daha hızlı=-0.0015
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5dk EURUSD,M5: v1[829]= 0 ise
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5dk EURUSD,M5: i=832 daha yavaş=-0.0008
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5dk EURUSD,M5: i=832 daha hızlı=-0.0015
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5dk EURUSD,M5: v1[832]= 0 ise
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: i=240 daha hızlı=-0.0011
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v1[240]= 0 ise
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5dk EURUSD,M5: v2[241]= 0 ise
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5dk EURUSD,M5: v2[245]= 0 ise
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: i=245 daha yavaş=-0.0003
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5dk EURUSD,M5: i=245 daha hızlı=-0.0011
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5dk EURUSD,M5: v1[245]= 0 ise
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5dk EURUSD,M5: v2[249]= 0 ise


Diziyi tekrar yazdırmamak için neden geri döndüğünü bilmiyorum, çünkü gösterge ile aynı kod
Her neyse, şimdilik gösterge üzerinde çalışacağım.

Değerler, 4 basamaklı kesirli sayılardan negatif 4 basamaklı kesirli sayılara kadar çeşitli görünmektedir.

iMACD kaydırmasını i olarak değiştirirsem, her zaman daha hızlı ve daha yavaş = 0

 
Agent86 :

Bu fikirle oynamak için if(hızlı > daha yavaş) kodunun çeşitli alanlarına eklemeyi denedim. Normalde bu fikirler bir EA'da işe yarar ancak bir göstergede çalışmaz.

IE if(v1 > 0 && daha hızlı > daha yavaş)

ancak bu göstergenin kaybolmasına neden olur.

Bu değişikliği deneyin
 //    double   faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1), //MODE_MAIN
//             slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //MODE_SIGNAL        
  
     for (i= Bars -1 ; i>= 0 ; i--)
     {
   double    faster = iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, i ), //MODE_MAIN
            slower = iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, i ); //MODE_SIGNAL        
 
Agent86 :


Diziyi tekrar yazdırmamak için neden geri döndüğünü bilmiyorum, çünkü gösterge ile aynı kod


Bir EA'da Gösterge Tamponlarını kullanamazsınız. . bu açıklıyor: https://www.mql5.com/en/articles/1456

daha hızlı ve daha yavaş, tüm döngü boyunca aynı değerler ve i'nin değişen değerleri, istediğiniz ve ihtiyacınız olan bu mu?

 
RaptorUK :

Bir EA'da Gösterge Tamponlarını kullanamazsınız. . bu açıklıyor: https://www.mql5.com/en/articles/1456

daha hızlı ve daha yavaş, tüm döngü boyunca aynı değerler ve i'nin değişen değerleri, istediğiniz ve ihtiyacınız olan bu mu?


Tamam bağlantı için teşekkürler. Bunu unutmuşum. Hatırlayabileceğim çok fazla bilgi var. Noobiness handikapı LOL.

Her neyse, yüksek fraktalları yalnızca iMACD kesişmeleri veya EMA kesişmeleri veya diğer bazı gösterge kesişmeleri gibi başka bir koşul oluştuğunda oluşturmaya çalışıyordum.
Böylece fraktallar yalnızca tüm koşullar karşılandığında göstergede gösterilecektir.
Sonra benzer koşullara sahip düşük fraktallar üzerinde çalışırdım.

Muhtemelen nasıl yapılacağını öğrenmek için daha da karmaşık koşullar eklemeye çalışacağım. Demek istediğim, iFractals olmayabilir, ancak diğer göstergelerle birleştiğinde çeşitli koşullara sahip başka bir gösterge olabilir.

Tasarım benim için büyük bir sorun çünkü deneyimli değilim, bu yüzden genel kodda kullanılan taktiklerin veya teorilerin çoğunu görmedim. Bu yüzden, nasıl çalıştıklarını görmek ve ne yaptıklarını anlamaya çalışmak ve bundan bir şeyler öğrenmek için şimdilik sadece diğer insanların kodlarını okuyarak öğrenebilirim.

neyse çalışmaya devam edicem teşekkürler
 
WHRoeder :
Bu değişikliği deneyin
Hımm ilginç

Bu nedenle değişken döngü içinde de bildirilmelidir.


Tamam, şimdi bununla oynamak eğlenceli olmalı, herkese teşekkürler

 

İlk önce tüm döngüsel vrb'leri döngünün dışında bir kez başlatmayı tercih ederim. Bunları döngü içinde bildirirseniz, her yineleme için derleyici yeni bir değişken oluşturur. aynı gibi görünseler de aslında öyle değiller.

 double     faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1), //MODE_MAIN
           slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //MODE_SIGNAL        
  
     for (i= Bars -1 ; i>= 0 ; i--)
     {
            faster = iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, i ), //MODE_MAIN
            slower = iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, i ); //MODE_SIGNAL 
 
diostar :
İlk önce tüm döngüsel vrb'leri döngünün dışında bir kez başlatmayı tercih ederim. Bunları döngü içinde bildirirseniz, her yineleme için derleyici yeni bir değişken oluşturur. aynı gibi görünseler de aslında öyle değiller.
Bu sonuca tam olarak nasıl ulaştınız ve işlevsel fark nedir?
Neden: