Zararı durdurmak için bir siparişin kapatılıp kapatılmadığı nasıl kontrol edilir

 

MT4 için yazılmış EA'mı değiştirerek bir EA yazıyorum. OrderSend'i kullanarak bir sipariş açarım.

Basitçe anlamam gerekirse (belki de Tarihten), gönderilen sipariş (bu arada.... Siparişi, Anlaşmaları veya Pozisyonu kontrol etmem gerekiyor mu?), StopLoss'a ulaştığı için kapatıldı.
Forumlara baktım ama ihtiyacım olanı bulamadım...

HistoryOrderGetDouble parametresi ENUM_ORDER_PROPERTY_DOUBLE ile kullanıldığında,

ORDER_PRICE_CURRENT

sadece sipariş sembolünün mevcut fiyatını verir

ORDER_SL ile karşılaştırılamaz. Sanırım ORDER_PRICE_CURRENT, Emrin kapanış fiyatı değil, yalnızca sembolün geçerli fiyatıdır .

Desteğiniz için hepinize teşekkürler.

DÜZENLE :

Bu konu, MT5'in 1640'tan bu yana sunduğu yeni olanaklar nedeniyle artık çoğunlukla kullanılmamaktadır.

Bazı örnekler için konunun son gönderilerine bakın.

 

Bu konuya bakın, muhtemelen biraz kafa karıştırıcı ama fikri bulabilirsiniz.

MT5 ticaret sistemi, MT4'ten çok farklıdır, bu nedenle düşüncenizi değiştirmeniz gerekir.

Detect stop trigger in OnTradeTransaction backtest
Detect stop trigger in OnTradeTransaction backtest
  • www.mql5.com
Unfortunately, i get only DEAL_ENTRY_IN provided by MqlTradeTransaction passed to OnTradeTransaction. - - Category: technical indicators
 
frankge973 :

MT4 için yazılmış EA'mı değiştirerek bir EA yazıyorum. OrderSend'i kullanarak bir sipariş açarım.

Basitçe anlamam gerekirse (belki de Tarihten), gönderilen sipariş (bu arada.... Siparişi, Anlaşmaları veya Pozisyonu kontrol etmem gerekiyor mu?), StopLoss'a ulaştığı için kapatıldı.
Forumlara baktım ama ihtiyacım olanı bulamadım...

HistoryOrderGetDouble parametresi ENUM_ORDER_PROPERTY_DOUBLE ile kullanıldığında,

ORDER_PRICE_CURRENT

sadece sipariş sembolünün mevcut fiyatını verir

ORDER_SL ile karşılaştırılamaz. Sanırım ORDER_PRICE_CURRENT, Emrin kapanış fiyatı değil, yalnızca sembolün geçerli fiyatıdır .

Desteğiniz için hepinize teşekkürler.

Bu o mu?

 //-------------------------------- ES CIERRE POR SL ----------------------------------------------
bool esCierreSL( int ind, int modoInd= SELECT_BY_TICKET, int modoHist= MODE_TRADES)
{
     bool resp= OrderSelect (ind, modoInd, modoHist)? ( StringFind (OrderComment(), "[sl]" , 0 )>- 1 ): false ;
     return (resp);
}
 
Jose Miguel Soriano :

Bu o mu?

Soru mql5 ile ilgili, kodunuz mql4.

Sipariş yorumu , kodlamanın güvenilir bir yolu değildir.

 
Alain Verleyen :

Soru mql5 ile ilgili, kodunuz mql4.

Sipariş yorumu , kodlamanın güvenilir bir yolu değildir.

Necro için üzgünüm, ama bu bence oldukça ilginç.

mql4'ten mql5'e geçiş yapıyorum ve ticaret ve tarih sistemi değişikliklerini oldukça zorlayıcı buluyorum.

Tarih defterindeki bir işlemin zararı durdur, kârı al veya başka bir nedenle kapatılıp kapatılmadığını bilmek için:

  • MT4'te OrderStopLoss(), OrderTakeProfit() ve OrderClosePrice()'i karşılaştırabilir veya sadece OrderComment()'i kontrol edebilirsiniz.
  • MT5'te bir anlaşmanın yorumunu kontrol etmenin tek yolu bana öyle geliyor: HistoryDealGetString(tk, DEAL_COMMENT)
Hem MT4 hem de MT5, bir emir zararı durdurmak veya kar almak için kapandığında, yoruma [SL fiyatı] veya [TP fiyatı] yazın (farklı şekillerde.. ama yine de).

Makaleyi okudum: https://www.mql5.com/en/forum/11996

İlginç ama eğer doğru anladıysam, olay işlemeye dayalı ticaret değişikliklerini anında belirlemeyi hedefliyor.

Bu nedenle, bir program dinleme (bir tablo üzerinde çalışan bir uzman danışman gibi) olmalıdır, yoksa hiçbir şey algılanmaz.

Benim düşünceme göre, ticaret yakın neden tespiti tarih ticaret defterinde yapılmalıdır, çünkü ne olduğunu bilmenin en güvenli yolu budur (veya olmalıdır), çünkü bir yere yazıldığından ve havadan yakalanmadığından.

Analizim yanlış mı? ne düşünüyorsun?

Detect stop trigger in OnTradeTransaction backtest
Detect stop trigger in OnTradeTransaction backtest
  • www.mql5.com
Unfortunately, i get only DEAL_ENTRY_IN provided by MqlTradeTransaction passed to OnTradeTransaction.
 
Marco : Hem MT4 hem de MT5, bir emir zararı durdurmak veya kar almak için kapandığında yoruma [SL fiyatı] veya [TP fiyatı] yazın (farklı şekillerde.. ama yine de).
Hayır , yapmazlar. Bu senin komisyoncunun.
 
whroeder1 :
Hayır , yapmazlar. Bu senin komisyoncunun.

Tamam, hem MT4 hem de MT5 brokerleri bu dizeyi yoruma koydu.. en azından test ettiğim birkaç kişi.

Ve katılıyorum, bu iyi bir fikir değil, çünkü yorum komisyoncunun eliyle değiştirilebilir.

Ancak ticaret tarihi kitabında başka izler bulamadığım için bunun nasıl farklı yapılabileceğini göremiyorum.

Bu hedefe ulaşmanın daha iyi bir yolu var mı?

 

Servis masasıyla 2 yıl önce iletişime geçtim (MT4 ile ilgili).

...It is not clear to me whether all brokers incorporate the letters sp or tp in the order comment when a trade hits the StopLoss or TakeProfit. Is this at the brokers' discretion or is it automatically done with every broker?

ve cevap verdiler

Her komisyoncu ile otomatik olarak yapılır. Ayrıca komisyoncu bu değeri kendisi değiştirebilir.

bu yüzden komisyoncu değil sistem tarafından yapılır. Eğer komisyoncu daha sonra değiştirebilirse yine de yardımcı olmaz.

Dikkat edin, komisyoncunun sipariş yorumunu değiştirdiği herhangi bir durum fark etmedim.

Genellikle, kodumda, bir ticaretin kârla mı yoksa zararla mı kapandığını bilmek daha önemlidir. Bir takip durdurma kullanırken bir ticaret SL'yi vurabilir, ancak yine de kârlı olabilir.

 
Keith Watford :

Servis masasıyla 2 yıl önce iletişime geçtim (MT4 ile ilgili).

ve cevap verdiler

bu yüzden komisyoncu değil sistem tarafından yapılır. Eğer komisyoncu daha sonra değiştirebilirse yine de yardımcı olmaz.

Dikkat edin, komisyoncu sipariş yorumunu değiştirdiğinde herhangi bir durum fark etmedim.

Genellikle, kodumda, bir ticaretin kârla mı yoksa zararla mı kapandığını bilmek daha önemlidir. Bir takip durdurma kullanırken bir ticaret SL'yi vurabilir, ancak yine de kârlı olabilir.

Teşekkürler Keith, daha iyi bir geçici çözüm bulamadığım için umduğum şey buydu.

 
honest_knave :
Her iki posterin de MQL4'ü MQL5'e dönüştürdüğüne inanıyorum

Her neyse, yakın fiyatı stoploss fiyatıyla karşılaştırın.

Not: Gerçek (özellikle ECN) hesapta, tetikleyici fiyatın önceden ayarlanmış stoploss fiyatı arasında bir boşluk olması muhtemeldir, bu nedenle "<=" veya ">=" kullanın.

 
Xiangdong Guo :

Her neyse, yakın fiyatı stoploss fiyatıyla karşılaştırın.

Not: Gerçek (özellikle ECN) hesapta, tetikleyici fiyatın önceden ayarlanmış stoploss fiyatı arasında bir boşluk olması muhtemeldir, bu nedenle "<=" veya ">=" kullanın.

Kapanış fiyatını zararı durdur fiyatıyla karşılaştıramazsınız. Kayma, durdurma kaybından daha yüksek veya daha düşük kapatabileceği anlamına gelir.

Yani "<=" veya ">=" kullanışlı değildir.

Neden: