OnTradeTransaction geriye dönük testinde durdurma tetikleyicisini algıla

chinaski  

Merhaba,

EA'mda yürütmeyi durdurmayı algılamaya çalışıyorum. Ne yazık ki, OnTradeTransaction'a geçirilen MqlTradeTransaction tarafından sağlanan yalnızca DEAL_ENTRY_IN alıyorum.

Bu sadece backtest'te böyle görünüyor.

Geri testte tetiklenen bir durdurmanın nasıl güvenilir bir şekilde tespit edileceğini bilen var mı - en iyisi fiyat ve (kısmi-) kâr ile birlikte?

Teşekkür ederim

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties - Documentation on MQL5
Alain Verleyen  
chinaski :

Merhaba,

EA'mda yürütmeyi durdurmayı algılamaya çalışıyorum. Ne yazık ki, OnTradeTransaction'a geçirilen MqlTradeTransaction tarafından sağlanan yalnızca DEAL_ENTRY_IN alıyorum.

Bu sadece backtest'te böyle görünüyor.

Geri testte tetiklenen bir durdurmanın nasıl güvenilir bir şekilde tespit edileceğini bilen var mı - en iyisi fiyat ve (kısmi-) kâr ile birlikte?

Teşekkür ederim

OnTradeTransaction'da şunları kontrol etmeniz gerekir:

trans.order_state = ORDER_STATE_PLACED ;

Aşağıdakilerle başka bir işlem izledi:

trans.type = TRADE_TRANSACTION_DEAL_ADD ;
chinaski  
angevoyageur :

OnTradeTransaction'da şunları kontrol etmeniz gerekir:

Aşağıdakilerle başka bir işlem izledi:

Merhaba Angevoyageur,

lütfen çöplüğüme bir göz atın. Bu döküm, TÜM işlemleri bir dosyaya yazdırır. EA'm çok basit. Stop ve hedef ile birlikte alır veya satar. Ne yazık ki, günlükte herhangi bir işlem bulamıyorum, bu

tetiklenen durdurma veya hedefle ilgilidir:

 20130507 00 : 26 : 59 : 672 entry short at 1.32176 <- entry short
20130507 00 : 26 : 59 : 672 symbol=EURUSD price= 1.3217600 volume= 0.01 sl= 1.3229200 tp= 1.3202000 order= 2 deal= 2 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type= DEAL_TYPE_SELL type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 672 symbol=EURUSD price= 1.3217600 volume= 0.01 sl= 1.3229200 tp= 1.3202000 order= 2 deal= 0 entry-type=IN trans-type=ORDER_DELETE order_type=SELL deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 672 symbol=EURUSD price= 1.3217600 volume= 0.00 sl= 1.3229200 tp= 1.3202000 order= 2 deal= 0 entry-type=IN trans-type=HISTORY_ADD order_type=SELL deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 672 symbol= price= 0.0000000 volume= 0.00 sl= 0.0000000 tp= 0.0000000 order= 0 deal= 0 entry-type=IN trans-type=REQUEST order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00

/// before the entry long, the stop or target of entry short should be triggerd.
/// The EA does not allow to enter new trade before latest is closed, simply by check current positions for symbol before open an entry tradde.

20130507 00 : 26 : 59 : 674 entry long at 1.32140 <- entry long
20130507 00 : 26 : 59 : 674 symbol=EURUSD price= 1.3214000 volume= 0.01 sl= 1.3200900 tp= 1.3231100 order= 3 deal= 3 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 674 symbol=EURUSD price= 1.3214000 volume= 0.01 sl= 1.3200900 tp= 1.3231100 order= 3 deal= 0 entry-type=IN trans-type=ORDER_DELETE order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 674 symbol=EURUSD price= 1.3214000 volume= 0.00 sl= 1.3200900 tp= 1.3231100 order= 3 deal= 0 entry-type=IN trans-type=HISTORY_ADD order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00
20130507 00 : 26 : 59 : 674 symbol= price= 0.0000000 volume= 0.00 sl= 0.0000000 tp= 0.0000000 order= 0 deal= 0 entry-type=IN trans-type=REQUEST order_type=BUY deal_type= DEAL_TYPE_BUY type_time= 0 expiration= 1970.01 . 01 00 : 00 price_trigger= 0.0000000 profit= 0.00

/// As you can see, my entry short shows transaction BUY, SELL, SELL what ever the purpose of this confusing transactions is.
/// No a bit about stop or target orders

Peki stop-hedef işlemleri nasıl alınır? Burada backtest hakkında konuşuyorum. Canlı koşullarda da böyle olup olmadığından emin değilim.

Alain Verleyen  
chinaski :

Merhaba Angevoyageur,

lütfen çöplüğüme bir göz atın. Bu döküm, TÜM işlemleri bir dosyaya yazdırır. EA'm çok basit. Stop ve hedef ile birlikte alır veya satar. Ne yazık ki, günlükte herhangi bir işlem bulamıyorum, bu

tetiklenen durdurma veya hedefle ilgilidir:

Peki stop-hedef işlemleri nasıl alınır? Burada backtest hakkında konuşuyorum. Canlı koşullarda da böyle olup olmadığından emin değilim.

Tamam, üzgünüm ilk sorunuzu yanlış anladım, "tetiklenmiş stop" dediğinizde bekleyen bir emir (alış durdurma veya satış durdurma) düşünüyordum.

İşlemleri izlemeniz gerektiğinden emin misiniz? Bir seferde yalnızca bir işlem yapıyorsanız, PositionSelect (_Symbol) ile açık pozisyonunuzu kontrol edebilirsiniz.

chinaski  
angevoyageur :

Tamam, üzgünüm ilk sorunuzu yanlış anladım, "tetiklenmiş stop" dediğinizde bekleyen bir emir (alış durdurma veya satış durdurma) düşünüyordum.

İşlemi izlemeniz gerektiğinden emin misiniz? Bir seferde yalnızca bir işlem yapıyorsanız, PositionSelect (_Symbol) ile açık pozisyonunuzu kolayca kontrol edebilirsiniz.

Merhaba,

bir pozisyonun açık olup olmadığını kontrol etmek için bunu zaten yapıyorum.CPositionInfo.Select.

Ancak, bir durdurma veya hedef tetiklendiğinde, yürütülen durdurma veya hedef fiyat nasıl alınır? Akıllı bir yöntem var mı?

Alain Verleyen  
chinaski :

Merhaba,

bir pozisyonun açık olup olmadığını kontrol etmek için bunu zaten yapıyorum.CPositionInfo.Select.

Ancak, bir durdurma veya hedef tetiklendiğinde, yürütülen durdurma veya hedef fiyat nasıl alınır? Akıllı bir yöntem var mı?

Neden anlaşma geçmişini kontrol etmiyorsunuz?
chinaski  
angevoyageur :
Neden anlaşma geçmişini kontrol etmiyorsunuz?

Daha fazla ayrıntı verebilir misiniz lütfen. Yürütülen durdurma veya hedef fiyata ihtiyacım var. Tetiklenen hedefin veya durdurmanın (işlem olarak iletilmemiş) anlaşma kimliği veya bileti yok.

Tarih, DEAL_PRICE sağlar, ancak bir anlaşmaya # veya bilete ihtiyacım var. Hangi bilet veya anlaşma alınacak? Teşekkür ederim.  

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties - Documentation on MQL5
Alain Verleyen  
chinaski :

Daha fazla ayrıntı verebilir misiniz lütfen. Yürütülen stop veya hedef fiyata ihtiyacım var. Tetiklenen hedefin veya durdurmanın (işlem olarak iletilmemiş) anlaşma kimliği veya bileti yok.

Tarih, DEAL_PRICE sağlar, ancak bir anlaşmaya # veya bilete ihtiyacım var. Hangi bilet veya anlaşma alınacak? Teşekkür ederim.  

Bir sl veya tp tetiklendiğinde, işleminizin karşı tarafıyla eklenen bir anlaşmanız olur. Örneğin, 0.25 lot SATIN ALMA pozisyonunuz var. Sl/tp'niz tetiklendiğinde SATIŞ türünde bir anlaşmanız olacak, bunu izlemek için OnTradeTransaction'ı kullanabilir veya pozisyonunuzun kapandığını öğrendikten sonra anlaşmaların geçmişini kontrol edebilirsiniz.

Buradaki kod örneğine bakın.

chinaski  
angevoyageur :

Bir sl veya tp tetiklendiğinde, işleminizin karşı tarafıyla eklenen bir anlaşmanız olur. Örneğin, 0.25 lot SATIN ALMA pozisyonunuz var. Sl/tp'niz tetiklendiğinde SATIŞ türünde bir anlaşmanız olacak, bunu izlemek için OnTradeTransaction'ı kullanabilir veya pozisyonunuzun kapandığını öğrendikten sonra anlaşmaların geçmişini kontrol edebilirsiniz.

Buradaki kod örneğine bakın.

merhaba angev,

bu benim sorunum: açıkçası OnTradeTransaction'ı kullanamıyorum. Lütfen yukarıdaki günlüklerime bakın. Burada listelenen herhangi bir durdurma veya hedef sipariş yok - bu nedenle yürütülen bir durdurma veya hedefle ilgili anlaşma YOKTUR Döküm, OnTradeTransaction'a iletilen HER işlem için oluşturulur.

Yine, backtest hakkında konuşuyorum.

Alain Verleyen  
chinaski :

merhaba angev,

bu benim sorunum: açıkçası OnTradeTransaction'ı kullanamıyorum. Lütfen yukarıdaki günlüklerime bakın. Burada listelenen herhangi bir durdurma veya hedef sipariş yok - bu nedenle yürütülen bir durdurma veya hedefle ilgili anlaşma YOKTUR Döküm, OnTradeTransaction'a iletilen HER işlem için oluşturulur.

Yine, backtest hakkında konuşuyorum.

Yapabileceğim tek şey, eğer sağlarsanız kodunuzu test etmektir. öyle bir sorunum yok
chinaski  
angevoyageur :
Yapabileceğim tek şey, eğer sağlarsanız kodunuzu test etmektir. öyle bir sorunum yok

Merhaba angevoyageur,

sorunu gösteren basit bir EA ekli bulabilirsiniz. EA, stop ve target ile birlikte uzun açılır, sonra kısa, sonra uzun vb.

Bir döküm yöntemi de bulunur. Sadece 1 hafta 1 dakika EUR.USD uygulayın ve geriye dönük test günlüğünde işlem dökümlerini izleyin.

Yardımın için teşekkürler.

Dosyalar:
tc_ea_trans.mq5  11 kb