cleanup some unused params from cleasses ...
This commit is contained in:
@@ -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 //
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user