MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1171

 
Igor Zakharov :

hikaye çıkmaza girer mi?

Muhtemelen evet. Ama %100 emin değilim. Nasıl kontrol edilir, Baskılar çubuk sayısını değiştirir mi?

İgor Zaharov :

bu dava için yeniden hesaplamanız yok

Teşekkürler, öyle görünüyor.

İgor Zaharov :

ve ortaya çıkan gösterge arabelleklerinin yeni öğeleri çöple doldurulur.

Görünüşe göre sadece yenileri değil, eskileri de var. Bazı nedenlerden dolayı, bu durumda, yalnızca oklar rastgele çizilmez, aynı zamanda teorik olarak olmamasına rağmen gösterge çizgisinin kendisi de kırılır. Lütfen geçmişin değiştirilmesi durumunda yeniden hesaplamanın nasıl organize edileceğini veya bir örneğe nereye bakılacağını söyleyin.

 
Alexey Viktorov :

Bu eklentiyi ayrı olarak eklediğim için hata yaptım. Oklar yalnızca arabellek değiştirilirken ayarlanmalıdır. Aynı zamanda, diğer tüm durumlarda, arabelleğe boş bir değer koymayı unutmayın.

Bu şekilde daha da iyi: hemen boş bir değer ayarlayın ve eğilim değiştiğinde arabelleklerden birini bir okla doldurun.

Cevap için teşekkürler.

Orijinal göstergeyi kontrol ettim ve onu mahvetmediğim ortaya çıktı, ancak başlangıçta çarpık yazılmış. Onlar. ve benim değişikliklerim olmadan, geçmişi değiştirirken de bozuluyor.

 
Zaten birçok kez bu - bir soru sordu ve yanıt olarak sessizlik. Yeni gelenler için bazı seçici yardım.
 
novichok2018 :
Zaten birçok kez - bir soru sordu ve yanıt olarak sessizlik. Yeni gelenler için bazı seçici yardım.

Kodunuzda ilk göze çarpan şey, LowLine ismiyle bir grafik trend çizgisi nesnesi oluşturup daha sonra silmemeniz ya da başka isimlerle benzer nesneler oluşturmamanız...

ObjectCreate()'i aynı adla birkaç kez çalıştıramazsınız - yalnızca ilk kez çalışır, ardından bir hata olur, bu nesneyi daha sonra ObjectMove() kullanarak taşıyabilirsiniz


hala fraktalların tanımıyla ilgili bir sorun var, 2 numaralı çubukta bir fraktal bulmak için çevrimiçi bir çubuk açmaya çalışıyorsunuz, genellikle fraktal gösterge çağrısı ile çubuklar arasında dolaşıyorlar ve ilk fraktal bulunduğunda döngüyü kesiyorlar ve fraktalın bulunduğu çubuğun numarasını al

 
Igor Makanu :

hala fraktalların tanımıyla ilgili bir sorun var, 2 numaralı çubukta bir fraktal bulmak için çevrimiçi bir çubuk açmaya çalışıyorsunuz, genellikle fraktal gösterge çağrısı ile çubuklar arasında dolaşıyorlar ve ilk fraktal bulunduğunda döngüyü kesiyorlar ve fraktalın bulunduğu çubuğun numarasını al

Teşekkür ederim!

Gerçekten de, fraktalın göründüğü çubukların numaralarını nasıl alacağımı anlamıyorum, çünkü iki çubuk geç görünüyor. Bu yüzden onu ikinci barda yakaladım. Aynı zamanda uyarı, belirtilen periyottaki fraktalların sayısını verir, ancak ikinci fraktalın bir trend çizgisi çizmek için noktası nasıl ayarlanır? Tavsiyenize göre nasıl yapılacağı da belli değil.

Çağrılan fraktal gösterge , mevcut tüm geçmiş üzerinde fraktallar oluşturur. Günün belirli bir periyoduna denk gelen fraktallardan yola çıkarak bir önceki günün fraktallarını dikkate alarak trend çizgisi çizme ve son fraktal üzerinden çizgiyi otomatik olarak yeniden oluşturma problemini çözmeye çalışıyorum. Ve bilgi eksikliği var.

 
novichok2018 :

Teşekkür ederim!

Gerçekten de, fraktalın göründüğü çubukların numaralarını nasıl alacağımı anlamıyorum, çünkü iki çubuk geç görünüyor. Bu yüzden onu ikinci barda yakaladım. Aynı zamanda uyarı, belirtilen periyottaki fraktalların sayısını verir, ancak ikinci fraktalın bir trend çizgisi çizmek için noktası nasıl ayarlanır? Tavsiyenize göre nasıl yapılacağı da belli değil.

Çağrılan fraktal gösterge , mevcut tüm geçmiş üzerinde fraktallar oluşturur. Günün belirli bir periyoduna denk gelen fraktallardan yola çıkarak bir önceki günün fraktallarını dikkate alarak trend çizgisi çizme ve son fraktal üzerinden çizgiyi otomatik olarak yeniden oluşturma problemini çözmeye çalışıyorum. Ve bilgi eksikliği var.

İKİNCİ çubuğu yakalamanız gerektiğine emin misiniz?

İşte testler:

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL5: Örnekler.

Vladimir Karputov , 2018.03.19 05:54

  • 2.3. iFraktallar (Fraktallar). Dikkate alınması gereken iki önemli faktör

Fraktallarla çalışırken dikkate alınması gereken iki faktör vardır:

faktör bir

"rates_total-5" ile "rates_total-3" arasındaki çubuklardaki fraktal artık yeniden çizilemez - bu, " Fractals.mq5 " göstergesinin tasarımından kaynaklanır (göstergenin açık kodu [veri klasörü]\MQL5\ içinde bulunur Göstergeler\Örnekler\Fractals.mq5 ) - "rates_total-5" ve "rates_total-3" arasındaki çubuklar zaten oluşturulmuş olduğundan

 //---
   if (prev_calculated< 7 )
     {
      limit= 2 ;
       //--- clean up arrays
       ArrayInitialize (ExtUpperBuffer, EMPTY_VALUE );
       ArrayInitialize (ExtLowerBuffer, EMPTY_VALUE );
     }
   else limit=rates_total- 5 ;

   for (i=limit; i<rates_total- 3 && ! IsStopped ();i++)
     {
       //---- Upper Fractal
       if (high[i]>high[i+ 1 ] && high[i]>high[i+ 2 ] && high[i]>=high[i- 1 ] && high[i]>=high[i- 2 ])
         ExtUpperBuffer[i]=high[i];
       else ExtUpperBuffer[i]= EMPTY_VALUE ;

       //---- Lower Fractal
       if (low[i]<low[i+ 1 ] && low[i]<low[i+ 2 ] && low[i]<=low[i- 1 ] && low[i]<=low[i- 2 ])
         ExtLowerBuffer[i]=low[i];
       else ExtLowerBuffer[i]= EMPTY_VALUE ;
     }
//--- OnCalculate done. Return new prev_calculated.
   return (rates_total);
  }

fraktallar

Pirinç. 1. "Fraktallar" göstergesi bu şekilde çalışır. " Fractals.mq5 " göstergesine dayalı dosya numaralandırma

Bu, EA'daki iFractals göstergesinden veri aldığımızda, "rates_total-5", "rates_total-4" çubuklarında bir fraktal olacağı anlamına gelir ("Fractals.mq5" göstergesinin konumundan çubuk numaralandırma), yeniden çizilmemesi garanti edilir.


Ve işte "rates_total-5" çubuğunda fraktalın oluştuğu an - 2 Ocak 2016 03:00'in sağında yeni bir çubuğun göründüğü an ("Fractals.mq5 konumundan dosya numaralandırması" " gösterge) :

Fraktallar, 5 bar

Pirinç. 2. Fraktalın "rates_total-5" çubuğunda oluşturulduğu an

faktör iki

Fraktal gösterge "0.0" değil, boş bir değer olarak EMPTY_VALUE kullanır. Bir istisna, gösterge arabellekleri sıfıra başlatıldığında ilk başlatmadır (bu, "Fractals.mq5" göstergesi tarafından değil, bir dizi oluşturulurken ve gösterge arabelleğine bağlanırken MQL5 tarafından yapılır).


 
novichok2018 :

Tavsiyenize göre nasıl yapılacağı da belli değil.

burada bir fraktal bulmak için bir fonksiyon belirledim, bunu sadece bir danışman için yaptım, her şey benim için çalıştı

https://www.mql5.com/ru/forum/160683/page968#comment_13214633

 
Vladimir Karputov :

İKİNCİ çubuğu yakalamanız gerektiğine emin misiniz?

İşte testler:


Evet teşekkür ederim. Üçüncüde yeniden çizmeden. Ancak bu, sorunun özünü değiştirmez.

 
Igor Makanu :

burada bir fraktal bulmak için bir fonksiyon belirledim, bunu sadece bir danışman için yaptım, her şey benim için çalıştı

https://www.mql5.com/ru/forum/160683/page968#comment_13214633

Teşekkürler Çalışıyor.

Sadece kodda yeni bir fraktalın görünümünü nasıl yansıtacağımı anlamıyorum. Sonuçta, barfrup_1 her zaman barfrup_2'den küçüktür, bu nedenle yeni bir fraktal göründüğünde barfrup_1 numaralandırmasındaki atlama hiçbir şey vermez, çünkü barfrup_2'den daha az kalır.

Ve bir şey daha: barfrup_1 ve barfrup_2 için yüksek değerleri nasıl çıkaracağımı anlamıyorum.

 
novichok2018 :

Ve bir şey daha: barfrup_1 ve barfrup_2 için yüksek değerleri nasıl çıkaracağımı anlamıyorum.

Bu işlevle tabloya bir fraktal gösterge ve bir test EA bırakın

ve bulunan değerleri MODE_UPPER ve MODE_LOWER'ı işlevime geçirerek yazdırın

novichok2018 :

Teşekkürler Çalışıyor.

Sadece kodda yeni bir fraktalın görünümünü nasıl yansıtacağımı anlamıyorum.

Bar zamanını hatırlamanız gerekir, yeni bir bar göründüğünde numaralandırma değişecektir ve bar açılış zamanı her zaman sabittir.

onlar. kodumu çalıştır, fraktalın bulunduğu çubuğun zamanını hatırla, sonra tekrar çalıştır - çubuğu bul ve bu çubuğun zamanını ezberlenmiş olanla karşılaştır - zaman farklı, yani bu yeni bir fraktal

Neden: