Gösterge bozuluyor - sayfa 5

 
Rosh :

Yolsuzluklardan kastınız nedir? Göstergenizi EURUSD M1'e yeni ekledim ve herhangi bir değer göremiyorum.


32bit istemci terminali MetaTrader 4 aynı resmi gösterir. Sağlanan göstergenin çalıştığından emin misiniz?
 
Rosh :

32bit istemci terminali MetaTrader 4 aynı resmi gösteriyor. Sağlanan göstergenin çalıştığından emin misiniz?
Örnek kodun orijinal sürümünü indirmişsiniz gibi görünüyor (zaman damgalı 2011.10.11 18:06). Bu 25 dakika boyunca hiçbir şey çizmez. init() içinde, drawTime'ı TimeCurrent() olarak ayarlar ve start() içindeki herhangi bir kodu yalnızca bir kez tetikler (drawTime + 1500 < TimeCurrent()).

2011.10.12 06:37 zaman damgalı ikinci versiyon, hemen çizime başlamalı gibi görünüyor.

Ama her neyse, problemler görünüşe göre birkaç saatliğine başlamıyor.
 
jjc :
Örnek kodun orijinal sürümünü indirmişsiniz gibi görünüyor (zaman damgalı 2011.10.11 18:06). Bu 25 dakika boyunca hiçbir şey çizmez.
Tamam bekleyeceğim
 

32bit istemci terminali MetaTrader 4 aynı resmi gösterir. Sağlanan göstergenin çalıştığından emin misiniz?

- Evet. Aynı göstergeyi 32 bitlik bir makinede de çalıştırıyorum, dün geceden beri, yaklaşık 18 saat. Sorun oluşmuyor.

Başka bir olası MT4 hatası istiyorsanız, iLow() ve iHigh() yerine Low[i] ve High[i] kullanırsanız ne olur?

- Asıl kodumda iHighest / iHigh / iLowest / iLow vb. kullanılmıştır. Karmaşıklığı azaltmak için örnek kodda High/Low kullanılmıştır.

 
RaptorUK :
Bir fikrim var . . . ama şimdi çıkmak zorundayım, Göstergeyi yeni bir çizelgeye ekledim, geri döndüğümde fikrimi test edip sonuçları göndereceğim.

Tamam, az önce döndüm, Göstergeyi ilk yüklediğimden beri grafik iyi görünüyordu. . sonra fikrimi denedim. . . Yeni verilerin indirilmesi için grafiği sağa kaydırmak için Sayfayı Yukarı Çıkardım. . ve hey presto. .

2011.10.07 19:08'de bu başlıkta önerdiğim şey buydu.

 
RaptorUK :

Tamam, az önce döndüm, Göstergeyi ilk yüklediğimden beri grafik iyi görünüyordu. . sonra fikrimi denedim. . . Yeni verilerin indirilmesi için grafiği sağa kaydırmak için Sayfayı Yukarı Çıkardım. . ve hey presto. .

Tamam, yani çubuk geçmişinin bir nedenden dolayı değiştiğini ve geri doldurulduğunu ve göstergenin etkilendiğini çünkü yalnızca ileriye doğru çekildiğini ve olağan gösterge davranışını takip etmediğini varsayıyorsunuz. IndicatorCounted() gibi şeylerin temeli?
 
jjc :
Tamam, yani çubuk geçmişinin bir nedenden dolayı değiştiğini ve geri doldurulduğunu ve göstergenin etkilendiğini çünkü yalnızca ileriye doğru çekildiğini ve olağan gösterge davranışını takip etmediğini varsayıyorsunuz. IndicatorCounted() gibi şeylerin temeli?
Son koda bakmadım. . ama evet, yazdıklarınıza benzer bir şey.
 
RaptorUK :
Son koda bakmadım. . ama evet, yazdıklarınıza benzer bir şey.

Tamam, özetle elimizde görünen şu:

* Normal bir gösterge, hangi çubuk değerlerinin "kirli" olduğunu ve (yeniden) hesaplanması gerektiğini belirlemek için IndicatorCounted() kullanır.

* Geri kaydırarak geçmişe fazladan çubuk eklediğinizde, IndicatorCounted() sıfırlanır. Bu nedenle, bu noktada normal bir gösterge tüm tarihsel değerlerini yeniden hesaplayacaktır.

* Buradaki gösterge bunu yapmaz. Aslında, IndicatorCounted()'ı yok sayar ve yalnızca ileriye doğru çizim yapar.

* Bazı nedenlerden dolayı, AnkaSoftware'in Win64 makinesi periyodik olarak eski verilerle dolum yapıyor, ancak Win32 makinesi değil. İşletim sistemi muhtemelen bu bağlamda sadece tesadüftür.

* MT4'ün eklenen yeni çubukların ışığında gösterge arabelleklerini ayarlamaması ve bunun yerine IndicatorCounted() sıfırlandığı için tüm eski değerleri yeniden hesaplamak için gösterge kodunu kullanması biraz yaramaz. (Ancak, birçok göstergeye daha eski çubuk değerlerinin eklenmesi potansiyel olarak sonraki hesaplamaları etkilediği için makul bir şekilde gerekçelendirilebilir. Örneğin, geçmişin başına fazladan bir çubuk eklerseniz, bir EMA küçük bir değerle de olsa değişecektir.)

 
jjc :

* MT4'ün eklenen yeni çubukların ışığında gösterge arabelleklerini ayarlamaması ve bunun yerine IndicatorCounted() sıfırlandığı için tüm eski değerleri yeniden hesaplamak için gösterge kodunu kullanması biraz yaramaz.

Aslında düşününce bu yanlış. MT4'ün göstergeye her şeyi yeniden hesaplamasını söylemeye çalışmasının iyi bir nedeni var ve bu senaryo burada uygulanıyor olabilir.

Diyelim ki gösterge bir süredir çalışıyor, ancak daha sonra aracıdan birden fazla çubuk için süren bir bağlantı kopuyor. Yeniden bağlantı yapıldığında MT4 bir onay işareti alacak ve en son çubuk için gösterge değerleri çizmeye başlayacaktır. Ayrı olarak, eşzamansız olarak ve daha yavaş olarak, bağlantı kesilmesi sırasında meydana gelen eksik çubuklar için geçmiş verileri alacaktır. Bunlar, çubuk geçmişinin ortasına eklenir ve bu nedenle herhangi bir normal göstergenin, en azından bağlantı kesme süresinin başlangıcından başlayarak eski değerleri yeniden çizmesi gerekir. Pratikte, MT4'ün "her şeyi yeniden çiz" yaklaşımını benimsemesi anlaşılabilir. Tek kelime oyunu, potansiyel olarak geçersizlerse MT4'ün arabellek değerlerini otomatik olarak EMPTY_VALUE olarak değiştirmesi gerekip gerekmediğidir.
 

Bu sorun YALNIZCA gösterge tabanlı mı etkiler?

Peki ya diğerleri, örneğin Yüksek[], düşük[] veya iHigh, iLow, iLowest, iBarshift, vb., vb., bildiğim ve net olmam gereken şey bu.