"Yüzer" PositionSelect() hatası - sayfa 7

 
prostotrader :
Evet, hangi sırayla ve hangi hacimde olursa olsun

İşin şeması aşağıdaki gibidir:

  1. Bekleyen bir emir verdi, siparişin hacmini m_volume değişkenine kaydetti
  2. TRADE_TRANSACTION_DEAL_ADD geldiğinde, pozisyon hacmini m_volume değişkeniyle karşılaştırın ve orijinal siparişin hala askıda olup olmadığını kontrol edin (kısmi bir uygulama olabilir, ancak hacmi manuel olarak eklediniz).

 
prostotrader :

Hey!

Durum aşağıdaki MT5, yapı 1375

Robot, işinde vadeli işlemler yaparken OrderSendAsync() işlevini kullanır.

Diyelim ki 2 kontrat hacmine sahip bir açık pozisyon var.

Geliştiricilere bir hatanın varlığını göstermek için günlük kaydı nasıl oluşturulur?

MOEX Moskova Borsası için bir ticaret robotu oluştururken nereden başlamalı makalesinde , TradeTransaction olaylarını dinleyen bir danışman örneği var

Alım satım işlemleri yaparken çalıştırmayı deneyin ve günlüklere bakın. Sorular gitmiş olmalı.

Bu "dinleyicinin" nasıl çalıştığına bir örnek:

 2016.06 . 09 14 : 51 : 19.763 TradeTransactionListener (Si- 6.16 ,M15)  LAST PING= 14 ms
Покупка
2016.06 . 09 14 : 51 : 24.856 TradeTransactionListener (Si- 6.16 ,M15)   1 . OnTradeTransaction
2016.06 . 09 14 : 51 : 24.856 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_ORDER_ADD order # 49118594 ORDER_TYPE_BUY ORDER_STATE_STARTED    
2016.06 . 09 14 : 51 : 24.859 TradeTransactionListener (Si- 6.16 ,M15)   2 . OnTradeTransaction
2016.06 . 09 14 : 51 : 24.859 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_REQUEST
2016.06 . 09 14 : 51 : 24.859 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeResult : order # 49118594 retcode= TRADE_RETCODE_PLACED 
2016.06 . 09 14 : 51 : 24.859 TradeTransactionListener (Si- 6.16 ,M15)   3 . OnTradeTransaction
2016.06 . 09 14 : 51 : 24.859 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_ORDER_UPDATE order # 49118594 ORDER_TYPE_BUY ORDER_STATE_REQUEST_ADD    
2016.06 . 09 14 : 51 : 24.881 TradeTransactionListener (Si- 6.16 ,M15)   4 . OnTradeTransaction
2016.06 . 09 14 : 51 : 24.881 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_ORDER_UPDATE order # 49118594 ORDER_TYPE_BUY ORDER_STATE_PLACED    
2016.06 . 09 14 : 51 : 24.881 TradeTransactionListener (Si- 6.16 ,M15)   5 . OnTradeTransaction
2016.06 . 09 14 : 51 : 24.881 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_ORDER_DELETE order # 49118594 ORDER_TYPE_BUY ORDER_STATE_PLACED    
2016.06 . 09 14 : 51 : 24.884 TradeTransactionListener (Si- 6.16 ,M15)   6 . OnTradeTransaction
2016.06 . 09 14 : 51 : 24.884 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_HISTORY_ADD order # 49118594 ORDER_TYPE_BUY Si- 6.16 ORDER_STATE_FILLED    (MOEX ticket= 3377179723 )
2016.06 . 09 14 : 51 : 24.884 TradeTransactionListener (Si- 6.16 ,M15)   7 . OnTradeTransaction
2016.06 . 09 14 : 51 : 24.885 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_DEAL_ADD deal # 6945344 DEAL_TYPE_BUY Si- 6.16 1.00 lot   (MOEX deal= 185290434 )
Установка SL/TP
2016.06 . 09 14 : 51 : 50.872 TradeTransactionListener (Si- 6.16 ,M15)   1 . OnTradeTransaction
2016.06 . 09 14 : 51 : 50.872 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_REQUEST
2016.06 . 09 14 : 51 : 50.872 TradeTransactionListener (Si- 6.16 ,M15)   2 . OnTradeTransaction
2016.06 . 09 14 : 51 : 50.872 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : Position   # 0 Si- 6.16 modified: SL= 62000.00000 TP= 67000.00000
Закрытие позиции (продажа)
2016.06 . 09 14 : 52 : 24.063 TradeTransactionListener (Si- 6.16 ,M15)   1 . OnTradeTransaction
2016.06 . 09 14 : 52 : 24.063 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_ORDER_ADD order # 49118750 ORDER_TYPE_SELL ORDER_STATE_STARTED    
2016.06 . 09 14 : 52 : 24.067 TradeTransactionListener (Si- 6.16 ,M15)   2 . OnTradeTransaction
2016.06 . 09 14 : 52 : 24.067 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_REQUEST
2016.06 . 09 14 : 52 : 24.067 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeResult : order # 49118750 retcode= TRADE_RETCODE_PLACED 
2016.06 . 09 14 : 52 : 24.067 TradeTransactionListener (Si- 6.16 ,M15)   3 . OnTradeTransaction
2016.06 . 09 14 : 52 : 24.067 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_ORDER_UPDATE order # 49118750 ORDER_TYPE_SELL ORDER_STATE_REQUEST_ADD    
2016.06 . 09 14 : 52 : 24.071 TradeTransactionListener (Si- 6.16 ,M15)   4 . OnTradeTransaction
2016.06 . 09 14 : 52 : 24.071 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_ORDER_UPDATE order # 49118750 ORDER_TYPE_SELL ORDER_STATE_PLACED    
2016.06 . 09 14 : 52 : 24.073 TradeTransactionListener (Si- 6.16 ,M15)   5 . OnTradeTransaction
2016.06 . 09 14 : 52 : 24.073 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_DEAL_ADD deal # 6945378 DEAL_TYPE_SELL Si- 6.16 1.00 lot   (MOEX deal= 185290646 )
2016.06 . 09 14 : 52 : 24.075 TradeTransactionListener (Si- 6.16 ,M15)   6 . OnTradeTransaction
2016.06 . 09 14 : 52 : 24.075 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_ORDER_DELETE order # 49118750 ORDER_TYPE_SELL ORDER_STATE_PLACED    
2016.06 . 09 14 : 52 : 24.077 TradeTransactionListener (Si- 6.16 ,M15)   7 . OnTradeTransaction
2016.06 . 09 14 : 52 : 24.077 TradeTransactionListener (Si- 6.16 ,M15)   MqlTradeTransaction : TRADE_TRANSACTION_HISTORY_ADD order # 49118750 ORDER_TYPE_SELL Si- 6.16 ORDER_STATE_FILLED    (MOEX ticket= 3377182821 )

 
Rashid Umarov :

MOEX Moskova Borsası için bir ticaret robotu oluştururken nereden başlamalı makalesinde , TradeTransaction olaylarını dinleyen bir danışman örneği var

Alım satım işlemleri yaparken çalıştırmayı deneyin ve günlüklere bakın. Sorular gitmiş olmalı.

Çok teşekkürler.

Keşke gerçek bir cevabım olsaydı:

Hatayı düzeltecek misin?

 
Karputov Vladimir :

İşin şeması aşağıdaki gibidir:

  1. Bekleyen bir emir verdi, siparişin hacmini m_volume değişkenine kaydetti
  2. TRADE_TRANSACTION_DEAL_ADD alındığında, pozisyon hacmini m_volume değişkeniyle karşılaştırın ve orijinal siparişin hala askıda olup olmadığını kontrol edin (kısmi bir uygulama olabilir, ancak hacmi manuel olarak eklediniz).

Karputov Vladimir I (yaklaşık olarak) bir tef ile nasıl dans edileceğini biliyorum....
 

prostotrader :

Keşke gerçek bir cevabım olsaydı:

Hatayı düzeltecek misin?

Tekrar araya girdiğim için çok üzgünüm... ama açıklığa kavuşturmama izin verin, sorun ne?
 
Dennis Kirichenko :
Tekrar araya girdiğim için çok üzgünüm... ama açıklığa kavuşturmama izin verin, sorun ne?
Ben de aynısını yazmak istedim.
 
prostotrader :

Çok teşekkürler.

Keşke gerçek bir cevabım olsaydı:

Hatayı düzeltecek misin?

Bu nedenle, bir örneğe ihtiyacınız yok - ticaret emirlerinin yürütülmesinin tüm aşamaları burada açıkça belirtilmiştir. Bakmadın bile:

 MqlTradeTransaction : TRADE_TRANSACTION_DEAL_ADD deal # 6945344 DEAL_TYPE_BUY Si- 6.16 1.00 lot   (MOEX deal= 185290434 )
 
Rashid Umarov :

Bu nedenle, bir örneğe ihtiyacınız yok - ticaret emirlerinin yürütülmesinin tüm aşamaları burada açıkça belirtilmiştir. Bakmadın bile:

İzlemedin bile!

MQ Alexander 2016.08 . 03 18 : 00 #     EN
Что касается ордеров, позиций и сделок.

Как написано в хелпе - последовательность поступления транзакций не гарантирована - транзакция переноса ордера в историю может быть получена раньше, чем транзакция сделки.
Изменение позиции в терминале происходит строго в результате получения сделочной транзакции , соответственно её получение является гарантией того что позиция поменялась.
Получение транзакции переноса ордера в историю, гарантирует только то, что ордер перестал быть активным (открытым) и был перенесён в историю ордеров.



Кроме того, транзакции могут потеряться при доставке от сервера к терминалу.
Что касается этой фразы. 

Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.

 
prostotrader :

İzlemedin bile!

TRADE_TRANSACTION_DEAL_ADD sizin her şeyiniz. Bu olay alınana kadar konum bilgisi yanlış olabilir. Diğer her şey sadece nasıl çalıştığına dair fikrinizdir. Başka bir deyişle, istek listesi.

TRADE_TRANSACTION_DEAL_ADD'yi bekleyin, ardından pozisyon hakkında bilgi alın. Hepsi bu.

 
Karputov Vladimir :

TRADE_TRANSACTION_DEAL_ADD sizin her şeyiniz. Bu olay alınana kadar konum bilgisi yanlış olabilir. Diğer her şey sadece nasıl çalıştığına dair fikrinizdir. Başka bir deyişle, istek listesi.

TRADE_TRANSACTION_DEAL_ADD'yi bekleyin, ardından pozisyon hakkında bilgi alın. Hepsi bu.

Ben zaten söyledim:

Ben (yaklaşık olarak) tef ile dans etmeyi biliyorum.