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
MarketInfo(Symbol(),MODE_MARGININIT) = SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL)
O halde MODE_MARGINREQUIRED'e ne karşılık gelir? Veya başka türlü, satın almak için 1 lot açmak için gereken serbest marj miktarını nasıl öğrenebilirim?
Mql5'in yaratıcılarından Hareketli Ortalama.mq5 EA'da lotlar aşağıdaki gibi hesaplanır
MaximumRisk neden bu kadar küçük (%0,02) ve lot hesaplanırken 1000'e bölünüyor? Bu 1000 neyi temsil ediyor? Belki 1000 = %100 ile çarpılan 1 lot satın almak için gerekli ücretsiz fon (%0,02'yi 0,0002'lik bir kesire dönüştürmek için)? Yani, 1 lot alımı için ücretsiz fon 10$'a eşittir (10$x100%=1000). Doğru yönde mi düşünüyorsun?
Ve bir soru daha. Maksimum açık emir sayısında bir sınır var mı?
O halde MODE_MARGINREQUIRED'e ne karşılık gelir? Veya başka türlü, satın almak için 1 lot açmak için gereken ücretsiz fon miktarını nasıl öğrenebilirim?
Ve bir soru daha. Maksimum açık emir sayısında bir sınır var mı?
Bu soruyu sordum.
İşte geliştiricilerin yanıtı:
bakmak
SYMBOL_TRADE_CONTRACT_SIZE
Ticaret sözleşmesi boyutu
çift
ve
SYMBOL_CURRENCY_MARGIN
Teminatın hesaplandığı para birimi
sicim
Anladığım kadarıyla hesaplamak zorunda kalacaksın
gpwr :
Mql5'in yaratıcılarından Hareketli Ortalama.mq5 EA'da lotlar aşağıdaki gibi hesaplanır
MaximumRisk neden bu kadar küçük (%0,02) ve lot hesaplanırken 1000'e bölünüyor? Bu 1000 neyi temsil ediyor? Belki 1000 = %100 ile çarpılan 1 lot satın almak için gerekli ücretsiz fon (%0,02'yi 0,0002'lik bir kesire dönüştürmek için)? Yani, 1 lot alımı için ücretsiz fon 10$'a eşittir (10$x100%=1000). Doğru yönde mi düşünüyorsun?
Ve bir soru daha. Maksimum açık emir sayısında bir sınır var mı?
Bu satır riski , serbest marjın %2'si olarak hesaplar. eğer doğru anladıysam. Bu miktarın neden tam olarak 1000'e bölündüğü geliştiricilere kalmış.
Ama eğer doğru anladıysam, o zaman 20.000$'lık bir depozitoyla (ücretsiz fonlar), danışman açılış için bu miktarın (400$) %2'sinden fazlasını almamanızı tavsiye ediyor.
Bu miktarı 1000'e bölerek mantıksal olarak çok fazla 0,4 elde ederiz...
gpwr :
Maksimum açık emir sayısında bir sınır var mı?
Bu satır, riski serbest marjın %2'si olarak hesaplar. eğer doğru anladıysam. Bu miktarın neden tam olarak 1000'e bölündüğü geliştiricilere kalmış.
Ama eğer doğru anladıysam, o zaman 20.000$'lık bir depozitoyla (ücretsiz fonlar), danışman açılış için bu miktarın (400$) %2'sinden fazlasını almamanızı tavsiye ediyor.
Bu miktarı 1000'e bölerek mantıksal olarak çok fazla 0,4 elde ederiz...
Şimdi anladım. Hareketli Ortalama .mq5 kodunda yazım hatası var. Yerine
İhtiyaç
O zaman lotları hesaplamada 1000'e bölme anlaşılabilir: 100.000$(lot boyutu)/100(kaldıraç) = 1000. Her ne kadar mql5 geliştiricileri böyle bir EA örneği oluşturmak istemezlerse de. değiştirmek gerekiyor
Üzerinde
Ve hatta daha iyi
MODE_MARGINREQUIRED'in eskimiş olması üzücü olsa da. Belki geliştiriciler, hesaplama sayısını azaltmak için bu parametreyi geri yükleyecektir.
Kısa adlar her zaman yalnızca gösterge alt penceresinde görüntülenmek için kullanılmıştır.
Hata raporlarımı doğru yerde yayınlıyor muyum bilmiyorum. Değilse, lütfen beni düzeltin.
Expert Advisor'ı test ederken, test cihazının marjı doğru belirleyip belirlemediğini görmek için kasıtlı olarak böyle bir durum yarattım. Yani, 100 dolar depolayın. EURUSD ticareti yapıyoruz. Minimum parti büyüklüğü 0.1'dir. EA, lotları hesaplamak için bu koda sahiptir
Test cihazı aşağıdaki hataları veriyor
2010.06.08 22:28:57 Çekirdek 1 yeterli para yok [anında 1.1924'ten 0.10 EURUSD satın alın]
2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.24, NewFreeMargin: -19.24
2010.06.08 22:28:57 Çekirdek 1 1000 100
2010.06.08 22:28:57 Çekirdek 1 yeterli para yok [anında 1.19180'den 0.10 EURUSD satın al]
2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.18, NewFreeMargin: -19.18
2010.06.08 22:28:57 Çekirdek 1 1000 100
2010.06.08 22:28:57 Çekirdek 1 yeterli para yok [anında 1.19362'den 0.10 EURUSD satın alın]
2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.36, NewFreeMargin: -19.36
2010.06.08 22:28:57 Çekirdek 1 1000 100
Bu mesajlara bakılırsa, 1 lot, LotRqdMgn satın almak için gereken serbest marj 1000'dir ve bu doğru görünüyor. Serbest Marj FreeMargin=100. 0,1 lotu 1000 ile çarparız ve 100 elde ederiz. Yani 1. lotu açmak için yeterli para vardır. Ancak testçi, yeterli fon olmadığını bildiriyor. Hata nerede?
Bu mesajlara bakılırsa, 1 lot, LotRqdMgn satın almak için gereken serbest marj 1000'dir ve bu doğru görünüyor. Serbest Marj FreeMargin=100. 0.1 lotu 1000 ile çarparız ve 100 elde ederiz. Yani 1. lotu açmak için yeterli para var. Ancak testçi, yeterli fon olmadığını bildiriyor. Hata nerede?
Hata, hesaplamalarınızda marj para birimini unutmuş olmanızdır. Bakiye = 100 USD ve Marj Gereksinimleri = 100 EUR (119 USD).
Bu nedenle, işlemi gerçekleştiremezsiniz - bu doğru.
Hata, hesaplamalarınızda marj para birimini unutmuş olmanızdır. Bakiye = 100 USD ve Marj Gereksinimleri = 100 EUR (119 USD).
Bu nedenle, işlemi gerçekleştiremezsiniz - bu doğru.
Renat'a teşekkürler. Hatamı anladım. LotRqdMgn hesaplama formülü değiştirildi ve artık her şey doğru çalışıyor.
Kütüphanecilikte yeni bir kelime ya da yakınlardaki harikalar...
Kütüphaneyi kullanan bir danışman oluşturdum, kontrol ettim, her şey çalışıyor. Expert Advisor, bu kitaplık ve birkaç MQL5 ve MQH dosyası içeren bir arşiv oluşturdum. Arşivi testler için müşteriye verdim.
Ve hepsi bir şey olmayacaktı, ama başka bir terminalde testler yapmaya karar verdim. Bu yüzden bu arşivi açtım ve hemen şimdi (10 kez) çizelgeye bir uzman eklemek istedim...
Ve terminal günlüğünde şu iki satır yazılır:
2010.06.10 09:54:51 Experts Expert MechanicalTrading-Infinity-2010 (EURUSD,Günlük) kaldırıldı
2010.06.10 09:54:51 Uzmanlar MechanicalTrading-Infinity-2010 (EURUSD,Günlük) yüklemesi başarısız oldu
Neyin ve nasıl çalıştığını (ya da daha doğrusu işe yaramadığını) anlamaya başladım ve kendim için harika bir gerçeği keşfettim - Terminal, derlenmiş kitaplığı dizinde (* .ex5 biçiminde) görüyor, ancak aynı zamanda inatla “ıslatıyor”, anladığınız gibi pek iyi değil...
Bu davranışın olası nedenlerini sıraladıktan sonra, terminal orijinal dosyayı (*.mq5 biçiminde) kitaplığın bulunduğu dizine yerleştirmeye karar verdi. dosyayı, derlemeden bile yerleştirdi. Tabloya bir Uzman Danışman eklemeye çalıştım - işte ve işte, her şey işe yaradı.
Oyun ilerledikçe aklıma bir takım sorular geldi:
1. Kitaplık yalnızca .ex5 olarak sunuluyorsa EA neden çalışmıyor?
2. Terminal neden bu dosyayı dizinden kaldırıyor?
3. Terminal günlüğünde neden yukarıdakilerin tümü hakkında net bir yorum yok?
4. Belgeler neden böyle bir davranışın olasılığından bahsetmiyor?
ve son olarak beşinci ve son soru - tüm bunlarla nasıl başa çıkılır ve neyi yanlış yapıyorum (belki terminalde bir EX5 dosyası eksiktir ve başlık veya kitaplığın kendisi gibi bir şey arıyordur)?
not
Bu arada, aynı çöp EA'nın kendisine de oluyor, *.ex5 dosyası kalıcı olarak siliniyor... :(