Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Hacim için önemli basamak sayısını hesaplamak için hazır bir kodu olan var mı?
SymbolInfoInteger(_Symbol, SYMBOL_DIGITS) gibi bir şey, ancak yalnızca hacim için.
Örneğin, SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP ) = "1.0" durumunda - cevap "0", "0.1" - "1", "0.01" - "2" vb.
Ben nüansı açıklığa kavuşturacağım. Hacim adımı türü için "0.1", "0.01", "0.001" var.
Kod aşağıdaki durumlar için çalışmalıdır, örneğin "0.2", "0.11", 0.023" vb.
Belirli bir hacim yok . Her şey için var.
Fragmanı kontrol etmek için komut dosyası.Fragmanı kontrol etmek için komut dosyası.
bundan bahsediyorsun... ve sipariş vermeden önce izin verilen miktarı kontrol etmen gerektiğini düşündüm.
;)
Neye ihtiyacı olduğunu gerçekten bilmiyorum.. Bakalım, sanırım abonelikten çıkacak. Ve ben - bir telepatide eğitiyorum. ;)
Hacim için önemli basamak sayısını hesaplamak için hazır bir kodu olan var mı?
SymbolInfoInteger(_Symbol, SYMBOL_DIGITS) gibi bir şey, ancak yalnızca hacim için.
Örneğin, SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP ) = "1.0" durumunda - cevap "0", "0.1" - "1", "0.01" - "2" vb.
Ben nüansı açıklığa kavuşturacağım. Hacim adımı türü için "0.1", "0.01", "0.001" var.
Kod aşağıdaki durumlar için çalışmalıdır, örneğin "0.2", "0.11", 0.023" vb.
Özellikle ciltler için şunları yapabilirsiniz:
sergeev
MetaSürücü
Valmarlar
İyi formüle edilmiş bir soru, cevabın yarısıdır. :) Üzgünüm, zaten yatağa gittim, sorunu yanlış tanımladım. Tekrar deneyeceğim.
Normalleştirilmiş bir hacmi bir ticaret emrine aktarmaktan bahsediyoruz.
Fiyat ile nasıl yaparız:
Fiyat normalizasyonu ("fiyat") - Sanırım herkes anlıyor.
Bir zamanlar (MT4'ten beri), MT makalelerinde bir yerde, hacmin de normalleştirilmesinin istendiğini okudu.
Uygulama #2 .Aslında, aracının koşulları altında mümkün olan hacmin en küçük basamağını bulmak için GetVolumeDigits( string Symbol ) işlevini yazdım. En az iki uygulaması vardır (sonuç aynıdır):
Uygulama #1 .
Her iki seçenek de minimum adımın = 1.0, 0.1, 0.01, 0.001 vb. olduğu durumlarda harika çalışır. Onlar. min adım 1.0 ise, fonksiyon 0 döndürür; 0.1 adımında, işlev 1 değerini döndürür ve bu böyle devam eder.
Minimum adım, örneğin 1.1 veya 0.11 veya 0.011 ise ne olur? Bu algoritma yanlış olarak en az anlamlı basamağı gösterecektir.
Elbette pratikte böyle bir durumun olmadığı söylenebilir. EA'da böyle bir varsayımsal olasılığı hesaba katmak istedim. Belki birileri bu nüanstaki deneyimlerini paylaşabilir diye düşündüm...
Normalleştirilmiş bir hacmi bir ticaret emrine aktarmaktan bahsediyoruz.
EA'da böyle bir varsayımsal olasılığı hesaba katmak istedim.
ve hangi "varsayımsal" araçtan bahsediyoruz?
1. MetaDriver seçeneği size uygun. CountSignedDigits , herhangi bir lottaki işaretlerin sayısını gösterecektir.
2. Dig karakter sayısını bilerek, aşağıdaki gibi normalize edebilirsiniz:
sergeev
Partinin geçerliliğini kontrol etme işlevi için teşekkür ederiz. Benzer bir yapı/dallanma çek kullanıyorum.
Sorum, üzerinde normalleştirme yapmak için partideki en az anlamlı basamağı belirlemeye odaklanıyor.
Özellikle, MetaDriver "her şey" için kendi tasarımını sağladı. :) Ancak, hatasız değil (veya derleyicim hatalı). Kod ve sonuç aşağıdadır:
Sonuç:
Sonraki seçenek (CountSignedDigits işlevi aynıdır):
Sonuç:
OnStart'ta aşağıdaki satırı değiştirdi:
Sonuç:
Ya yanlış bir şey yapıyorum (lütfen beni düzeltin) ya da saygıdeğer MetaDriver teoride bir hata yaptı (algoritmayı tasarlarken ).
Sorum, üzerinde normalleştirme yapmak için partideki en az anlamlı basamağı belirlemeye odaklanıyor.
Bir ticaret talebinin aktarımı sırasında lot değişkenine (onbirinci ondalık basamakta) çöp girse bile, terminalin kendisi tarafından filtrelenmesi gerekecektir.
En azından, bu tasarımı kullanarak birkaç yıldır herhangi bir sorun yaşamadım.
Ve güvenli oynamak istiyorsanız, normalleştirmeyi sekizinci (bir kenar boşluğu ile) ondalık basamağa kadar yapıştırabilirsiniz - "doğru" normalleştirme çöpünden sonra ortaya çıkarsa, o zaman çok daha fazla olacaktır.