cleanup some unused params from cleasses ...

This commit is contained in:
2024-06-05 04:16:27 +03:30
parent 1482b30d67
commit 00631650dc
4 changed files with 40 additions and 314 deletions
+6 -37
View File
@@ -45,21 +45,10 @@ public:
XSCX121EA(
//
// XTrade Class Requirements ...
int slippage, // Specify Slippage
ulong magicNumber, // Specify Magic Number
int manageInterval, // Manager Check Intervals Seconds
double maxAllowedSpread, // Max Allowed Spred for Opening Trades
int maxAllowedPositions, // Max Allowed Positions
double maxAllowedDrawdownFactor, // Max Allowed Drawdown Factor
double staticVolume, // Static Volume for Positions
int slippage, // Specify Slippage
ulong magicNumber, // Specify Magic Number
//
// Position Management ...
bool allowLong = true, // Allow Long Trades
bool allowShort = true, // Allow Short Trades
double minProfitPerTrade = 0, // Min Profit Per Trade based On Volume Factor (Hedge)
double minProfitPerVolumeFactor = 0, // Min Volume Factor for Calculating Profit (Hedge)
//
// Event Handlers ...
// XSCTrade Event Handlers ...
TOnStopLoss onStopLossTriggered = NULL, // On StopLoass Triggered Event Handler
TOnTakeProfit onTakeProfitTriggered = NULL, // On TakeProfit Triggered Event Handler
TOnDealsChanged onDealsChangedHandler = NULL, // On Deals Changed Event Handler
@@ -67,36 +56,16 @@ public:
TOnPositionsChanged onPositionsChangedHandler = NULL, // On Positions Changed Event Handler
TOnTradeStateChanged onTradeStateChangedHandler = NULL, // On Trade State Changed Event Handler
//
TOnSignal onSignalHandler = NULL, // On Signal Event Handler
//
// Log Handler ...
bool enableAlerts = true, // Enable Alerts
bool logAlerts = true, // Log Alerts
bool terminalAlerts = false, // Terminal Alerts
bool mailAlerts = false, // Mail Alerts
bool pushAlerts = false // Push Alerts
// Custom Event Handler ...
TOnSignal onSignalHandler = NULL // On Signal Event Handler
) : XSCBaseEA(slippage,
magicNumber,
manageInterval,
maxAllowedSpread,
maxAllowedPositions,
maxAllowedDrawdownFactor,
staticVolume,
allowLong,
allowShort,
minProfitPerTrade,
minProfitPerVolumeFactor,
onStopLossTriggered,
onTakeProfitTriggered,
onDealsChangedHandler,
onOrdersChangedHandler,
onPositionsChangedHandler,
onTradeStateChangedHandler,
enableAlerts,
logAlerts,
terminalAlerts,
mailAlerts,
pushAlerts //
onTradeStateChangedHandler //
)
{
}
+27 -257
View File
@@ -2145,59 +2145,28 @@ public:
XSCBaseEA(
//
// XTrade Class Requirements ...
int slippage, // Specify Slippage
ulong magicNumber, // Specify Magic Number
int manageInterval, // Manager Check Intervals Seconds
double maxAllowedSpread, // Max Allowed Spred for Opening Trades
int maxAllowedPositions, // Max Allowed Positions
double maxAllowedDrawdownFactor, // Max Allowed Drawdown Factor
double staticVolume, // Static Volume for Positions
//
// Position Management ...
bool allowLong = true, // Allow Long Trades
bool allowShort = true, // Allow Short Trades
double minProfitPerTrade = 0, // Min Profit Per Trade based On Volume Factor (Hedge)
double minProfitPerVolumeFactor = 0, // Min Volume Factor for Calculating Profit (Hedge)
int slippage, // Specify Slippage
ulong magicNumber, // Specify Magic Number
//
// Event Handlers ...
TOnStopLoss onStopLossTriggered = NULL, // On StopLoass Triggered Event Handler
TOnTakeProfit onTakeProfitTriggered = NULL, // On TakeProfit Triggered Event Handler
TOnDealsChanged onDealsChangedHandler = NULL, // On Deals Changed Event Handler
TOnOrdersChanged onOrdersChangedHandler = NULL, // On Orders Changed Event Handler
TOnPositionsChanged onPositionsChangedHandler = NULL, // On Positions Changed Event Handler
TOnTradeStateChanged onTradeStateChangedHandler = NULL, // On Trade State Changed Event Handler
//
// Log Handler ...
bool enableAlerts = true, // Enable Alerts
bool logAlerts = true, // Log Alerts
bool terminalAlerts = false, // Terminal Alerts
bool mailAlerts = false, // Mail Alerts
bool pushAlerts = false // Push Alerts
TOnStopLoss onStopLossTriggered = NULL, // On StopLoass Triggered Event Handler
TOnTakeProfit onTakeProfitTriggered = NULL, // On TakeProfit Triggered Event Handler
TOnDealsChanged onDealsChangedHandler = NULL, // On Deals Changed Event Handler
TOnOrdersChanged onOrdersChangedHandler = NULL, // On Orders Changed Event Handler
TOnPositionsChanged onPositionsChangedHandler = NULL, // On Positions Changed Event Handler
TOnTradeStateChanged onTradeStateChangedHandler = NULL // On Trade State Changed Event Handler
)
{
//
// Instance XSCTrade Class ...
mTrader = new XSCTrade(
slippage,
magicNumber,
manageInterval,
maxAllowedSpread,
maxAllowedPositions,
maxAllowedDrawdownFactor
//
magicNumber //
);
//
mIsInTestMode = IsRunningOnTestMode();
//
// Position Management ...
mAllowLong = allowLong;
mAllowShort = allowShort;
mMinProfitPerTrade = minProfitPerTrade;
mMinProfitPerVolumeFactor = minProfitPerVolumeFactor;
mStaticVolume = staticVolume;
//
// Set Event Handlers ...
mOnStopLossTriggered = onStopLossTriggered;
@@ -2283,135 +2252,6 @@ public:
return mTrader.GetMagicNumber();
}
//
// Retrieve Max Allowed Spread for Trading ...
double GetMaxAllowedSpread()
{
return mTrader.GetMaxAllowedSpread();
}
//
// Retrieve Max Allowed Same Time Positions Count ...
int GetMaxAllowedPositions()
{
return mTrader.GetMaxAllowedPositions();
}
//
// Retrieve Max Allowed Drawdown for Opening new Trades ...
double GetMaxAllowedDrawdownFactor()
{
return mTrader.GetMaxAllowedDrawdownFactor();
}
//
double GetStaticVolume()
{
return mStaticVolume;
}
//
void SetStaticVolume(double value)
{
//
if (value <= 0)
{
value = 0.01;
}
//
mStaticVolume = value;
}
//
bool GetAllowLong()
{
return mAllowLong;
}
//
void SetAllowLong(bool value)
{
mAllowLong = value;
}
//
bool GetAllowShort()
{
return mAllowShort;
}
//
void SetAllowShort(bool value)
{
mAllowShort = value;
}
//
double GetMinProfitPerTrade()
{
return mMinProfitPerTrade;
}
//
void SetMinProfitPerTrade(double value)
{
//
if (value <= 0)
{
value = 0;
}
//
if (value == mMinProfitPerTrade)
{
return;
}
//
mMinProfitPerTrade = value;
}
//
double GetMinProfitPerVolumeFactor()
{
return mMinProfitPerVolumeFactor;
}
//
void SetMinProfitPerVolumeFactor(double value)
{
//
if (value <= 0)
{
value = 0;
}
//
if (value == mMinProfitPerVolumeFactor)
{
return;
}
//
mMinProfitPerVolumeFactor = value;
}
//
bool IsHedgeEnable()
{
//
bool result =
//
mMinProfitPerTrade > 0 &&
mMinProfitPerVolumeFactor > 0
//
;
//
return result;
}
//
// Overrides ...
@@ -2678,41 +2518,7 @@ public:
}
//
// Filter Signals Based on their Types ...
XSignal filteredSignals[];
//
// Try to Filter Signals ...
for (int i = 0; i < signalsCount; i++)
{
//
XSignal iSignal = signals[i];
//
bool isLong = IsLong(iSignal.type);
//
if ((isLong && !GetAllowLong()) || (!isLong && !GetAllowShort()))
{
continue;
}
//
AddRef(
iSignal,
filteredSignals //
);
}
//
int filteredSignalsCount = ArraySize(filteredSignals);
if (filteredSignalsCount <= 0)
{
return;
}
//
int managedSignalsCount = HandleSignalManagement(filteredSignals);
int managedSignalsCount = HandleSignalManagement(signals);
if (managedSignalsCount <= 0)
{
return;
@@ -2723,7 +2529,7 @@ public:
XSignal notExecuteds[];
ENUM_X_SIGNAL_EXECUTION_RESULT reasons[];
int executedSignalsCount = mTrader.ExecuteSpecifiedSignals(
filteredSignals,
signals,
notExecuteds, // Not Executed Signals
reasons
//
@@ -2734,7 +2540,7 @@ public:
if (executedSignalsCount == 0)
{
//
message = "(" + ToString(filteredSignalsCount) + ") Signals Execution Failed ...";
message = "(" + ToString(managedSignalsCount) + ") Signals Execution Failed ...";
//
for (int j = 0; j < ArraySize(reasons); j++)
@@ -2746,15 +2552,15 @@ public:
message += "\n" + ToString(j) + ": " + iReason;
}
}
else if (executedSignalsCount < filteredSignalsCount)
else if (executedSignalsCount < managedSignalsCount)
{
//
int diff = filteredSignalsCount - executedSignalsCount;
int diff = managedSignalsCount - executedSignalsCount;
//
message = "Failed to Execute (" + ToString(diff) + ") Signals ...";
}
else if (executedSignalsCount == filteredSignalsCount)
else if (executedSignalsCount == managedSignalsCount)
{
message = "(" + ToString(executedSignalsCount) + ") Signals Executed Successfully ...";
}
@@ -2830,39 +2636,6 @@ protected:
}
}
//
// Position Management ...
//
// Calculate Required Profit for Hedging ...
double CalculateRequiredProfitForHedge(
XPosition &positions[] // Source
)
{
//
double result = SpecifiedCalculateRequiredProfitForHedge(
positions,
mMinProfitPerTrade,
mMinProfitPerVolumeFactor //
);
//
return result;
}
//
// Calculate Positions Profit Summary ...
double CalculatePositionsProfit(
XPosition &positions[] // Source
)
{
//
double result = SpecifiedCalculatePositionsProfit(positions);
//
return result;
}
//
// Profit Tracker ...
@@ -3411,11 +3184,12 @@ protected:
//
// Close All Specified Provider's Positions in Profit Summary ...
void HandleGuardHedgeAction(
string provider, // Positions Provided by Specific Provider
string symbol, // Trading Symbol
ENUM_POSITION_TYPE type, // Trading Type
ENUM_TIMEFRAMES period, // Specified Time Frame
double minProfitForHedging = 1 // Specified Profit for Hedge
string provider, // Positions Provided by Specific Provider
string symbol, // Trading Symbol
ENUM_POSITION_TYPE type, // Trading Type
ENUM_TIMEFRAMES period, // Specified Time Frame
double minProfitForHedging = 1, // Specified Profit for Hedge
double minProfitForHedgingVolumeFactor = 0.01 // Specified Volume Factor for Hedge
)
{
//
@@ -3435,8 +3209,12 @@ protected:
}
//
double profit = CalculatePositionsProfit(positions);
double requiredProfit = CalculateRequiredProfitForHedge(positions);
double profit = SpecifiedCalculatePositionsProfit(positions);
double requiredProfit = SpecifiedCalculateRequiredProfitForHedge(
positions,
minProfitForHedging,
minProfitForHedgingVolumeFactor //
);
//
bool isReadyForHedge = profit >= requiredProfit;
@@ -3885,14 +3663,6 @@ private:
// Signal Event Listeners ...
TOnSignal mOnSignalEventHandlers[];
//
// Position Management ...
bool mAllowLong; // Allow Long Trades
bool mAllowShort; // Allow Short Trades
double mMinProfitPerTrade; // Min Profit Per Trade based On Volume Factor (Hedge)
double mMinProfitPerVolumeFactor; // Min Volume Factor for Calculating Profit (Hedge)
double mStaticVolume; // Static Volume for Positions
//
// Event Handlers ...
TOnStopLoss mOnStopLossTriggered;
+5 -9
View File
@@ -527,12 +527,11 @@ public:
//
// Constructors ...
void XSCTrade(
int slippage, // Specify Slippage
ulong magicNumber, // Specify Magic Number
int manageInterval, // Manager Check Intervals Seconds
double maxAllowedSpread, // Max Allowed Spred for Opening Trades
int maxAllowedPositions, // Max Allowed Positions
double maxAllowedDrawdownFactor // Max Allowed Drawdown Factor
int slippage, // Specify Slippage
ulong magicNumber, // Specify Magic Number
double maxAllowedSpread = 0, // Max Allowed Spred for Opening Trades
int maxAllowedPositions = 0, // Max Allowed Positions
double maxAllowedDrawdownFactor = 0 // Max Allowed Drawdown Factor
)
{
//
@@ -540,9 +539,6 @@ public:
mSlippage = slippage;
mMagicNumber = magicNumber;
//
mManageInterval = manageInterval;
//
mMaxAllowedSpread = maxAllowedSpread;
mMaxAllowedPositions = maxAllowedPositions;