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
İşte tetiklenen bir Kâr Al tarafından kapatılan bir pozisyonun günlük girişleri. Bu durum OnTradeTransaction( const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) içinde nasıl tespit edilebilir?
Ne const MqlTradeResult& sonucunun dönüş kodu (result.retcode) ayarlanmıştır (0 seçenek değildir, TRADE_RETCODE_DONE = 10009) ne de tüm anlaşmalarda her seferinde döngü yapmadan bunları bulmak için kimliklerden biri (Anlaşma bileti, Sipariş bileti, Talep Kimliği).
Bu, ilgili(?) bayrakları yazdıran #376 satırındaki Yazdırmadır:
Ve günlükte okuyabildiğim şey bu:
10:04:40 take profit triggered #2 sell 0.01 EURUSD 1.00319 sl: 1.00816 tp: 1.00171 [#3 buy 0.01 EURUSD at 1.00171]
10:04:40 deal #3 buy 0.01 EURUSD at 1.00171 done (based on order #3)
10:04:40 deal performed [#3 buy 0.01 EURUSD at 1.00171]
10:04:40 order performed buy 0.01 at 1.00171 [#3 buy 0.01 EURUSD at 1.00171]
10:04:40 373 New trade operation dTime1970.01.01 09:03:41
10:04:40 376 0 prc:trans.price=1.00171 tckt: 2 Tr.Type: TRADE_TRANSACTION_DEAL_ADD Tr.OrdType: ORDER_TYPE_BUY Tr.OrdFill: ORDER_STATE_STARTED Tr.tckt:3 2 0 retCode:0 0 0 0 0
10:04:40 489 MqlTradeTransaction: TRADE_TRANSACTION_DEAL_ADD deal #3 DEAL_TYPE_BUY EURUSD 0.01 lot
10:04:40 376 1 prc:trans.price=1.00171 tckt: 2 Tr.Type: TRADE_TRANSACTION_ORDER_DELETE Tr.OrdType: ORDER_TYPE_BUY Tr.OrdFill: ORDER_STATE_FILLED Tr.tckt:3 2 0 retCode:0 0 0 0 0
10:04:40 383 1 prc:trans.price=1.00171 tckt: 2 res.Ord:0 Tr.Type: TRADE_TRANSACTION_ORDER_DELETE Tr.OrdFill: ORDER_STATE_FILLED Tr.OrdType: ORDER_TYPE_BUY Tr.tckt:3 2 0 Res::0 0 0 0 0
10:04:40 408 PosExists #3 2 mag:0 ORDER_STATE_FILLED ORDER_TYPE_BUY
10:04:40 376 2 prc:trans.price=1.00171 tckt: 2 Tr.Type: TRADE_TRANSACTION_HISTORY_ADD Tr.OrdType: ORDER_TYPE_BUY Tr.OrdFill: ORDER_STATE_FILLED Tr.tckt:3 2 0 retCode:0 0 0 0 0
10:04:40 408 PosExists #3 2 mag:0 ORDER_STATE_FILLED ORDER_TYPE_BUY
2022.09.26 14:08:33.755 disconnected
Terminal çok güzel yazıyor "kar al tetiklendi #2 sell 0.01 EURUSD 1.00319 sl: 1.00816 tp: 1.00171 [#3 buy 0.01 EURUSD at 1.00171]"
Peki neden TRADE_TRANSACTION_TRIGGERED_PT ve TRADE_TRANSACTION_TRIGGERED_SL gibi bir bayrak yok?
Ve isteğin dönüş kodu her zaman ayarlanmıyor mu?
Denis, makale için teşekkür ederim! İlgiyle okudum, ancak okuduklarımın henüz tam olarak farkına varmadım. Ayrıca TradeProcessor Uzman Danışmanınızı indirdim ve şu anda açık bir pozisyonumun olduğu terminalimde çalıştırdım. Çıktılara baktım ve hemen kendi başıma cevap bulmak istediğim bazı sorular ortaya çıktı. Eğer ben yapamazsam, sizi rahatsız etmek zorunda kalacağım. ))
Saygılarımla, Vladimir.
Saygılarımla, Vladimir.
Görüşleriniz için teşekkür ederim. Rica ederim, BayBrooklin! ))
Görüşleriniz için teşekkür ederim. Rica ederim, BayBrooklin! ))
Denis, üzgünüm ama senin yardımın olmadan aklım "patlıyor". İşte EA'nızın geçişlerinden birinin sonucu (bu arada, çok havalı bir EA!!!):
Anlamadığım şey:
ENUM_DEAL_TYPE
Tanımlayıcı
Açıklama
DEAL_TYPE_BUY
Satın Al
Soru - bekleyen bir SELL_STOP emri değiştirilirken işlem türü nasıl BUY????? olarak belirlenir? ))
Saygılarımla, Vladimir.
Ve hiçbir işlem yoktur. Bekleyen bir emrin verilmesi ve işleme alınması herhangi bir işlem gerektirmez. İşlem bileti = 0, tür = 0, burada 0, ENUM_DEAL_TYPE numaralandırması için DEAL_TYPE_BUY 'a eşdeğerdir. Yani, MqlTradeTransaction trans yapısında bazı alanlar doldurulur ve bazıları doldurulmaz. Doldurulmamış alanlar genellikle boş bırakılır.
Daha fazla ayrıntı: Bekleyen emirler hakkındaki Dokümantasyonda.
Anlaşma alanı bu tür bir işlem için doldurulacaktır:
TRADE_TRANSACTION_DEAL_*
İşlem işleme ile ilgili ticari işlemler için MqlTradeTransaction yapısında aşağıdaki alanlar doldurulur (TRADE_TRANSACTION_DEAL_ADD, TRADE_TRANSACTION_DEAL_UPDATE ve TRADE_TRANSACTION_DEAL_DELETE):
Sadece 3 tür işlem "anlaşma" türlerine aittir: TRADE_TRANSACTION_DEAL_ADD, TRADE_TRANSACTION_DEAL_UPDATE, TRADE_TRANSACTION_DEAL_DELETE.
Ve hiçbir işlem yoktur. Bekleyen bir emir vermek herhangi bir işlem gerektirmez. İşlem bileti = 0, tür = 0, burada 0 ENUM_DEAL_TYPE numaralandırması için DEAL_TYPE_BUY 'a eşdeğerdir. Yani, MqlTradeTransaction trans yapısında bazı alanlar doldurulur ve bazıları doldurulmaz. Doldurulmamış alanlar genellikle sıfırlanır.
Daha fazla ayrıntı: Bekleyen siparişlerle ilgili Dokümantasyonda.
Ahhhh, işte bu!!! Dostum, kafamı kırdı! ))
Teşekkürler!!!
Saygılarımla, Vladimir.