Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Bu basit sorunu çözmek için günlerinizi harcamak istiyorsanız, elbette çekinmeyin. . . . yapmazdım.
Sırt testiniz sırasında ne zaman olduğunu biliyorsanız, bulmak kolaydır. . . Geri teste, olduğu tarihten bir gün önce başlayın. . . tam olarak, ne zaman olacağını dakikasına öğrenin. . . kodunuzdaki tüm bölümler için. . . evet, hepsi, böleni yazdıran bölümü ve söz konusu kod satırına bir referansı içeren satırın önüne bir Print() ekleyin. . .
Örneğin:
Kodunuz sıfıra bölme hatasıyla sona erdiğinde, günlük dosyasını kontrol edin ve son birkaç baskıda, hatayı üreten kod satırını ve hangi değişkenin sıfıra ayarlandığını gösteren baskı olacaktır. . .
. . . daha akıllı çalışmayı öğrenin ve sorunlarınızı mantıklı ve verimli bir şekilde araştırın.
Bununla nasıl başa çıkacağım konusunda bana yardım ettiğiniz ve bana doğru yönde işaret ettiğiniz için teşekkür ederiz! Sorunu buldum (uzun bir süre sonra her yerde baskıları tokatlarken!)
Aslında, komisyoncumun (ILQ) kavramsal bir besleme kullanması ve bu forumun bir üyesinin bu konudaki yardımından kaynaklanıyor. Özetle bu aşağıdaki koddur - ILQ ile 1 birim kadar düşük işlem yapabilirsiniz. MT4 işlem penceresinde istediğiniz kesin birim boyutunu (yani 0.01 || 874 birim) koyabilirsiniz.
Oku koyduğum yerde bu formülün hangi kısmının yanlış gittiğini anlamama yardım edebilir misiniz? Baktığım yerden matematik iyi görünüyor?
Bununla nasıl başa çıkacağım konusunda bana yardım ettiğiniz ve bana doğru yönde işaret ettiğiniz için teşekkür ederiz! Sorunu buldum (her yere baskıları tokatlarken uzun süre harcadıktan sonra!)
Aslında, komisyoncumun (ILQ) kavramsal bir besleme kullanması ve bu forumun bir üyesinin bu konudaki yardımından kaynaklanıyor. Özetle bu aşağıdaki koddur - ILQ ile 1 birim kadar düşük işlem yapabilirsiniz. MT4 işlem penceresinde istediğiniz kesin birim boyutunu (yani 0.01 || 874 birim) koyabilirsiniz.
Oku koyduğum yerde bu formülün hangi kısmının yanlış gittiğini anlamama yardım edebilir misiniz? Baktığım yerden matematik iyi görünüyor?
Tamam, alternatif parti büyüklüğü hesaplamasıyla ilgili diğer konunuzu kısaca okudum, ancak yeterince ayrıntılı değil, ancak genel olarak bu sorunu çözmek için yapabileceğim şey bu. . .
Soruna neden olan nedir? ts? televizyon ? ya da her ikisi de ? herhangi biri 0.0 ise, o zaman ts ve tv'nin çarpımı 0.0 olacaktır. . . bt yalnızca biri ara sıra 0.0 olarak döndürülüyorsa, sorunu yalnızca biriyle çözmeniz gerekir. . .
TickSize değişmeyecek (bildiğim kadarıyla). . . okumaya devam etmenize gerek yok, init() içinde okuyun, ancak döndürülen 0.0 değeri almadığınızı kontrol edin veya isterseniz okumaya devam edin, ancak yalnızca 0.0 değilse döndürülenleri kullanın.
TickValue değişebilir, ancak asla 0.0 olmamalıdır, bu yüzden okursanız ve 0.0 ise, değerini güncellemeyin. . . veya tekrar deneyin ve ardından güncelleyin.
Bu roket bilimi değil . . .
Bunu neden sormaya devam etmen gerektiğini anlamıyorum, basit sağduyu sana Raptor'un az önce söylediğini yapmanı söylemeli. Bu ortaya çıkarsa, sorun ts*tv değil, bölücü olarak kullanılan diğer tüm değişkenleri yazdırın.
@SDC - Bunu zaten yaptım lol? Nereden geldiğini zaten belirledim, tek söylediğim, parti boyutlandırma formülünün bana iyi göründüğü ve bir şeyleri gözden kaçırıp kaçırmadığımı görmek için kodu gönderdim.
Kodda, neyin "0" veya sıfır bölme yazdırdığını belirten "<<<<" olduğunu fark edeceksiniz ....
@ RaptorUK - teşekkürler dostum, bunu kırdığın için teşekkür ederim. Sanırım söylediklerinizi nasıl çözeceğimi biliyorum - birazdan onunla oynayacağım ve sorunun çözüldüğünü onaylamak için geri bildireceğim :)
"Statik çift tv = 0;" kullanmayı denedim ve ardından "int init" içinde onay değerini atamak ve ardından "tv==0" ise her yeni H1 mumunda bu statik çifti güncelleyin, ancak yine de "0"dan yüksek bir şey üretmeyecek mi? Söz konusu döviz çifti GBPJPY'dir (Bunun tamamı Strateji Test Aracı'ndadır )
Yavaş davranıyorsam özür dilerim...?
Tamam, "0" döndüren "TickValue".
"Statik çift tv = 0;" kullanmayı denedim ve ardından "int init" içinde onay değerini atamak ve ardından "tv==0" ise her yeni H1 mumunda bu statik çifti güncelleyin, ancak yine de "0"dan yüksek bir şey üretmeyecek mi? Söz konusu döviz çifti GBPJPY'dir (Bunun tamamı Strateji Test Aracı'ndadır)
Yavaş davranıyorsam özür dilerim...?
Üzgünüm, temelde her iki yolu da denediğimi söylemek istedim. Bu yüzden sadece "tv = MarketInfo(Symbol(), MODE_TICKVALUE);" yapmayı denedim. "int init" bölümünde... (ve "static double tv = 0;")
Temelde kene değeri her zaman "0" mı? (Elbette benim için yazdırdım!)
Aynı şekilde, EURUSD'de geriye dönük teste geçtiğimde, onay değeri de bana "0" diyor, ancak 2001-2013 arası sıfır bölme hatası olmadan tüm geriye dönük testi başarıyla çalıştırmayı başarıyor?
GÜNCELLEME: Bu yüzden, çok temelli beslemeye sahip canlı piyasalarda normal bir komisyoncu üzerinde bir test yaptım ve onay değeri > 0 rakamı döndürüyordu. Ancak, aynı betiği aynı canlı piyasa komisyoncusuna bıraktığımda kavramsal besleme, onay değeri "0" olarak mı döndürüldü? Kavramsal besleme seçeneğini kullanırken (1 birim kadar düşük ticaret) bu parti boyutlandırma hatasını nasıl aştığım hakkında bir fikriniz var mı?
Üzgünüm, temelde her iki yolu da denediğimi söylemek istedim. Bu yüzden sadece "tv = MarketInfo(Symbol(), MODE_TICKVALUE);" yapmayı denedim. "int init" bölümünde... (ve "static double tv = 0;")
Temelde kene değeri her zaman "0" mı? (Elbette benim için yazdırdım!)
Aynı şekilde, EURUSD'de geriye dönük teste geçtiğimde, onay değeri de bana "0" diyor, ancak 2001-2013 arası sıfır bölme hatası olmadan tüm geriye dönük testi başarıyla çalıştırmayı başarıyor?
Göstermiş olduğunuz koddan. . . gösterdiğiniz işlevi çağırmadığınız sürece bu mümkün değildir. . .
TICKVALUE her zaman 0.0 ise tv 0.0'dır, yani ts * tv = 0.0 yani her zaman sıfıra bölme hatası alırsınız. . .
Terminaliniz Broker'ınıza bağlı mı? yoksa bağlantısız olarak mı çalışıyorsunuz?
Yaptığım bu videonun (40 saniye kadar) neden bahsettiğimi gösterdiğini umuyorum (açıklayıp açıklamadığımdan emin değilim).
Video: http://screencast.com/t/uMHY5DpM
Senaryoyu canlı grafiğe (gerçek hesap) bıraktığımda ilk kısımda, tik değeri ve kene boyutunun lot penceresinde (birimler) gösterdiğim o "kavramsal hesap"ta "0" döndürdüğünü göreceksiniz.
İkinci kısım aynı broker ile ama lot bazlı feed'de ve bu sefer bir tick değeri ve tick boyutu döndürüyor. Yine lot kullanarak işlem yaptığınızı gösteriyorum....
Dolayısıyla strateji test cihazıyla ilgili olarak, neden çalıştığı ve bazen çalışmadığı hakkında hiçbir fikrim yok. Ben de geriye dönük testleri çalıştırırken hesap bağlandı (bir demo kavramsal beslenen hesapta (birimler)).
Bir sonraki sorum şu olurdu, eğer bu kavramsal federal hesaptan alacağım tipik yanıt buysa, bu durumda pozisyon boyutlandırma hesaplamamı nasıl düzeltebileceğimi önerebilir misiniz? Çok temelli bir besleme için mükemmel çalışıyor... Bunu biraz daha iyi açıklar mı?
Tamam, "0" döndüren "TickValue".
"Statik çift tv = 0;" kullanmayı denedim ve ardından "int init" içinde onay değerini atamak ve ardından "tv==0" ise her yeni H1 mumunda bu statik çifti güncelleyin, ancak yine de "0"dan yüksek bir şey üretmeyecek mi? Söz konusu döviz çifti GBPJPY'dir (Bunun tamamı Strateji Test Aracı'ndadır)
Yavaş davranıyorsam özür dilerim...?
TickValue'u nasıl yazdırıyorsunuz?
GBPJPY'deki Rakamlar genellikle 3 olduğundan, yeterli ondalık basamak olmadığından TickValue'nin sıfır yazdırıyor olması oldukça olasıdır.
Kesinlikle emin olmak için, basılan ondalık sayıları genişletmek bir fikir olabilir.
Bunu not et
pips_to_bsl sıfırsa da sıfırla sonuçlanır. Mümkün mü?