MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1257
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Bu kodu OnInit'te değil, OnTick()'te yazmanız gerekir.
izin verilmedi
Şablonların nasıl çalıştığını açıklayamam.... peki, nasıl - böyle bir işleve bir çağrı gelene kadar, derleyici bunun varlığı hakkında hiçbir şey bilmez (çoğu zaman eğer yoksa derleme hatası bile yoktur). aramak)
o zaman böyle bir şablon işlevi çağırırsınız ve derleyici gerekli türleri değiştirir ve ancak o zaman her şeyin doğru çalışıp çalışmadığını kontrol eder.
ve sonra başka tür parametrelerle başka bir şablon çağrısı yaparsınız - ve derleyici yeni bir işlev oluşturur, yani. bir tane daha, yani aslında, aynı şeyi 2 kez, ancak farklı türde parametrelerle 2 fonksiyon yazmışsınız gibi
eee böyle)))
UPD:
yapabilirsiniz, ancak şablondaki türler eşleşirse, işte bir örnek, düzgün çalışıyor:
Teşekkürler, rıhtımdakinden bile daha net) Şablondaki değişkenlerin önceden tanımlanmasının, onları belirtmemeyi mümkün kılmadığı ortaya çıktı. Bir dosyaya yazdırmam gerekiyor. Günlük, kayıtların bölünmesine izin vermez. Yazık ki 5 dergi yok.) Sonuç olarak, şablonlar, değişken tipini istenen türe atmamayı mümkün kılar, bu şablon işlevi içinde yapılabilir, ancak değişken sayısı tam olarak belirtilmelidir. İstenen türde önceden tanımlanmış değişkenlere sahip basit bir işlev, çağrıldığında daha az değişken belirtmeyi mümkün kılar, ancak değişken türleri istenen türe dönüştürülmelidir. Tabii bu arama yaparken de yapılabilir ama kayıt çok uzun.
Herkese iyi günler!
Durdurma kaybı değiştirme işlevi yaptı. Ancak çalışırken EURUSD,H1: OrderModify hatası 130 veriyor.
Üstelik fiyat, stop loss'un olması gereken yerden çok uzak.
işte fonksiyonun kendisi:
Şu şekilde deneyin:
Teşekkürler, işe yaradı!
ama iki nokta daha:
1 MEVCUT haftanın Cuma günü açılan siparişlerin kapanmaması ve önceki haftaların Cuma günleri kapanmaması için sırasıyla hangi koşul eklenir?
2 kodun nasıl düzeltileceği - OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(nameSym,MODE_ASK),MarketInfo(nameSym,MODE_DIGITS)),3,CLR_NONE);
"tür dönüşümü nedeniyle olası veri kaybı " uyarısını kaldırmak için? "...MarketInfo(nameSym,MODE_DIGITS))" bölümünde görmekle ilgilidir.
Lütfen bana söyle.
Test cihazında GetAmountLotFromOpenPos lot toplama fonksiyonunun dönüş değeri -1717986918 değerini veriyor, nasıl düzeltebilirim?
Nedenini buldum. OrderModify'a OrderProft() değil, OrderTakeProfit() koymak gerekliydi. biraz baktı.
Yine de yardım için teşekkürler.
Teşekkürler, işe yaradı!
ama iki nokta daha:
1 MEVCUT haftanın Cuma günü açılan siparişlerin kapanmaması ve önceki haftaların Cuma günleri kapanmaması için sırasıyla hangi koşul eklenir?
2 kodun nasıl düzeltileceği - OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(nameSym,MODE_ASK),MarketInfo(nameSym,MODE_DIGITS)),3,CLR_NONE);
"tür dönüşümü nedeniyle olası veri kaybı " uyarısını kaldırmak için? "...MarketInfo(nameSym,MODE_DIGITS))" bölümünde görmekle ilgilidir.
İlk soru için aşağıdaki işlevi yapmanız gerekir:
{Print("Sipariş seçiminde hata oluştu ", GetLastError());}
İkinci soru için şöyle görünmelidir:
OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(MarketInfo(nameSym,MODE_ASK)), 3, clrNONE);
İyi şanlar.