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 konuyla ilgili bir makale beklerken, bir ticaret işleminin analizinin genel kavramını doğru anlıyorum.
Onlar. Kabaca söylemek gerekirse, bir emir gönderdikten sonra, ret kodunu analiz etmeden, "AllowTrade" bayrağını kullanarak iş döngüsündeki (OnTick()) alım satım işlemlerini devre dışı bırakırız.
Takas yasağı yalnızca OnTrade()'de numarasına göre bir sipariş arandıktan ve akıbetinin bazı analizlerinden sonra açılır.
İki soru var:
1. OnTrade'de sipariş biletini hangi konu için kontrol etmeliyim? Hayatında hangi durumlar kesindir?
2. Tick-olaylarının (OnTick) sırasının "düşebileceğini" biliyorum. Onlar. bir sonraki Tick olayı gelirse ve OnTick işlevi (önceki tick'ten) henüz işini bitirmediyse, mevcut olay "düşür", yani. işleme alınmayacaktır. Ticaret olaylarıyla (OnTrade) benzer bir yaklaşım var mı? Onlar. Örneğin, ana döngüde alım satım yasağı koyacağım ve yeni gönderilen siparişteki OnTrade olayının "düşeceği" gibi bir şans var mı, çünkü geldiği zaman, ilgili ticaret talebini gönderirken aynı kene içinde başka bir şeyi işlemeye devam edecek miyim?
Bu konuyu anlamadım, ama işte El Kitabında yazanlar:
Bu konuyu anlamadım, ama işte El Kitabında yazanlar:
Genel olarak, anlaşılabilir. Papaklass'ın zaten belirttiği ve https://www.mql5.com/en/articles/232 makalesinde belirtildiği gibi:
Ticaret hesabında tam olarak neyin değiştiğini öğrenmenin tek bir garantili yolu vardır. Bu yol, ticaretin durumunu ve ticaret tarihini hatırlamak ve yeni durumu, kaydedilen durumla karşılaştırmaktır.
Expert Advisor'da bir hizmet bloğu daha var. :(
Aslında soru şu ki... kodun boyutunu küçültme çerçevesinde, tüm değişkenleri (emirleri/anlaşmaları/pozisyonları) analiz etmek değil, yalnızca sayısı elde edilen siparişe odaklanmak mümkün mü? OrderSend'in sonucu? Veya bu sayı benzersiz olmayabilir / tarihe yansımayabilir mi?
Kesinlikle. Bir ticaret talebi göndermenin bir sonucu olarak bir sipariş bileti almak mümkün olduysa, bu bilet benzersizdir ve onu kullanarak siparişin tüm kaderini izlemek mümkündür.
Bir sipariş biletinin geçmişte nasıl kullanıldığını görün: MQL5 Reference / Trade Functions / HistoryOrderGetInteger
Kesinlikle. Bir ticaret talebi göndermenin bir sonucu olarak bir sipariş bileti almak mümkün olduysa, bu bilet benzersizdir ve onu kullanarak siparişin tüm kaderini izlemek mümkündür.
MqlTradeResult türündeki bir değişkeni kullanmadan önce, genellikle sıfıra ayarlanır. Dolayısıyla Result.order alanı boş bir değer içerir. Başarısız bir takas talebinden sonra bu alanın farklı bir değer aldığını hiç görmedim.
voix_kas : Если не возражаете, хотелось бы углубиться в вопрос интерпритации кодов возврата. Из 30 задекларированных вариантов ответа (будем надеятся, что с недекларированными мы не столкнёмся) 24 - указывают на явный отказ в размещении ордера. Остальные 6:
1. TRADE_RETCODE_PLACED Layaway yerleştirmediğimizi varsayalım. Piyasada işlem yaparken (SYMBOL_TRADE_EXECUTION_MARKET) böyle bir yanıt mümkün mü?
2. TRADE_RETCODE_DONE O zaman hiçbir şeyi tekrar kontrol etmeniz gerekmez. Her şey tam olarak danışmanın istediği gibi gitti.
3. TRADE_RETCODE_DONE_PARTIAL Tahmin ettiğim gibi, alım satım geciktiricileri değilsek, bu cevap ORDER_FILLING_IOC modunu hesaba katarak TRADE_RETCODE_DONE'a benzer.
4. TRADE_RETCODE_ORDER_CHANGED Bu, ticaret emrimizin açık bir şekilde reddedildiği anlamına mı geliyor?
5. TRADE_RETCODE_LOCKED Bence en kötü durum. Bu durumda nasıl hareket edilir? Henüz bir arama emri numarası olduğunu sanmıyorum. Ticaret akışı yoğun. Ticaret yapmak imkansız ve ticaret akışının engellenmesinin nasıl öğrenileceği açık değil.
6. TRADE_RETCODE_FROZEN Bu, ticaret emrimizin açık bir şekilde reddedildiği anlamına mı geliyor?
Lütfen her maddeye yorum yapın.
Ne yazık ki, benim bilgim, noktaların her biri hakkında tam teşekküllü bir yorum için yeterli değil. Bir şey olursa, meslektaşları düzeltecektir.
1. Forum bir keresinde bir alt komisyoncu ile bir ticaret hesabının açılabileceği bir durumdan bahsetmişti. Bu durumda, alt komisyoncu daha fazla işlem için (brokere) bir ticaret talebi gönderebilir ve müşteri terminaline TRADE_RETCODE_PLACED gönderebilir. Aracının sonunda böyle bir ticaret talebini işleme alıp almayacağı önceden bilinmiyor.
2. Evet, ben de öyle düşünüyorum. Unutulmaması gereken tek şey, bu siparişle ilgili bilgilerin asenkron olarak terminal tabanına gönderileceğidir.
3. ORDER_FILLING_IOC ve ORDER_FILLING_RETURN modlarında bir ticaret talebinin kısmi yürütülmesinden bahsettiğimizi düşünüyorum.
4. https://www.mql5.com/ru/forum/1111/page124#comment_18407
5. Bu kod hakkında kesinlikle hiçbir şey bilmiyorum. Resmi olarak, komisyoncunun bazı dahili nedenlerinden dolayı isteğin işlenmediği ortaya çıktı. Daha sonra işlenip işlenmeyeceği belli değil. Ben kendim bu kodu bir ticaret talebinin reddedilmesiyle eşitliyorum.
6. https://www.mql5.com/ru/forum/1111/page123#comment_18372
.. Ve genel olarak - forum anahtar kelime aramasını deneyin. Daha fazla bilgi bulunabilir :)
Ne yazık ki, benim bilgim, noktaların her biri hakkında tam teşekküllü bir yorum için yeterli değil. Bir şey olursa, meslektaşları düzeltecektir.
1. Forum bir keresinde bir alt komisyoncu ile bir ticaret hesabının açılabileceği bir durumdan bahsetmişti. Bu durumda, alt komisyoncu daha fazla işlem için (brokere) bir ticaret talebi gönderebilir ve müşteri terminaline TRADE_RETCODE_PLACED gönderebilir. Aracının sonunda böyle bir ticaret talebini işleme alıp almayacağı önceden bilinmiyor.
2. Evet, ben de öyle düşünüyorum. Unutulmaması gereken tek şey, bu siparişle ilgili bilgilerin asenkron olarak terminal tabanına gönderileceğidir.
3. ORDER_FILLING_IOC ve ORDER_FILLING_RETURN modlarında bir ticaret talebinin kısmi yürütülmesinden bahsettiğimizi düşünüyorum.
4. https://www.mql5.com/ru/forum/1111/page124#comment_18407
5. Bu kod hakkında kesinlikle hiçbir şey bilmiyorum. Resmi olarak, komisyoncunun bazı dahili nedenlerinden dolayı isteğin işlenmediği ortaya çıktı. Daha sonra işlenip işlenmeyeceği belli değil. Ben kendim bu kodu bir ticaret talebinin reddedilmesiyle eşitliyorum.
6. https://www.mql5.com/ru/forum/1111/page123#comment_18372
.. Ve genel olarak - forum anahtar kelime aramasını deneyin. Daha fazla bilgi bulunabilir :)
Toplamda, 30 koddan 26'sı (TRADE_RETCODE_ORDER_CHANGED ve TRADE_RETCODE_FROZEN dahil) aşağıdakilere sahibiz - talebin kesin olarak reddedilmesi (sipariş oluşturmaz).
TRADE_RETCODE_DONE ve TRADE_RETCODE_DONE_PARTIAL - garantili sipariş oluşturuldu.
TRADE_RETCODE_PLACED (ertelemeler değil) ve TRADE_RETCODE_LOCKED'in nasıl doğru bir şekilde çalışılacağı bir sorudur. MQ, bu iki kodla ilgili yorumları takdir edecektir.