statik dizi?

 

Herkese selam,

Öncelikle tüm cevaplar için herkese teşekkürler, bu MQL4'ü öğrenmek harika oldu

Dizilerin nasıl oluşturulacağını anlamak için ilerliyorum

Ders:

Sinyaller statik bir dizide nasıl saklanır, örneğin: Bir dizi mumun Yüksekleri ve Alçakları vb. Her bir yüksek ve alçak noktanın üstüne muhtemelen küçük bir çizgi koyacağım.

Bu yüzden statik diziyi düşünüyorum[1,2,3,4,5,6,7]

dizi[1] = (Düşük[3] < Düşük[4] && Düşük[3] < Düşük[3]) //veya bunun gibi bir şey?

Düşük_1 = dizi[1]

Low_2 = dizi[2] vb.

Bu, bunu yapmanın standart bir yolu mu yoksa çok mu uzaktayım?

Lütfen öğüt verin, teşekkürler

 

Önce oku . . . sonra anlayana kadar tekrar okuyun.

https://book.mql4.com/variables/arrays

Örneğin, bir dizinin ilk öğesi 0 öğesidir, Bars gibi bit, fumy that, ha? ;-)

 
  1. Çok uzaktasın.
  2. dizi[1,2,3,4,5,6,7] anlamsız
  3. dizi[1] = (Düşük[3] < Düşük[4] && Düşük[3]..., bir bool dizisidir
  4. Low_1 = array[1], dizinin bir bool olmadığını ima eder
  5. "sinyalleri statik bir dizide depola", gerektiğinde bunları hesaplayabiliyorken neden statik olması gerekiyor?
 

ayy ben int dizi[1][7] demek istedim;

cevap için teşekkürler

Biraz daha okuduktan, yönlendirmeleriniz ve sorularınızdan sonra, sanırım bir dizi yapmaya çalıştığım şey olmayabilir.

Temel olarak, kendi tanımlı inişler ve çıkışlar versiyonumu yaratmayı öğrenmek istiyorum; ve yeni çubuklar oluştuktan sonra bile bunlara bir sinyal için başvurabilir. Ama sadece birkaçını seçiyorum, tüm yüksek/düşük tarihi değil.
Burada yanlış yolda olabilirim.

Bunu biraz daha düşüneceğim.

Teşekkür ederim

 
Agent86 :


Temel olarak, kendi tanımlı inişler ve çıkışlar versiyonumu yaratmayı öğrenmek istiyorum; ve yeni çubuklar oluştuktan sonra bile bunlara bir sinyal için başvurabilir. Ama sadece birkaçını seçiyorum, tüm yüksek/düşük tarihi değil.

Niye ya ? Neyi başarmaya çalıştığınızı açıklayabilir misiniz?
 

Sanırım daha çok şöyle bir şey yapacağım:

Sanırım bu, bu yazının artık dizilerle ilgili olmamasına neden oluyor, bu yüzden diziler hakkında daha fazla şey öğrenene kadar bu sorgulamayı geri çekeceğim.


Teşekkürler.

 static double Low_A;
   
   if (Low[ 2 ] < Low[ 2 ]
      && Low [ 2 ] < Low[ 1 ])
      {
      Low_A = Low[ 3 ];
       Print (Low_A + " Low_A has formed" );
      }
 
RaptorUK :
Niye ya ? Neyi başarmaya çalıştığınızı açıklayabilir misiniz?

Elbette, aslında belirli bir mumun iniş çıkışları değil, belki bir dizi mum.

Diyelim ki bir örnek, kullanmak istediğim kaç mum olduğuna bağlı olarak bir Low_A olarak adlandırılabilir, ancak düşük bir soldaki 4 yüksek mum ve sağdaki 4 yüksek mum olarak kabul edilir ve bu düşük mumun Low_A olarak kabul edilir

Ya da bir Düşük veya Yüksek oluşturmak için daha fazla mum veya daha az olabilir ve sonra Yüksekler ve Düşükler için bunun gibi başkalarını yaratabilirim.
Ardından, önceki Düşükleri sonraki Düşüklerle ve önceki Yüksekleri sonraki Yükseklerle karşılaştırmak için bazı işlevler oluşturmak için.

Sonra belki de 2) yüksek/düşük veya 3/yüksek/düşük veya daha da fazla bir diziden bir trend çizgisi çizmek için

Veya bu örnekte olduğu gibi, solda 1 alt mum ve sağda 1 alt mum bulunan 1 mum kullanabilir ve buna düşük diyebilirim.

Başlangıçta sonucu bir diziye koymayı düşünüyordum, ancak bunun istediğimi yapacağını sanmıyorum ya da en azından bu noktada bunu belirlemek için dizileri yeterince iyi anlamıyorum. Biraz daha okumak şüphesiz beni düzeltecektir. HA!

Dizilerin, tanımladığım bir dizi iniş ve çıkışları depolamak için yararlı olup olmayacağından gerçekten emin değildim.
 

Düşük Yazdırırsam[2] bana 5 basamak yerine 8 basamak verir ve bazıları 0,000000 olur

Muhtemelen kullandığım veri tipi statik double Low_A olduğu için;

Doğru şekilde yazdırmam gerekip gerekmediğinden emin değilim, ancak doğru statiği depolamak amacıyla hangi verilerin kullanılacağından emin değilim.

 
Tamam, statik diziyi ve statik ikili fikri atıyorum

Yeni bir tasarıma ihtiyacım var, yapmaya çalıştığım şeyin düzgün çalışmayacağı açık ve şimdi nedenini anlıyorum.

Çooook, tekrar çizim tahtasına dönelim. AH
 

Buna geri dön,

Biraz daha öğrendikten sonra, statik dizi diye bir şey bile var mı, yoksa varsayılan olarak bir dizi statik mi diye merak ediyordum ve sağladığınız bağlantıları okuduktan sonra hepsinin varsayılan olarak statik olduğunu söylüyorum. Harika.


Her neyse, Yüksekleri ve Düşükleri tanımladığım gibi işaretlemeye çalışmak yerine iFraktalları düşünüyorum. Daha iyi bilgi ve daha fazla okuma elde edene kadar Fraktalları şimdilik kullanabilirim.

Peki ya iFractals, onları nasıl işaretleyebilir ve onlara başvurabilirim?
Sadece ek iFractal'lar oluşturup vardiyayı değiştirip ona bu şekilde atıfta bulunur muyum, yoksa iFractal'larla olan geçiş önceki Fraktal'dan değil Barlar'dan mı bahseder?

 //+------------------------------------------------------------------+
//|                Support and Resistance                            |
//|                Copyright © 2004/5     Barry Stander              |
//|                http://www.4Africa.net/4meta/                     |
//+------------------------------------------------------------------+

#property copyright "Support and Resistance             Barry_Stander_4@yahoo.com"
#property link       "http://www.4Africa.net/4meta/"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

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

   SetIndexArrow ( 0 , 119 );
   SetIndexStyle ( 0 , DRAW_ARROW , STYLE_DOT , 1 , Red );
   SetIndexBuffer ( 0 , v1);
   SetIndexLabel ( 0 , "Resistance" );

   SetIndexArrow ( 1 , 119 );
   SetIndexStyle ( 1 , DRAW_ARROW , STYLE_DOT , 1 , Blue );
   SetIndexBuffer ( 1 , v2);
   SetIndexLabel ( 1 , "Support" );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int i= Bars ;
//----
   while (i>= 0 )
     {
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
       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 ];
      
      i--;
     }
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+


Birisi bu kodu yazdı ve nasıl çalıştığını anlıyorum, ancak diziden belirli bir Yüksek ve/veya Düşük aka Destek/Direnç'i nasıl seçeceğimi anladığımdan emin değilim.

Yani, eğer (val1 > imacd) veya başka bir şey olursa, kesinlikle bir ticaret açacak bir işlev yapabilirim, ancak önceki iFractal'lar ne olacak, ya da 2 geri diyelim,

Bu sadece bir vardiya meselesi mi olacak?

Yoksa bunu başka bir diziye mi koymam gerekiyor?

Tavsiye lütfen

teşekkürler

 
Fraktallerin fiyat değerlerini tutan 2 arabellek (dizi) vardır. . . val1 ve val2. Önceki fraktal değerleri bulmak istiyorsanız, bir kaydırma değerini artırarak döngüye girin ve EMPTY_VALUE olmayanları bulana kadar arabellek değerlerini kontrol edin ( https://docs.mql4.com/customind/SetIndexEmptyValue )