MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1252
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
Herkese iyi günler!
MT-4 test cihazındaki algoritmayı mql4 kullanarak test ediyorum. Teklif fiyatını 5 (beş) ondalık basamakla günlüğe kaydetmek için Print() işlevine ihtiyacım var. Ve nedense sadece 4 (dört) karakter gösteriyor. Varsa hatamı nasıl düzelteceğimi söyleyin.
İşte kodum.
}
Aynı zamanda, Print() 'i kullanarak emri açma ve kapama fiyatını (SL ve TP'ye göre ) yazdırırsanız, Print() fiyatı 5 (beş) karakterle yazdırır.
Yardımlarınız için hepinize teşekkür ederim.
NormalizeDouble() yerine DoubleToString( )
Sana kararımı beğenmediğimi söyledim.
tekrar yazmak için çok tembel
google "dizi kopyaları bul" - Sanırım bir şey var
NormalizeDouble() yerine DoubleToString( )
Bilgilendirme desteğiniz için çok teşekkür ederim.
TimeToStruct() kullanın
https://www.mql5.com/ru/docs/dateandtime/timetostruct
TimeToStruct() kullanın
https://www.mql5.com/ru/docs/dateandtime/timetostruct
Evet, mt4'te var
mt4'te çalışıyor
mt4'te çalışıyor
Başarılı bir şekilde tetiklenirse true dönen bu yapıdan pozisyonun açıldığı dakikanın değerini nasıl öğreneceğim hala net değil ...
tarihsaat o_open = OrderOpenTime();
MqlDateTime dt_struct;
TimeToStruct( o_open, dt_struct);
int min = dt_struct. dk;
Zor değilse, lütfen gösterge arabelleği verilerini okumaya çalışırken neyin yanlış olduğunu anlamama yardım edin.
İşte danışmandan gelen kod:
if (IsTesting()) { Trend = GlobalVariableGet(GV_tradesTrend); TrendUP = iCustom(NULL,0,"Used\\# Once Trades Trend",3,0); TrendDN = iCustom(NULL,0,"Used\\# Once Trades Trend",4,0); if (TrendUP>0) {Trend=1; GlobalVariableSet(GV_tradesTrend,1);} if (TrendDN>0) {Trend=-1;GlobalVariableSet(GV_tradesTrend,-1);} if (Trend==1) {GlobalVariableSet(GV_Trend,1);} if (Trend==-1) {GlobalVariableSet(GV_Trend,-1);} if (Trend==0) {GlobalVariableSet(GV_Trend,0);} } else { Trend = GetLastTrendChange(); if (Trend==1) {GlobalVariableSet(GV_Trend,1);} if (Trend==-1) {GlobalVariableSet(GV_Trend,-1);} if (Trend==0) {GlobalVariableSet(GV_Trend,0);} }Gerçek hayatta ve testlerde, fonksiyon aracılığıyla son değeri aramak işe yarar, ancak test feci şekilde yavaşlar (yarı yıl testi birkaç gün sürer).
Bu nedenle, test etmek için bir ikame kullanmaya ve son değeri global bir değişkende saklamaya karar verdim - EA arabellek verilerini görmeyi bıraktı. Üstelik boş tamponlar 0'a eşit olmasına rağmen nedense EA değişkenleri EMPTY_VALUE değerlerini alır ve değişmez.
Ve veri penceresindeki arabellek satırının üzerine gelindiğinde araç ipucunda ilki 0 olmak üzere iki değer gösterilir, örneğin Değer 5; 0.0000; 0.8855.
Gösterge koduyla uğraşıyor olmama rağmen hiçbir şekilde çözemiyorum. İnternet aramaları ve belgeler yardımcı olmadı. Birisi bana bu göstergeye erişirken testin neden bu kadar yavaş olduğunu söyleyebilir mi?
Bana yardım et lütfen!