statik dizi? - sayfa 5

 
AHHHHHHHHH! Şimdi bana LOL diyor

Tamam, bazı sonuçlarla biraz daha iyi bir şey elde ettim, sonuçları tam olarak anlamadım ama sanırım oradan çözebilirim ve neden ASLA sonuç alamadığımı anlayabilirim.

teşekkürler

 //+------------------------------------------------------------------+
//|                                                  Agent86_5min.mq4 |
//|                                                    Unfinished POS |
//|                                    
//+------------------------------------------------------------------+
#property copyright "Unfinished POS by Agent86"


//---- input parameters
extern double     TakeProfit= 20.0 ;
extern double     Lots= 0.1 ;
extern double     StopLoss= 15.0 ;
extern int MagicNumber= 123486 ;

double v1[ 5 ];
double v2[];
double v3[];
double val1;
double val2;
double val3;


//++++ These are adjusted for 5 digit brokers.

int      pips2points;     // slippage  3 pips    3=points    30=points
double   pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int      Digits .pips;     // DoubleToStr(dbl/pips2dbl, Digits.pips)

     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   if ( Digits == 5 || Digits == 3 )
   {     // Adjust for five (5) digit brokers.
      pips2dbl    = Point * 10 ; pips2points = 10 ;   Digits .pips = 1 ;
   } 
   else 
    {    
      pips2dbl    = Point ;    pips2points =   1 ;   Digits .pips = 0 ; 
    }
     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
     
   
    
//---- 

//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return ( 0 );
  }
   
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  
  
   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 ( int i= Bars ; i >= 0 ; i--)
     {
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
   
       // Print (val1, (" val1")); //will print some 0's
       if (val1 > 0 )
         {        
          v1[i]=High[i];
 
         }
       else           
         {
         v1[i]=v1[i+ 1 ];
         }
        

      val2= iFractals ( NULL , 0 , MODE_LOWER,i);
     
       if (val2 > 0 ) 
         {
         v2[i]=Low[i];
         }
       else           v2[i]=v2[i+ 1 ];
       
     }   
     
     for (i= Bars ; i >= 0 ; i--)
     {
     val1= iFractals ( NULL , 0 , MODE_UPPER,i);
     if (val1> 0 )
      {
       double v1[ 6 ];
      v1[ 5 ]=High[i];
       Print ( "v1[" , 5 , "]= " , v1[ 5 ]);
      }
     }
     
        
                       
        
           

//---- 

 
                    
        

                
   return ( 0 );
  }    

//+------------------------------------------------------------------+
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3312
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3315
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3284
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3299
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3306
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3325
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3343
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3399
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3419
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3398
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3374
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3375
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3378
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3387
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3383
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3373
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3372
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3368
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3356
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3366
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3369
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3386
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3303
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3314
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3294
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5dk EURUSD,M5: v1[5]= 1.329
 
Şimdi önceki fraktallara nasıl atıfta bulunacağımı bulmaya geri dönebilirim.

teşekkürler

 
Her zaman bir açıklama vardır. . . sadece onu bulman gerekiyor. :-)
 
RaptorUK :

Evet, Gösterge arabellekleri sıradan dizilerden farklı şekilde işlenir.

v[i], Diziyi bildirmiyor, yalnızca öğelerden biri. . ancak çift v[]; sıfır elemanlı bir dizidir. . yani v[herhangi bir şey] her zaman = 0

bu benim için kafa karıştırıcı.
böylece aslında diziye değerler koyabilirsiniz ve henüz bildirilmediğinden, hangi öğe olduğunu/olduğunu bilmeden bu öğelere erişmenin bir yolu yok mu? Sağ ?

Peki dizide sıfır eleman varsa tampon v1[i] çizgisini nasıl çizeceğini nasıl biliyor? ?

Bunun nedeni gerçekten daha çok statik bir bool olması ve bu noktada bir dizi gibi davranmaması mı? anlamı Yüksek[i] = Doğru, öyleyse Yüksek[i] çiz?
Ama aslında sadece True öğesinde NO değeriyle çiziyor ve o anda High[i] çizmek için tamam mı?

Lütfen buna yakın değilsem açıklığa kavuşturun

Ve ders için teşekkürler
 

Gösterge arabellekleri özel Dizilerdir. . . Dizileri ve Tamponları karıştırmayın, benzer ancak farklıdırlar.

Orijinal kodda v1[] ve v2[] arabelleklerdir, en son kodunuzda bunlar Dizilerdir, bir Dizi bildirdiğinizde ona bir boyut vermeniz gerekir, örneğin v1[50], v1[0]'dan 50 öğeye sahiptir. v1'e[49]. Arabellek, ihtiyaç duyulan daha fazla öğe olduğunda otomatik olarak Yeniden Boyutlandırılır ve değerler, Tamponda otomatik olarak değişir. Şu anda oluşan çubuk 0'ı düşünün, bu çubuk o çubukla ilişkili bir Gösterge değerini tamamladığında indeks 1'e kaydırmak zorundadır. . . bu, Buffers ile otomatik olarak yapılır. . Arrays ile benzer bir şey istiyorsanız yapabilirsiniz, ancak bunu kendiniz kodlamanız gerekir.

 
Tamam, anlıyorum, arabelleklerin gerçekten aynı olmadığını bilmiyordum, anlamam gereken şey bu ve muhtemelen bunu bir süre önce çözebilirdim.

teşekkürler
 
for (i= Bars ; i >= 0 ; i--)
      {
      val3= iFractals ( NULL , 0 , MODE_UPPER,i);
       if (val3> 0 )
         {      
         v3[ 1 ]=High[i];
         double v3[ 9 ];
// if I put v3[1]=High[i]; here in stead of above it will not draw the line, probably because of this buffer topic again
         Print ( "v1[" , 1 , "]= " , v3[ 1 ]);
         }
      }

Her neyse, şimdi iyi bir ilerleme kaydedebileceğimi düşünüyorum.


Bu satırı dizinin bildiriminin hemen üstüne koyabildiğimi görüyorum ve göstergeyi gösteriyor, ancak yalnızca 0 yazdıracak ve altına koyarsam değeri yazdırıyor

 
iFractals hakkında ve ne zaman val1>0 sorabilir miyim?

Bunun ==Doğru anlamına geldiğini ve sonra devam ettiğini varsayıyorum

Yani bunun doğru olduğu noktada, bu değeri nasıl bilebilirim, çünkü sadece yazdırmak, doğru olduğu sürece değerde devam eden bir değişiklik yazdıracaktır.

Ayrıca diziyi bildirmek ve ardından v1[3]=Yüksek[i] gibi dizideki bir öğeyi bildirmek de yazdırma sonuçları val1>0 olarak değişmeye devam eder.

Bu yüzden bunu anlamaya çalışıyorum ve şu anda zamanı nasıl dondurabileceğimi val1>0 olacak veya değeri alamadığım için tampondaki [i] değerini kullanmadan gerçek fraktal değerin ne olduğunu nasıl bileceğim Daha önce tartıştığımız gibi arabellekten [i] diziyi bildirmiyor ve kendisi bildirilmemiş. Kısmen bildirilmemiş.

Sanırım diziyi ilan edip High[i] olarak bir değer atamak istediğim yazdırma sonuçlarını üretecek, ancak göstergede olduğu gibi sabit değil yani gösterge nasıl sabit bir değere sahip ve bunu sırayla nasıl çoğaltabilirim? bu değeri kullanmak veya yararlı olması için başka bir değişken olarak yeniden adlandırmak.

Tavsiye lütfen

teşekkürler

 
Belki de ne yapmaya çalıştığınızı açıklayarak başlamalısınız. . . . hiç bir koddan bahsetmeden. . sadece düz İngilizce. Muhtemelen ikimiz için de işleri daha net hale getirecek. . ;-)
 
RaptorUK :
Belki de ne yapmaya çalıştığınızı açıklayarak başlamalısınız. . . . hiç bir koddan bahsetmeden. . sadece düz İngilizce. Muhtemelen ikimiz için de işleri daha net hale getirecek. . ;-)
Haha tamam

Sanırım sinyalin kendisinin grafikte göstereceği ifraktallere atıfta bulunmayı öğrenmek istiyorum.
Genel olarak hepsi değil, yüksek ve/veya düşükten 1 veya bir öncekini seçip kullanmak için seçin.
Bir tür ABCD adlandırma şemasında kullanmak için

iFractal'lar bu kullanım için kendi başıma yaratacağım şeyi neredeyse yapıyor gibi göründüğünden, bu fraktallara değişken bir isim verebilmek istedim.

Böylece, göstergede gösterildiği gibi ve yeni bir tane oluşana kadar gösterilmeye devam eden v1[i]=Yüksek[i] için gösterildiği gibi bu sabit iFraktallara atıfta bulunacak kod tasarlayabilirim. Gösterge sabit kalan değeri gösterir

Bu yüzden, mevcut v1[i]=Yüksek[i] diyelim için bir değişken oluşturacak bir kod oluşturmaya çalışacaktım ve bu A olabilir ama göstergedeki gibi sabit bir değer istiyorum, benimki gibi hareketli bir değer değil Bildirimi yazdırın.

Daha sonra, A veya B olarak işaretlemek için önceki bir Yüksek[i] arasından seçim yapmak isteyebilirim, eğer(A>Yüksek[i] o sırada) C olabilir vb. Tamamen farklı bir stratejinin başka bir bölümünde kullanmak için iyi bir ABCD şeması bulmaya çalışmak. Ancak birçok insanın bu tür ABCD şemasını fibler ve diğer birçok parça ve gösterge ile kullandığını fark ettim ama ben sadece temel bir ABCD şemasının nasıl oluşturulacağını öğrenmek ve belki daha sonra bu ABCD'lere dayalı trend çizgileri çizmesini istiyordum.

Ve daha birçok şey, ama şimdilik sadece ABCD türünde bir şey.

teşekkürler
Neden: