Gösterge Sorusu - sayfa 5

 
Ah son bir soru

EA'larda kullanılabilecek göstergeleri oluştururken ileri mi yoksa geri mi saymak daha tipiktir?

Biri diğerinden daha fazla sorun mu yaratıyor yoksa sadece bir tercih ve tasarım meselesi mi?

Tavsiye lütfen

teşekkürler

 
Arada bir şu makaleye bir göz atın: https://www.mql5.com/en/articles/1456 biraz göz korkutucu olabilir ama yavaş yavaş devam edin, anladığınızda öğrenmiş olacaksınız. Göstergeler, EA'lar ve farklılıkları.
 
Agent86 :
Ah son bir soru

EA'larda kullanılabilecek göstergeleri oluştururken ileri mi yoksa geri mi saymak daha tipiktir?

Biri diğerinden daha fazla sorun mu yaratıyor yoksa sadece bir tercih ve tasarım meselesi mi?

Tipik olarak, gördüğüm Göstergelerin çoğu i++ sayıyor, benim düşünceme göre bu yanlış. . . soldan sağa bir tablo oluşur, eski mumlar solda yenileri sağda. Bir Gösterge bir grafikteki eski çubukları işlediğinde (böylece en güncel çubukları işlemeye başlayabilir), bunu canlı veriler üzerinde çalışma şeklini temsil edecek şekilde yapması gerekmez mi?

Teknik Göstergeler benim işim değil, mecburiyetten onlarla tanışmak zorunda kaldım, ancak onlarla olan deneyimim az, daha deneyimli insanlardan başka cevapları da memnuniyetle karşılarım.

 

genellikle, gerçek ticaret sırasında endişelendiğim kadarıyla, geçmişte çok uzakta olan tüm çubuk fiyatları oldukça alakasız. Herhangi bir çerçevede, sadece belki de son zamanlardakilerden birkaçı.

Bu bağlamda, yeterince iyiyse, göstergenin mantığını, iCustom'u çağırmak ve arabellekleri okumak vb. yerine, EA'nın doğrudan kullanabileceği bir işleve veya lib'e 'aktarırım'. Bu sorunlu konular olabilir, unutmayın.

Bu yüzden, benim için iyi bir gösterge, tam da bunu yapmama izin veren bir göstergedir.

 
Sanırım her birini deneyeceğim ama bana öyle geliyor ki 0'dan ileriye doğru artırmayı tercih ederim, ancak standart göstergeler nasıl artıyor?

Bir EA'da yararlı bir şey için iFractals kullanmak isteseydim, sinyal doğal olarak oluşuyor gibi görünüyor; ve önceki bir iFractal'e zamanında geri dönmek isteseydim, o zaman önceki bir iFractal'a geçişi i++ yapardım

Ama insanların EA'larını gördüğümde ve grafiklerde göstergeler var. Ekledikleri iCustom göstergelerini ve göstergelerini mi kullanıyorlar yoksa bu genellikle EA'nın kendisine mi koyuluyor ve EA'yı açtığınızda bu otomatik olarak mı oluyor?

hepsini çözmeye çalışıyorum

 
RaptorUK :
Arada bir şu makaleye bir göz atın: https://www.mql5.com/en/articles/1456 biraz göz korkutucu olabilir ama yavaş yavaş devam edin, anladığınızda öğrenmiş olacaksınız. Göstergeler, EA'lar ve farklılıkları.
teşekkür edeceğim.

Sadece devam etmem gerekiyor, gerçekten mücadele etmeye devam etmek istemiyorum ama MQL4 ile ilgili her şeyi öğrenmeyi tercih ederim, böylece kendi fikirlerimi kodlayabilir ve kod tabanına biraz katkıda bulunabilirim.

tekrar okumaya devam edeceğim teşekkürler
 
Merhaba

Birisi bu kodu doğru değerlendirip değerlendirmediğimi onaylayabilir mi?

Baskı ifadem önceki iFractal'a mı atıfta bulunuyor?

 //maybe something like this to count back to the previous iFractal for reference
//needs work     
     for (i= 0 ; val1==val3; i++)
      {
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
      val3= iFractals ( NULL , 0 , MODE_UPPER, 0 );
       if (val1 > 0 )
         {
         Print (val1, " = val1" );
         }
        }
Şimdiye kadar sınırlı bilgimle düşünebildiğim tek şey bu.

Her neyse, gerçekten burada yarattığım şey buysa, önceki iFractal'a geri dönmek için bu yöntemle yanlış bir şey var mı?

Söyleyebileceklerimden teoride doğru görünüyor mu?

Tavsiye lütfen

teşekkürler

 

Bir iFractal aldığınızda değer > 0'dır, evet ?

Örneğin, son UPPER ve LOWER iFraktallerin nerede olduğunu bilmek istiyorsanız, bunun gibi bir şey yapın. . .

val1 = 0 ; val2 = 0 ; i = 0 ;

while ( val1== 0 && val2== 0 )
   {
   if ( iFractals ( NULL , 0 , MODE_UPPER,i) > 0 && val1== 0 ) val1 = i;
   if ( iFractals ( NULL , 0 , MODE_LOWER,i) > 0 && val2== 0 ) val2 = i;
   i++;
   }
Print ( "Last UPPER Fractal at " , val1, " Last LOWER Fractal at " , val2);
 
for (i= 0 ; val1==val3; i++) <--- val1==val3??? This is indeed, "tricky"
        {
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
      val3= iFractals ( NULL , 0 , MODE_UPPER, 0 );
       if (val1 > 0 )
         {
         Print (val1, " = val1" );
         }
        }

Dürüst olmak gerekirse, döngü sonlandırma koşulu için bunu ilk kez görüyorum. Zor olanı...

 

Bana harika görünüyor... Tek yapman gereken back-tester'da test etmek. İşte bunu nasıl yapardım.

 void start(){
   double val1= 0 ,val3= 0 ;
   for ( int i= 0 ; i<= 3 ; i++){
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
      val3= iFractals ( NULL , 0 , MODE_UPPER, 0 );
       if (val1>val3){
         Print ( "Value_1=" +val1+ " TimeOf_Fractal=" + TimeToStr ( TimeCurrent ()));
         break ;
      }
   }
}

Fraktalların nasıl oluştuğunu hatırlayamıyorum. Üçüncü çubukta oluştuğuna inanıyorum. Ve ondan önceki ve sonraki iki çubuğu dikkate alır.

Yukarıdaki kodu bir EA olarak kaydedin ve kısa bir geriye dönük test çalıştırın. Onaylamak için göstergeyi geriye dönük test çizelgesine ekleyebilirsiniz.

İşte aldıklarım:

 2011.10 . 06 06 : 38 : 49      2011.01 . 02 23 : 00   De_Bugger EURUSD,M1: Value_1= 1.33710000 TimeOf_Fractal= 2011.01 . 02 23 : 00
Neden: