From 9a2d8e6e3eb0e28e616bb544f017258685005396 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Wed, 14 May 2025 06:57:36 +0330 Subject: [PATCH] add supports for Report Balance on Partial Close ... --- Experts/x-saherelm.xcaea.ea.mq5 | 23 ++++++++++++++++++- XCAEA/Classes/xcaea.x-trade.manager.class.mq5 | 22 ++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/Experts/x-saherelm.xcaea.ea.mq5 b/Experts/x-saherelm.xcaea.ea.mq5 index 6118f672..02bbd3fb 100644 --- a/Experts/x-saherelm.xcaea.ea.mq5 +++ b/Experts/x-saherelm.xcaea.ea.mq5 @@ -490,7 +490,7 @@ void OnTakeProfitTriggered(const XDeal &deal) * * @param ticket: ULONG ... * @param position: XPosition instance ... - * @param comment: String ... + * @param comment: string ... */ void OnPositionForceClosed( const ulong ticket, @@ -501,6 +501,26 @@ void OnPositionForceClosed( eaTradeManager.HandleForceClose(position); } +/** + * Handle Position Partially Closed Event ... + * + * @param ticket: ULONG ... + * @param profit: double ... + * @param comment: string ... + */ +void OnPositionPartiallyClosed( + const ulong ticket, + const double profit, + const string comment // +) +{ + eaTradeManager.HandlePartiallyClosed( + ticket, + profit, + comment // + ); +} + /** * Handle Deals Changes ... * @@ -674,6 +694,7 @@ void InitRequirements() eaTrade.AddOnStopLossEventHandler(OnStopLossTriggered); eaTrade.AddOnTakeProfitEventHandler(OnTakeProfitTriggered); eaTrade.AddOnForceClosePositionEventHandler(OnPositionForceClosed); + eaTrade.AddOnPartialClosePositionEventHandler(OnPositionPartiallyClosed); // // EA Trae Manager ... diff --git a/XCAEA/Classes/xcaea.x-trade.manager.class.mq5 b/XCAEA/Classes/xcaea.x-trade.manager.class.mq5 index aa33a31f..2ce8f16e 100644 --- a/XCAEA/Classes/xcaea.x-trade.manager.class.mq5 +++ b/XCAEA/Classes/xcaea.x-trade.manager.class.mq5 @@ -1644,6 +1644,28 @@ class XCXCAEATradeManager : public XCBaseAlert RemoveTrade(idx); } + /** + * Handle Position Partially Closed Event ... + * + * @param ticket: ULONG ... + * @param profit: double ... + * @param comment: string ... + */ + void HandlePartiallyClosed( + const ulong ticket, + const double profit, + const string comment // + ) + { + // + // Handle Balance Reporting ... + string prefix = "Partially Closed: " + ToString(ticket); + + // + // Handle Balance Reporting ... + HandleReportBalance(prefix); + } + /** * Handle Force Close Trades ... */