![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
Onun pozisyonuna geç. Anavatandan uzak yabancı bir ülkede yaşam iz bırakmadan geçmez. Bir zamanlar onarılamaz bir hata yaparak misafir işçi olduğu için kendine sinirlilik, öfke var.)
Ayrı bir blok olarak if(OrderSelect(i,SELECT_BY_POS)) özel olarak seçtim. Hata ayıklama sırasında bir hata değeri döndürmek için. else {// seçim hatasını istediğiniz gibi yazın ve geri dönün, örneğin BOŞ}.
Ve piyasada seçilmiş bir emir varsa, seçiminde bir hatanın meydana geleceği bir durum düşünelim. Hadi tartışalım. hiç karşılaşmadım.
Ve doğru şekilde oluşturulmuş bir sipariş döngüsünün "yanlış" döndürebilmesinin en az bir nedenini belirtin.
Ah, Artem'in zaten sorduğunu fark etmedim, ayyy. Ama hala.
Fark ne?
Genel olarak geri dönebilir. Peki ya bazı koşullar altında, hatta bir dizi farklı koşul altında yapılan gözlemler, bunun false döndürmediğini gösterdiyse?
Bu işlevin uygulanmasının ayrıntılarını bilmiyoruz ve belgeler bununla ilgili herhangi bir "varsayım" vermiyor. Bir sonraki aracı için bir sonraki koşul kümesiyle, işlev aniden false döndürmeye başlarsa ne olur?
Nedeni/durumla ilgili sorulan soruya yine de cevap vereceğim, çünkü kolay: Sebebi, MT'nin bir sonraki sürümü yayınlandığında geliştirme ekibi tarafından yapılan bu işlevin uygulanmasındaki bir hata olabilir. Umarım bu ciddiye alınacak kadar olası bir olaydır?
Bu varsayımsal hata nedeniyle, işlevin rastgele başladığını, ancak ortalama olarak yalnızca her 5. istek için false döndürdüğünü varsayalım.
Genellikle bilmediğiniz bir şey bulamazsınız. Bu nedenle, neden olabileceğini sormak pek mantıklı değil. Bu olduğunda, nedenini açıklamak kolay olacaktır.
Ancak gelecekte neler olabileceğini bilmemek, kendinizi ona karşı savunmaktan alıkoymaz. Alınan yanlış değer nedeniyle bazı üst düzey algoritmaların çok fazla yakacak odun kıracağı ortaya çıkabilir. Değerin yanlış olduğunu bilmeyecekler.
Değer olmadığını bilirlerse ve varsa doğrudur, o zaman kendi hatalarının yokluğunda odun kırmazlar. Ve bu nedenle, değerin hesaplanmasının imkansızlığı hakkında bilgi sadece hata ayıklama modunda değil, aynı zamanda savaş modunda da verilmelidir.
örneğin bir metin dosyasından göstergeye harici veri yüklemek mümkün müdür?
Örneğin, günlük bir fiyat var ve bunun üzerine herhangi bir çizelgede, zaman diliminde bir çizgi çizmeniz mi gerekiyor?
TARİH Fiyat
04.12.2014 100.00
03.12.2014 101.12
02.12.2014 102.45
12/01/2014 103.23
28.11.2014 102.43
27.11.2014 101.90
OpenPosition() işlevini kullanma örnekleri.
1. Mevcut enstrümandan 0.1 lot satın alın
2. 0.2 lot EURUSD sat
3. 20 pip stop ile 0.12 lot USDCAD sat
4. 40 puan alarak 0.15 lot USDJPY satın alın
5. Stop 23 ile 0.1 lot GBPJPY sat ve 44 pip al
Fragmanda OpenPosition() işlevini test etmek için bir komut dosyası var. İlk 4 örnek yorumlanmıştır.Bana cevap verip vermeyeceğinizi bilmiyorum. Oturuyorum ve aptalım, Expert Advisor'ı nasıl çoklu para birimi yapacağımı bilmiyorum!
Ve doğru şekilde oluşturulmuş bir sipariş döngüsünün "yanlış" döndürebilmesinin en az bir nedenini belirtin.
Ah, Artem'in zaten sorduğunu fark etmedim, ayyy. Ama hala.
Evet Kolay!
Bir sonraki güncellemeden sonra, terminal yeniden başlatıldı ve yalnızca son gün için siparişleri göstermeye başladı. Siparişlerin geçmişi görünmüyor. İşlev bir şey döndürmelidir - hiçbir tür tarih yoktur.
Komisyoncu bazı siparişleri kaldırdı.
Ameliyathanede bir delik. Hafızanız düştü ve işlev bir çöp hafıza hücresi alır. Bu durumda, monitörde lumbago görünebilir. Veya görünmeyebilirler. Başka donanım sorunları da olabilir.
terminal yeniden başlatıldı ve sunucuyla bağlantı "kayboldu". Bir keresinde bir proxy sunucusunun arkasında AT Mt3'te oturdum. İnternet çevirmeli ağdı ve zaman ve hız açısından kesinlikle sınırlıydı ve internetin kalitesi korkunçtu. Tiklerin geldiğini görüyorum, grafik hareket ediyor. Bir sipariş açmaya çalışırken, terminal "sunucuyla bağlantı yok" gibi bir şey yazdı.
MT4'te bir sorunla karşılaştım ve hala var: Bir onay işareti geliyor ve siyah (boş) bir grafik ekranı. Sovtenik sıfıra bölme hatası veriyor ve robot çöküyor. Grafiği fare ile sürüklerseniz veya yeni bir onay işareti gelirse, her şey yolunda demektir. Bu nedenle bölme yaparken önce neye böleceğimizi kontrol ediyorum ve eğer sıfıra eşit değilse devam ediyoruz!
Sevgili KimIV, belirli bir kâra ulaşıldığında tüm pozisyonları kapatmak için fonksiyonlarınızı kullanıyorum ve bekleyen bir emrin tetiklenmesi nedeniyle kapanma sürecinde, kapalı kalmayan başka bir pozisyon göründüğünde bir durumla karşılaştım. Şimdi böyle bir durum için ek bir kontrol ve işlevinize ikinci bir çağrı ekledim. Ana kapanış döngüsünün bitiminden sonra işlevin içine böyle bir iyileştirme getirmeye değer mi sizce?
Bunlar ClosePosBySortLots() ve ClosePositions() işlevleridir;
Bekleyen siparişleri silmek , ayrıca çevrimiçi ve geçmiş testleri için fonksiyon kodları vardır - https://forum.mql4.com/en/38949#434195
testler ve çevrimiçi arasındaki farkın ne olduğunu açıklayabilir misiniz?