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
Doldurulması gereken alanlar farklı mı?
SYMBOL_TRADE_EXECUTION_CHANGE
Exchange yürütme
alanlarından
SYMBOL_TRADE_EXECUTION_MARKET
Piyasa yürütme
???
yardımda sadece pazar için bir örnek var
Piyasa yürütme
Piyasa Yürütme modunda (piyasada işlem emirlerinin yürütülme modu) bir pozisyon açmak için bir işlem emri. 5 alan gereklidir:
Sihir ve yorum alanlarını da ayarlayabilirsiniz.
Belgeleri okudum, forumu aradım ... Kafam tamamen karıştı . Lütfen sakıncası yoksa N+1 kez açıklayınız.
1. OrderSend kullanarak bir ticaret talebi gönderirim. Bu işlev true değerini döndürür.
2. Yeniden kodu analiz edin ( MqlTradeResult ). Değişken, TRADE_RETCODE_DONE değerine sahiptir.
Bu durum, siparişin sunucuda fiilen yürütülmesini garanti ediyor mu? Yoksa OnTrade, OnTradeTransaction'da herhangi bir kontrol yapılması hala gerekli mi? O zaman işe yaramazsa neden ret kodunu analiz ediyorsun?
Onlar. OrderSend Async () kullanılırken OnTrade, OnTradeTransaction ihtiyacı benim için açık.
OrderSend() işlevini kullanırken bunlara ihtiyaç var mı? Sonraki EA kodunun yürütülmesine geçmeden önce sunucuda bir emrin yürütülmesini/reddedilmesini koşulsuz olarak bekler mi?
...
OrderSend() kullanırken bunlara ihtiyaç var mı? Sonraki EA kodunun yürütülmesine geçmeden önce sunucuda bir emrin yürütülmesini/reddedilmesini koşulsuz olarak bekler mi?
OrderSend yanılmıyorsam emrin gerçekleşmesini beklemez sadece emrin doğru olduğunu ve sunucudaki kuyruğa gönderildiğini bildirir.
Başarılı bir temel yapı kontrolü durumunda (işaretçilerin kontrolü), true döndürülür - bu, bir ticaret işleminin başarılı bir şekilde yürütüldüğünü göstermez . İşlev yürütme sonucunun daha ayrıntılı bir açıklamasını elde etmek için sonuç yapısının alanlarını analiz etmelisiniz.
2. Yeniden kodu analiz edin ( MqlTradeResult ). Değişken, TRADE_RETCODE_DONE değerine sahiptir.
Bu durum, siparişin sunucuda fiilen yürütülmesini garanti ediyor mu?
OrderSend yanılmıyorsam siparişin gerçekleşmesini beklemez sadece siparişin doğru olduğunu ve sunucudaki kuyruğa gönderildiğini bildirir .
Böyle bir durumda tek başına "doğru" yeterli olacaktır. Ancak geliştiriciler, plana göre " ticaret sunucusu dönüş kodunu " içermesi gereken bir ret kodu sağladı.
Onlar. OrderSend() işlevi tamamlandıktan sonra, EA kodunun ikinci satırında TRADE_RETCODE_DONE görüyorum ve kodun üçüncü satırında örneğin yeni açılan bir pozisyonu (mantıksal olarak olması gereken) değiştirmeye çalışıyorum. Ancak, PositionSelect false döndürür. İterasyon tekrarlanır. Sonuç olarak çift volümde bir pozisyon yanlışlıkla açıldı.
Kendinizi böyle bir durumdan nasıl koruyabilirsiniz?
1. OnTrade'de yalnızca retcode ve "puan" ile yönlendirilmek mi?
2. Yalnızca OnTrade ve retcode'da "puan" tarafından yönlendirilmek mi?
retcode sadece RETCODE_DONE döndüremez :) Ama ticaret sunucusu tam olarak TRADE_RETCODE_DONE ( Talep tamamlandı ) döndürürse, neden başka bir şeyi kontrol edin? Benim düşünceme göre, bu durumda OnTrade, OnTradeTransaction işlevleri ret kodunu çoğaltacaktır.
" Ticaret sunucusu dönüş kodları " listesine bakılırsa, piyasa sorgusu yürütme modunda yalnızca bir belirsizlik mümkündür: TRADE_RETCODE_LOCKED. Ve burada, belki de OnTrade olmadan yapamazsınız.
Size sorayım, kişisel olarak hangi bağlantıyı kullanıyorsunuz?
Size sorayım, kişisel olarak hangi bağlantıyı kullanıyorsunuz?
Kendinizi böyle bir durumdan nasıl koruyabilirsiniz?
1. OnTrade'de yalnızca retcode ve "puan" ile yönlendirilmek mi?
2. Yalnızca OnTrade ve retcode'da "puan" tarafından yönlendirilmek mi?
OnTrade tarafından yönlendirilmek en güvenilir yöntemdir, ancak bunu onsuz da yapabilirsiniz - tamamlanan anlaşmayı analiz edin (ResultDeal()).
Yakında bu konuyla ilgili bir yazı gelecek.