Küçük Para Yönetimi Göstergesi, yeni MQL4 tarafından mahvoldu - sayfa 3

 
mar :

angevoyageur, sanırım bu gönderiyi benden görmedin:

Mart 2014.04.02 08:16 #

Haklısın.. Bundan kaçamam. :-)

"Demek istediğim, SL hesaplamasına geçmeden önce güncellemenin tamamlanmasını bekleyebilir miyim? Sorun şu ki, SL'ye rastgele bir değer veremem çünkü o zaman tüm gösterge işe yaramaz. Bu yüzden kontrol etmek istiyorum. 4066 hatası için ve oluşursa, bir şekilde beklemek ve devam etmeden önce tekrar kontrol etmek istiyorum."

Orada, tavsiyeyi takip edemediğimi ve bu çözüme geldiğim için qjol'un bana ne tavsiye ettiğini kesinlikle kontrol ettiğimi görebilirsiniz.

Hayır yapmıyorsun, qjol şunu yazdı:

bu yüzden sıfır bölmeden kaçınmanız durumunda değişkenlerden birinin 0'a eşit olup olmadığını kontrol etmelisiniz.

Ve bundan sonra sıfır bölme hatası rapor ediyorsunuz. Ama istediğin gibi.

 
mar :

Başka bir örnek:

MetaTrader'ı açarsanız sonuç sıfır olacaktır! Ve siz zaman çerçevesini veya çifti değiştirene kadar sıfır kalır. Bence sıfır hatayla bölme sorunu tam olarak bu. sen de düşünmüyor musun?

Bunu, gelen kenelerin olmadığı hafta sonu denediniz mi? Yorumun güncellenmeyeceğini düşünmemin tek nedeni bu.
 
GumRai :

Bunu, gelen kenelerin olmadığı hafta sonu denediniz mi? Yorumun güncellenmeyeceğini düşünmemin tek nedeni bu.

Aynı şekilde. Onay yok güncelleme yok.
 

Hayır, bugün denedim. Birçok onay geliyor, AccountBalance güncellemesi yok. Neredeyse bir dakika bekledim ama Hesap Bakiyesi hala sıfırdı.


Mesele şu ki, bu sorun son yıllarda hiç yaşanmadı. Yeni MetaTrader kullanıma sunulduğundan beri bu sorun var. Yani kodla alakası olduğunu düşünmüyorum. Bu kodun başarısız olmasına neden olan Platformun kendisinde dahili değişiklikler olmalıdır. Ve bu gösterge yalnızca bir Yorum satırıdır ve başarısız olur. Bu yüzden bir Platform/Veri sorunu olmalıdır.

 
mar :

Hayır, bugün denedim. Birçok onay geliyor, AccountBalance güncellemesi yok. Neredeyse bir dakika bekledim ama Hesap Bakiyesi hala sıfırdı.


Mesele şu ki, bu sorun son yıllarda hiç yaşanmadı. Yeni MetaTrader kullanıma sunulduğundan beri bu sorun var. Yani kodla alakası olduğunu düşünmüyorum. Bu kodun başarısız olmasına neden olan Platformun kendisinde dahili değişiklikler olmalıdır. Ve bu gösterge yalnızca bir Yorum satırıdır ve başarısız olur. Bu yüzden bir Platform/Veri sorunu olmalıdır.


Göstergenin, gönderdiğiniz kodla tam olarak aynı olduğundan emin misiniz?

Görünüşe göre init'te bir satır kodu olan ve başlangıçta olmayan bir göstergeyi kontrol ediyorsun

 

tüm sorunuzu zaten cevapladım (bu konuyla ilgili gelecekteki soruyu dahil) ama belki onları dikkatlice okumadınız, sonra tekrar yapayım


qjol :

açıkçası güncellemeden kaçınamazsınız ;-) ancak bir "sıfır bölme" durumundan kaçınmanız gerekir

bu yüzden sıfır bölmeden kaçınmanız durumunda değişkenlerden birinin 0'a eşit olup olmadığını kontrol etmelisiniz.

ve bir göstergeyi durduramayacağınız için bir şey bulmanız gerekir.


mar :


SL hesaplamasına geçmeden önce güncellemenin tamamlanmasını bekleyebilir miyim?

hayır yapamazsın (yukarıda zaten yazılı)

qjol :
ve bir göstergeyi durduramayacağınız için bir şey bulmanız gerekir.


mar :


Sorun şu ki, SL'ye rastgele bir değer veremem çünkü o zaman tüm gösterge işe yaramaz.


sana zaten bir çözüm verdim

SL = MathFloor (( iATR ( NULL , PERIOD_D1 , 7 , 0 )* MathPow ( 10 , Digits - exp )+ 1 )* 0.1 );
if (SL == 0 ) // because error 4066 (for example)
   {
   SL = Someting;
   }
lots=MoneyRisk/SL/( MarketInfo ( Symbol (), MODE_TICKVALUE )*multi);


sadece güncelleme bitene kadar rastgeledir (2-3 saniyeden fazla verme veya alma) (IMHO, bir hata mesajı almaktan daha iyidir ve gösterge hiç çalışmayacaktır)

başka bir çözümünüz varsa kullanmaktan çekinmeyin, iznime gerek yok ;-)


mar :


D1 dışında istediğiniz zaman dilimine geçin. Ardından göstergeyi grafiğinize sürükleyin. Sonuç yukarıdaki gibi bir hata olacaktır. Bana öyle geliyor ki, eksik GÜNLÜK VERİLER nedeniyle günlük grafiğin ATR(5)'i doğru değil. D1 zaman diliminde "taze" bir grafik açmak hiçbir soruna neden olmaz. Ve başka bir zaman dilimine geçtiğinizde, ATR(5) doğru olduğu için bu da iyidir. D1 tablosunda kaldığım sürece herhangi bir çifte geçebileceğimi fark ettim. Ancak MetaTrader günlük verileri almadığı sürece D1 dışındaki zaman dilimlerinde başka çiftlere geçmek sorun yaratır. Şimdi sorum şu, D1 olmayan bir zaman diliminde yeni bir grafik açtığımda ATR hesaplamamın doğru olduğuna dair günlük verileri nasıl alabilirim?


çünkü iATR kullanıyorsunuz .. PERIOD_D1 ve tekrar ... Günlük çiftinin güncellemeyi bitirmesini beklemeniz gerekiyor (çevirmeli bağlantı kullanmıyorsanız 2-3 saniye)

 

qjol, birçok yanlış anlaşılma için özür dilerim! Şimdi , sıfıra bölme ortadan kalktığı için göstergeyi bazı rastgele verilerle beslememi söylediğinizi anlıyorum. Ayrıca bir veri güncellemesinden sonra göstergenin doğru değeri kullandığı gerçeğini de düşünmedim. Aptal olduğum için üzgünüm... :D

Ama yine de soru hala açık: neden daha önce işe yaradı? Yeni MetaTrader'da yanlış olan ne?

 
mar :


Ama yine de soru hala açık: neden daha önce işe yaradı? Yeni MetaTrader'ın nesi var?


eski veya yeni MT4 ile ilgili değil, göstergelerin nasıl çalıştığı ve yürütüldüğü ile ilgili
göstergeler " bekleyemez " olduğundan ve hemen yürütüldüğünden
ancak, şu anda iATR ... PERIOD_D1 için veriniz yok. 0'a eşit
bu yüzden sıfır bölme elde edersiniz
 
Bu benim için kesinlikle açık. Ancak bu göstergeyi oldukça uzun bir süredir kullanıyorum ve eksik verilerle veya bunun gibi şeylerle ilgili hiçbir zaman veri sorunu yaşamadım. MT4'ün build-625 sürümünü ilk kullandığımda bunun neden olduğunu merak ediyorum.
 
mar :

Hayır, bugün denedim. Birçok onay geliyor, AccountBalance güncellemesi yok. Neredeyse bir dakika bekledim ama Hesap Bakiyesi hala sıfırdı.


Mesele şu ki, bu sorun son yıllarda hiç yaşanmadı. Yeni MetaTrader kullanıma sunulduğundan beri bu sorun var. Yani kodla alakası olduğunu düşünmüyorum. Bu kodun başarısız olmasına neden olan Platformun kendisinde dahili değişiklikler olmalıdır. Ve bu gösterge yalnızca bir Yorum satırıdır ve başarısız olur. Bu yüzden bir Platform/Veri sorunu olmalıdır.

Göstergenin, gönderdiğiniz kodla tam olarak aynı olduğundan emin misiniz?

Görünüşe göre init'te bir satır kodu olan ve başlangıçta olmayan bir göstergeyi kontrol ediyorsun