Ticaret ortamıyla çalışırken yaygın hatalar ve bunları ortadan kaldırmanın yolları - sayfa 3
![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
Basit bir örnek için doğru seçenek
Pozisyonda henüz emrin dikkate alınmadığı durumda daha doğru olduğunu düşünüyorum, dikkate alınmasını bekleyin.
Anlamadım.
Bu diyagram, aynı MetaQuotes- Demo'da OrderSendAsync aracılığıyla bir piyasa emri verirken, emrin gerçekleştiği veya reddedildiği ana kadar ilgili emri verme olayını yakalamanın imkansız olduğunu açıkça göstermektedir. Onlar. MT5, OrderSendAsync'in ara sonuçlarını değerlendirmek için herhangi bir basit mekanizmaya sahip değildir.
Konuyla ilgili görünüyor
Bu kodu not etmek istiyorum:
DEMO'da kusursuz çalışıyor (sonuç=istek),
ancak GERÇEK'te - sonucu elde etmek imkansızdır (sonuç=0.0). ... birkaç saniye beklemezseniz.
Konuyla ilgili görünüyor
Bu kodu not etmek istiyorum:
DEMO'da kusursuz çalışıyor (sonuç=istek),
ancak GERÇEK'te - sonucu elde etmek imkansızdır (sonuç=0.0). ... birkaç saniye beklemezseniz.
Eksik veri - günlükler, OrderSend'den sonraki yapı alanı değerleri, ticaret sunucusu adı.
Kısaca anlamı şudur: Bir piyasa emri varsa bunun da bir "pozisyon" olduğunu düşünün. Bir sarma konumu olduğu için tırnak içinde. Vurgulanan kod, kural olarak hiçbir yerde görünmez. Ancak pozisyonların yeniden açılmasını önlemenizi sağlar. Burada en ilginç olanı kırmızı ile vurgulanmıştır. Bu çipe olan ihtiyaç hemen fark edilmez.
Bir sonraki tikte bir ticaret sinyali olmayabilir. MT4 stilini kendim kullanıyorum, bu yüzden bu tür "pozisyonları" görmeden edemiyorum ve herhangi bir sorun yaşamıyorum.
Eksik veriler - günlükler, OrderSend'den sonraki yapı alanı değerleri, ticaret sunucusu adı.
2018.02.20 15:20:35.845 İşlem emri #66745055 piyasada 0.01 / 0.01 EURUSD satın al 610.625 ms'de yapıldı
2018.02.20 15:20:35.935 Ticaret anlaşması #5461453 1.23403'ten 0.01 EURUSD satın al yapıldı (66745055 numaralı siparişe göre)
2018.02.20 15:20:35.845 TestBUY (EURUSDeur,M15) retcode=10009 anlaşma=0 sipariş=66745055
İstek tamamlandıysa (10009) neden anlaşma=0
İstek tamamlandıysa (10009) neden anlaşma=0
İşte tartışma burada başladı . Tüm detaylar için linklere bakınız.
OrderSend'in kusursuz çalışması için bir çözüm var ama bu reklamcılık olacak.
Basit bir örnek için doğru seçenek
Kısaca anlamı şudur: Bir piyasa emri varsa bunun da bir "pozisyon" olduğunu düşünün. Bir sarma konumu olduğu için tırnak içinde. Vurgulanan kod, kural olarak hiçbir yerde görünmez. Ancak pozisyonların yeniden açılmasını önlemenizi sağlar. Burada en ilginç olanı kırmızı ile vurgulanmıştır. Bu çipe olan ihtiyaç hemen fark edilmez.
Gerçek şu ki, sözde kapanış piyasa emirleri var. Aynı SL/TP. Bu tür piyasa emirlerinin "pozisyon" olarak görülmeyeceği açıktır. Evet ve kendisinin kapatmak için verdiği emirler benzer. Burada vurgulanan koşul, karşılık gelen filtredir.
for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--) if ( OrderGetTicket (i) && ( OrderGetInteger ( ORDER_TYPE ) <= ORDER_TYPE_SELL ) && ! OrderGetInteger ( ORDER_POSITION_ID ) && ( OrderGetString ( ORDER_SYMBOL ) == Symb)) Res++;
PS Bu kodu buraya yapıştırın ve demo sunucusundaki sonucu kontrol edin.
İlgilenen herkesi bu konuyu tartışmaya davet ediyorum. Bu konudaki fikrim şudur:
for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--) if ( OrderGetTicket (i) && ( OrderGetInteger ( ORDER_TYPE ) <= ORDER_TYPE_SELL ) && ! OrderGetInteger ( ORDER_POSITION_ID ) && ( OrderGetString ( ORDER_SYMBOL ) == Symb)) Res++;
Bu döngü, konum kimliğine (ID sıfır) sahip olmayan bir sipariş bulunursa bir konum ekler.
Bir pozisyon daha geri döndük.
Sipariş sunucu tarafından iptal edilirse ne olur?
...
Bana öyle geliyor ki, piyasa emirlerini hesaba katarken - eğer bulunursa - örneğin, YANLIŞ_DEĞER - pozisyonlar sıfırdan az olamaz. Bu, hesaplanmamış bir piyasa emri olduğuna dair bir sinyal olacaktır. Ancak pozisyon sayısını eklemeyin.