MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 627
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
Bir işlem için marjın nasıl hesaplanacağını söyleyebilir misiniz?
İki yaklaşım denedi
(0.1 * Ask*MarketInfo(Symbol(),MODE_LOTSIZE))/AccountInfoInteger(ACCOUNT_LEVERAGE)
Ve bunun gibi
FreeMarginCheck=AccountFreeMarginCheck(Symbol(),OP_BUY,0.1);
double val=AccountFreeMargin()-FreeMarginCheck;
Birincisi, mevduat para birimi USD ise EURJPY'de garip sonuçlar verir. Formüle bir şey eklemeniz mi gerekiyor?
İkincisi de her seferinde çalışır, sonra doğru değerleri verir, sonra biraz saçmalık (depozitoya bağlıdır)
ikinci seçenek, marjı hesaplamanın doğru yoludur veya daha doğrusu, sipariş verildikten sonra val değişkeninde serbest marjın değerini alırsınız ve FreeMarginCheck değişkeni, marjin değerini içerir.
ikinci seçenek, marjı hesaplamanın doğru yoludur veya daha doğrusu, sipariş verildikten sonra val değişkeninde serbest marjın değerini alırsınız ve FreeMarginCheck değişkeni, marjin değerini içerir.
Elbette?
HesapSerbestMarjKontrol
Cari hesapta cari fiyattan belirtilen emir açıldıktan sonra kalacak serbest teminat tutarını döndürür.
Ayrıca bir nüans var:
Karşı işlemler açıksa, yani. hesapta tam veya eksik bir kilit varsa, işlev yanlış değerler verebilir.
Elbette?
evet haklısın aynen şöyle:
Cari hesapta cari fiyattan belirtilen emir açıldıktan sonra kalacak serbest teminat tutarını döndürür .
açık anlaşmalar hakkında, kontrol etmeniz gerekiyor, hatırlamıyorum, ancak büyük olasılıkla terminalin yazdıklarının hesaplanan verilerle birleşmesi gerekir: tüm semboller için her bir anlaşma yönündeki (AL / SAT) toplam lot sayısı, ardından arayın her sembol
AccountFreeMarginCheck() her yönde lotları geçiyor ve bu sonuçları topluyor
bugün piyasa çalışıyor, bunu kontrol etmek zor değil, bunun gibi bir şey:
Selamlar, işlevlerde neyin yanlış olduğunu söyle? İşlev, duraklama başlangıcı ve duraklama bitiş parametrelerinde zamana göre bir ticaret duraklaması gerçekleştirir.
Nedense, işlev, TimeCurrent belirtilmiş olmasına rağmen, aracının sunucusundan değil, bilgisayardan zamanı okur. Genel olarak, bir duraklama sırasında işlemler kapatılır, yani işlev çalışmaz.
Selamlar, işlevlerde neyin yanlış olduğunu söyle? İşlev, duraklatma başlangıcı ve duraklatma bitiş parametrelerinde zamana göre bir ticaret duraklaması gerçekleştirir.
Nedense, işlev, TimeCurrent belirtilmiş olmasına rağmen, aracının sunucusundan değil, bilgisayardan zamanı okur. Genel olarak, bir duraklama sırasında işlemler kapatılır, yani işlev çalışmaz.
TimeStart ve StrToTime'ı (TimeStart) yazdırın;
sonra TimeCurrent ( ) yazdırmasını kaldırın
TimeStart'ta tam tarih saat biçimine sahip değilsiniz , daha doğrusu, danışman başlatıldığında saat her zaman geçerli gün, ay ve yıl olacak ve sonra değişecek mi?
peki, küresel olarak... alım satım saat ve dakikalarını belirlemek için, saat ve dakikaları sunucu saatinin saat ve dakikalarıyla karşılaştırmanız gerekir, yalnızca sunucu zamanının belirtilenden daha büyük olduğu gerçeğini karşılaştırırsınız.
Not: Kafanızın karışmaması için, datetime'ı aslında olduğu gibi bir int olarak hayal edebilirsiniz ve 2 datetime'ı karşılaştırarak 2 int'yi karşılaştırırsınız.
PSPS:
Belki kodunuz işe yarar, şunu denemeniz gerekir:
Genelde şöyle düşünürüm:
int h = TimeHour(TimeCurrent());
int m = TimeMinute(TimeCurrent());
ve ardından danışmanın ayarlarıyla karşılaştırın
Teşekkür ederim, anlamaya çalışacağım, sadece acemiyim), || yerine && seçeneğiyle Henüz online bakmayı denemedim, bu arada bu kod test cihazında çalışıyor, terminalden zamanı okuyor, bir duraklama sırasında siparişlerin kapanması yok, ancak çevrimiçi olarak her şey farklı.
Merhaba! Terminal, strateji test cihazında başlamıyor. Tarihi ayarladım, örneğin (2017.04.01 - 2018.05.29), starta basıyorum, hemen stop veriyor. Günlük şunları söylüyor,
TestGenerator: 2017.04.01'den 2018.05.29'a kadar 'EURUSD30' geçmiş verisi yok. Ve böylece herhangi bir segmentte. Bilgisayar çalışıyor, biraz işlevsel olabileceğini düşündüm. Ev bilgisayarında, aynı şey, yeniden başlatma yardımcı olmuyor, ancak bir süre duracak, başlıyor. Danışman marketten indirildi, deneme sürümü. nedenini bilen varsa söylesin?
Merhaba! Terminal, strateji test cihazında başlamıyor. Tarihi ayarladım, örneğin (2017.04.01 - 2018.05.29), starta basıyorum, hemen stop veriyor. Günlük şunları söylüyor,
TestGenerator: 2017.04.01'den 2018.05.29'a kadar 'EURUSD30' geçmiş verisi yok. Ve böylece herhangi bir segmentte. Bilgisayar çalışıyor, yeterli ajan olmayabileceğini düşündüm. Ev bilgisayarında, aynı şey, yeniden başlatma yardımcı olmuyor, ancak bir süre duracak, başlıyor. Danışman marketten indirildi, deneme sürümü. nedenini bilen varsa söylesin?
Bir testçi gibi görünüyorsunuz ve tarihsel veri olmadığını yazıyor, F2'ye basın ve geçmişi yükleyin, ardından terminali yeniden başlatın
Merhaba! Terminal, strateji test cihazında başlamıyor. Tarihi ayarladım, örneğin (2017.04.01 - 2018.05.29), starta basıyorum, hemen stop veriyor. Günlük şunları söylüyor,
TestGenerator: 2017.04.01'den 2018.05.29'a kadar 'EURUSD30' geçmiş verisi yok. Ve böylece herhangi bir segmentte. Bilgisayar çalışıyor, yeterli ajan olmayabileceğini düşündüm. Ev bilgisayarında, aynı şey, yeniden başlatma yardımcı olmuyor, ancak bir süre duracak, başlıyor. Danışman marketten indirildi, deneme sürümü. nedenini bilen varsa söylesin?
hiçbir tarih verisi hiçbir şey söylemiyor mu?
Bir testçi gibi görünüyorsunuz ve tarihsel veri olmadığını yazıyor, F2'ye basın ve geçmişi yükleyin, ardından terminali yeniden başlatın
Teşekkür ederim! Deneyeceğim. Ve terminali güncellemek bir şekilde etkileyebilir mi? Güncellenip güncellenmediği gerçeği, kendisi bu konuda rapor vermesine rağmen......