Geri test sırasında bulunan sorunlar ve temel nedeni bulamıyor! - sayfa 4

 
GumRai :

kapalı çubuklarda ilk çalıştırmada mevcut çubukta yaptığından farklı hesaplamalara izin verecektir.

Yeni bir çubuğun ilk işaretinde yapacağı şey,

Aynı çubuğun sonraki kenelerinde hesaplayacaktır

Hangisi bir tür bileşik

Sevgili GumRai,

Mevcut çubuk, Bar[0] yeniden boyama için gereklidir. Yani konu tarihi çubukların yeniden boyanarak gözlemlenmesi, belki Bar[8],..Bar[3],.. veya Bar[1] ile ilgili.

Göstergenin ana içeriği için yalnızca yaklaşık 10 satırlık kod olduğunu görebilirsiniz.

Ancak tarihi barların yeniden boyanmasının temel nedenini bulmak bizim için hala çok zor.

Bu çok garip ve tarihi çubukların bu kodla nasıl yeniden boyanabileceği konusunda kafam karıştı.

 

Dediğim gibi, gösterge, aynı çubuğun bir önceki tıkında hesaplanan bir değeri kullanarak her tikte çubuğu[0] yeniden hesaplıyor.

Test cihazı çalışırken, gösterge gerçekte grafikte olmasa bile, gösterge sözde gerçek zamanlı olarak hesaplayacaktır.

Test cihazı bittiğinde, gösterge grafiğe eklenir ve çubuk başına yalnızca bir kez hesaplandığından tüm onay işaretlerini dikkate almadığına inanıyorum.

Göstergeyi grafikte görsel modda koyarak deneyin.

 
jollydragon :

Sevgili ffoorr, sayfaları açamıyorum ve siteye erişemiyorum, www.forex-tsd.com. Belki internet yapılandırmamda bir sorun vardır.

Lütfen koduma odaklanalım. Ana içerik için sadece yaklaşık 10 satır kod var.

Ancak tarihi barların yeniden boyanmasının temel nedenini bulmak bizim için hala çok zor.


TSD'deki sayfa numarasına erişmek için yakınlaştırmayı azaltın,


gösterge daha iyi

 
GumRai :

Dediğim gibi, gösterge, aynı çubuğun bir önceki tıkında hesaplanan bir değeri kullanarak her tikte çubuğu[0] yeniden hesaplıyor.

Göstergeyi grafikte görsel modda koyarak deneyin.

GumRai, lütfen önceki gönderilerime bakın:

. Bar[0]'ın gerektiği gibi yeniden boyanması sorun değil.

. Bu ileti dizisi için konu veya sorun tam olarak bar[0]'ın solundaki tarihi çubukların neden yeniden boyandığı ve bunun beklenmediğidir. Zaten grafiklerde gözlemledim ve ekran görüntülerini zaten yapıştırdım.

Sevgili herkes, lütfen kodlarıma odaklanalım ve kök nedeni ortaya çıkararak birlikte kendimizi geliştirelim. Daha iyi bir göstergeye ihtiyacım yok ama temel nedeni bilmek istiyorum!

Anlayışınız ve desteğiniz için teşekkürler.

 

Sana söylediklerimi anlamıyor gibisin.

Kendimi iyi anlatamadığımdan mı yoksa yazılarımı doğru okumadığınızdan mı bilmiyorum.

Göstergeyi yeniden başlattığınızda, tüm gösterge çubuk başına bir onay işaretine göre yeniden hesaplanırken, gerçek zamanlı olarak tek bir çubukta birden çok işarete dayalıdır.

Bu nedenle, gösterge gerçek zamanlı olarak çizilir ve ardından yeniden başlatılırsa, farklılıklar olacaktır.

 
GumRai :

Sana söylediklerimi anlamıyor gibisin.

Kendimi iyi anlatamadığımdan mı yoksa yazılarımı doğru okumadığınızdan mı bilmiyorum.

Göstergeyi yeniden başlattığınızda, tüm gösterge çubuk başına bir onay işaretine göre yeniden hesaplanırken, gerçek zamanlı olarak tek bir çubukta birden çok işarete dayalıdır.

Bu nedenle, gösterge gerçek zamanlı olarak çizilir ve ardından yeniden başlatılırsa, farklılıklar olacaktır.

İngilizcenin benim ana dilim olmadığını söylediğim için üzgünüm.

Yeniden başlatma sırasında veya gerçek zamanlı olarak çizilmesi fark etmeksizin, her geçmiş çubuk, son onay işaretine göre hesaplanır.

Bu nedenle tarihi bar aynı şekilde dondurulmalıdır. Doğru? Göstergeyi bir süre M1 ile canlı bir grafikte izlerseniz, fark veya yeniden boyama nasıl gözlemlenebilir?

 
Görünüşe göre bu basit bir sorun değil ve birçok kodlama uzmanının kapasitesinin dışında.
 

Bana basit bir sorun gibi geliyor, sadece cevabı anlamıyorsun.

Ekteki kodu deneyin, umarım ne olduğunu görebilirsiniz.

Az önce gösterge çizim döngüsünü değiştirdim

   for (i=limit- 1 ; i>= 0 ; i--)
     {
      ExtBuffer1[i]= 1.1 *Fish1;
      Fish1=ExtBuffer1[i];
       if (Fish1>= EMPTY_VALUE )
         Fish1= 1 ;
     }

ve Fish1 için başlangıç değeri

Fish1= 0.00001 ;

Normal keneler ile bir M1 grafiğinde çalıştırın. Çeşitli zirvelerin oluştuğunu göreceksiniz.

Göstergeyi yeniden başlattığınızda tüm bu tepe noktalarının kaybolduğunu göreceksiniz.

Ayrıca, çok iyi olmayan bir internet bağlantınız varsa ve bir çubuğu kaçırırsa, tüm gösterge yeniden hesaplanır, böylece tepe noktaları kaybolur

Nedenini görüyor musun?

Dosyalar:
 
GumRai :

Pekala, bana basit bir konu gibi geliyor, sadece cevabı anlamıyorsun.

Ekteki kodu deneyin, umarım ne olduğunu görebilirsiniz.

Az önce gösterge çizim döngüsünü değiştirdim

ve Fish1 için başlangıç değeri

Normal keneler ile bir M1 grafiğinde çalıştırın. Çeşitli zirvelerin oluştuğunu göreceksiniz.

Göstergeyi yeniden başlattığınızda tüm bu tepe noktalarının kaybolduğunu göreceksiniz.

Ayrıca, çok iyi olmayan bir internet bağlantınız varsa ve bir çubuğu kaçırırsa, tüm gösterge yeniden hesaplanır, böylece tepe noktaları kaybolur

Nedenini görüyor musun?

Sevgili GumRai,

Demek istediğimi anladın gibi görünüyor.

Lütfen aşağıdaki ekran görüntülerine bakın. Göstergenize sağ tıklayıp "yenile" yi seçtikten sonra tepe noktalarının yeri değişti.

Ancak, nedenini hala göremiyorum. Bu yüzden yeniden boyama göstergemde temel nedeni bulamıyorum.

. Değiştirdiğiniz göstergeye göre, üstel bir çizgi çizmesi gerektiğini anlıyorum. Neden aralıklarla tepe noktaları çiziyor? "Boş değer" olduğu için mi?

. Yenilemeden sonra zirvelerin konumu neden değişiyor?

. Hala zirvelerin kayboluşunu göremiyorum. Nasıl "yeniden başlatılır"?

Yenilemeden önce:

Yenilendikten sonra:

 
jollydragon : Yine de nedenini anlayamıyorum. Bu yüzden yeniden boyama göstergemde temel nedeni bulamıyorum.

   for (i=limit- 1 ; i>= 0 ; i--)
     {
      ExtBuffer1[i]= 1.1 *Fish1;
      Fish1=ExtBuffer1[i];
       if (Fish1>= EMPTY_VALUE )
         Fish1= 1 ;
     }

Her yineleme için (ilk hariç), Fish1 önceki arabellek öğesinin değeridir, ancak bunu ExtBuffer1[limit] olarak başlatmazsınız.

Bu nedenle, ilk yineleme için (limit == çubuk olduğunda) ExtBuffer1[0] = 1.1* ExtBuffer1[1] olarak ayarlayın .

Ancak sonraki onaylar için (sınır == 1 olduğunda) ExtBuffer1[0] = 1.1* 0.00001 olarak ayarlayın.