özel ZigZag

 
icustom komutu ile zikzak göstergesinin yönünü belirlemeye çalışıyorum.

Şimdiye kadar sahip olduğum şey bu:

ZigZag Yüksek=iCustom(NULL,0,"ZigZag",MODE_HIGH,0);
ZigZagLow=iCustom(NULL,0,"ZigZag",MODE_LOW,0);

Çizgiler grafikte çiziliyor, ancak programı çalıştırdığımda hem ZigZagHigh hem de ZigZagLow sıfıra eşit.




icustom işleviyle ZigZag göstergesinin eğilimini nasıl belirlerim?


teşekkürler
 
Her ne yapmaya çalışıyorsanız, muhtemelen bunu elde etmenin yolu bu değildir.
'Gümrük göstergeleri, uzmanlar ve strateji testi' konusuna bakın -- iCustom'u kullanmanın yolunu açıkladım...

Bu verileri almak için göstergeyi değiştirmeniz ve iki ekstra arabellek oluşturmanız gerektiğini düşünüyorum.
düşük değer örneğin LOWbuff[]
yüksek değer HIGHbuff[]

şimdi yeni bir yüksek (iç gösterge) varsa, bunun şu anda depolanan değerden farklı olup olmadığını kontrol edin... eğer öyleyse, yeni bir değeriniz var...
Örneğin 1.2815 ZigZag maks.
bar1
bar2
bar3
...
barx yeni değeri 1.2755 olarak geliyor

HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... gibi bir şey olacaksın. ]

sonra Icustom(NULL,0,"ZigZag",3,0); --> ve işte! numaran var

Umarım neden bahsettiğimi anlamışsınızdır...

zolero
 
zolero :
Her ne yapmaya çalışıyorsanız, muhtemelen bunu elde etmenin yolu bu değildir.
'Gümrük göstergeleri, uzmanlar ve strateji testi' konusuna bakın -- iCustom'u kullanmanın yolunu açıkladım...

Bu verileri almak için göstergeyi değiştirmeniz ve iki ekstra arabellek oluşturmanız gerektiğini düşünüyorum.
düşük değer örneğin LOWbuff[]
yüksek değer HIGHbuff[]

şimdi yeni bir yüksek (iç gösterge) varsa, bunun şu anda depolanan değerden farklı olup olmadığını kontrol edin... eğer öyleyse, yeni bir değeriniz var...
Örneğin 1.2815 ZigZag maks.
bar1
bar2
bar3
...
barx yeni değeri 1.2755 olarak geliyor

HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... gibi bir şey olacaksın. ]

sonra Icustom(NULL,0,"ZigZag",3,0); --> ve işte! numaran var

Umarım neden bahsettiğimi anlamışsınızdır...

zolero


Hayır, aslında anlamıyorum,


Tek istediğim, EA'mın zikzak göstergesinin hangi yöne (YUKARI VEYA AŞAĞI) işaret ettiğini bilmesini sağlamak. BUNU YAPMAK İÇİN NASIL GİDERİM?
 
Tek istediğim, EA'mın zikzak göstergesinin hangi yöne (YUKARI VEYA AŞAĞI) işaret ettiğini bilmesini sağlamak. BUNU YAPMAK İÇİN NASIL GİDERİM?
Muhtemelen bilmek istersiniz son iki değerdir (zigzag her zaman bir değere sahip olmadığından). Yani bir göstergenin son iki değerini okumalısınız:

  int n , i ;
  double zag , zig ;
i = 0 ;
while ( n < 2 )
{
   if ( zig > 0 ) zag = zig ;
   zig = iCustom ( NULL , 0 , " ZigZag " , 0 , i ) ;
   if ( zig > 0 ) n += 1 ;
   i ++;
}
şimdi iki numaranız var zig -- son değer ve zag -- bundan önceki değer
if(zag>zig) göstergesi aşağıyı gösteriyor
if(zig>zag) göstergesi belirir

zolero
 
zolero :
Tek istediğim, EA'mın zikzak göstergesinin hangi yöne (YUKARI VEYA AŞAĞI) işaret ettiğini bilmesini sağlamak. BUNU YAPMAK İÇİN NASIL GİDERİM?
Muhtemelen bilmek istersiniz son iki değerdir (zigzag her zaman bir değere sahip olmadığından). Yani bir göstergenin son iki değerini okumalısınız:

  int n , i ;
  double zag , zig ;
i = 0 ;
while ( n < 2 )
{
   if ( zig > 0 ) zag = zig ;
   zig = iCustom ( NULL , 0 , " ZigZag " , 0 , i ) ;
   if ( zig > 0 ) n += 1 ;
   i ++;
}
şimdi iki numaranız var zig -- son değer ve zag -- bundan önceki değer
if(zag>zig) göstergesi aşağıyı gösteriyor
if(zig>zag) göstergesi belirir

zolero

TEŞEKKÜRLER, anladım, bir cazibe gibi çalışıyor
 
c0d3 :
zolero :
Tek istediğim, EA'mın zikzak göstergesinin hangi yöne (YUKARI VEYA AŞAĞI) işaret ettiğini bilmesini sağlamak. BUNU YAPMAK İÇİN NASIL GİDERİM?
Muhtemelen bilmek istersiniz son iki değerdir (zigzag her zaman bir değere sahip olmadığından). Yani bir göstergenin son iki değerini okumalısınız:

  int n , i ;
  double zag , zig ;
i = 0 ;
while ( n < 2 )
{
   if ( zig > 0 ) zag = zig ;
   zig = iCustom ( NULL , 0 , " ZigZag " , 0 , i ) ;
   if ( zig > 0 ) n += 1 ;
   i ++;
}
şimdi iki numaranız var zig -- son değer ve zag -- bundan önceki değer
if(zag>zig) göstergesi aşağıyı gösteriyor
if(zig>zag) göstergesi belirir

zolero

TEŞEKKÜRLER, anladım, bir cazibe gibi çalışıyor





TEST ETTİKTEN SONRA,



if(zag<zig) göstergesi aşağıyı gösteriyor
if(zig<zag) göstergesi belirir


DOĞRU OLDUĞUNU DÜŞÜNÜYORUM, (zag>zig), (zig>zag) İLE KARŞI YÖN VERDİK

 
c0d3 :
DOĞRU OLDUĞUNU DÜŞÜNÜYORUM, (zag>zig), (zig>zag) İLE KARŞI YÖN VERDİK

Grafikte zaten son satıra bakıyordum. bu, son satırın aşağı [veya yukarı] baktığı anlamına gelir. Bu, şu anda yukarı [veya aşağı] hareketin beklendiği anlamına gelmelidir. Ancak bunu yukarı veya aşağı sinyal olarak almakta küçük bir sorun var: zikzak kendini yeniden çizebilir [ve genellikle yapar]. bu, iki nokta arasındaki çizgi güneyi gösteriyorsa (1.2900'den 1.2850'ye) fiyatın yükseldiği anlamına gelmez. Muhtemelen yükselecek, ancak bazı hareketlerden sonra yeni bir düşüş hattınız olması (1.2900'den 1.2820'ye) vb. için büyük bir şans var. Demek istediğim, grafikte bir çizgiye sahip olmak, bu yönde hareketin bittiği anlamına gelmez.
 
  
int n, ben; çift zag, zig;
i=0;
süre(n<2)
{
if(zig>0) zag=zig;
zig=iCustom(NULL, 0, "ZigZag", 0, i);
if(zig>0) n+=1;
ben++;
}
 

&nbint n, i; çift zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; ben++; }sp;int n, ben; çift zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; ben++; }

 
Yanlış sinyal ile ne demek istediğimi göstermek için biraz zikzak kodunu değiştirdim. Dedikleri gibi: Bir resim 1000'den fazla kelime anlatabilir....


Kırmızı çizgi orijinal zikzaktır ve en iyi anlarda aşağıdan yukarıya ve tekrar tekrar gider... en azından böyle görünüyor. Ancak bir adet kodlıyorsanız, o zaman her biri sarı çizgiye yakın sinyaller alır. çok hızlı hack yaptığım için daha da kötü olabilir...
kod, bir sonraki satır çizilene kadar yukarı veya aşağı satırı yeniden çiziyor ve bu nedenle, kırmızı bir çizgi elde edene kadar adım adım sarı çizgiyi değiştirerek (maksimum ve minimum değerleri silerek) ...
 
Neden: