This commit is contained in:
2024-10-02 13:55:26 +03:30
parent f5fc54f971
commit ecf4fa97b7
+127 -114
View File
@@ -190,6 +190,15 @@ XTimeTracker eaTimeTracker;
// Trade Handler Instance Class ... // Trade Handler Instance Class ...
X121SCTradeHandler *eaTradeHandler; X121SCTradeHandler *eaTradeHandler;
//
// Since Signal Filtering done based on
// Strategy and it's not related to Public
// TradeHandler for Seperation of Concern issue,
// we do this here ...
XCHStartegyConditionsParser chParser;
XCHCHEStartegyConditionsParser chcheParser;
XCHICHWAPStartegyConditionsParser chichwapParser;
// //
string mTag = ""; string mTag = "";
@@ -624,6 +633,60 @@ bool InitEA()
// Single Symbol ... // Single Symbol ...
if (!eaMultiSymbol) if (!eaMultiSymbol)
{ {
//
// Register XICHWAP Strategy ...
//
bool isEURUSD = _symbolParser.IsEURUSD(_Symbol);
bool isGBPUSD = _symbolParser.IsGBPUSD(_Symbol);
bool canRegisterICHWAP = isEURUSD ||
isGBPUSD;
if (canRegisterICHWAP)
{
//
// Create Class Instance ...
XSCXCHICHWAPStrategy *xchichwapStrategy;
xchichwapStrategy = new XSCXCHICHWAPStrategy(
_Symbol,
_Period,
PERIOD_H1, // Analyzing Period
eaVolume,
eaR2R, // R2R ...
eaSlippage,
eaMagicNumber,
true, // Ignore Signal Execution
eaUseFixedTPSLPoints, // Use TP SL Point
false, // Use Max
eaTPPoint, // TP
eaSLPoint, // SL
eaIgnoreTP,
eaIgnoreSL,
eaAllowLong,
eaAllowShort,
eaMaxAllowedLongs, // Max Longs
eaMaxAllowedShorts // Max Shorts
);
//
// Configuere Strategy ...
xchichwapStrategy.DrawImportantAreas(false);
xchichwapStrategy.AddXCHSignalEventHandler(OnSignalRecieved);
//
// Configure Alerts ...
xchichwapStrategy.SetAlertPrefix(mTag);
xchichwapStrategy.SetAlertEnableAlerts(eAEnableAlerts);
xchichwapStrategy.SetAlertLogAlerts(eALogAlerts);
xchichwapStrategy.SetAlertMailAlerts(eAMailAlerts);
xchichwapStrategy.SetAlertPushAlerts(eAPushAlerts);
xchichwapStrategy.SetAlertTerminalAlerts(eATerminalAlerts);
//
// Register Strategy ...
RegisterStrategy(xchichwapStrategy);
}
// //
// Register XCH Strategy ... // Register XCH Strategy ...
@@ -717,59 +780,6 @@ bool InitEA()
// //
// Register Strategy ... // Register Strategy ...
RegisterStrategy(xchcheStrategy); RegisterStrategy(xchcheStrategy);
//
// Register XICHWAP Strategy ...
//
bool isEURUSD = _symbolParser.IsEURUSD(_Symbol);
bool isGBPUSD = _symbolParser.IsGBPUSD(_Symbol);
bool canRegisterICHWAP = isEURUSD ||
isGBPUSD;
if (canRegisterICHWAP)
{
//
// Create Class Instance ...
XSCXCHICHWAPStrategy *xchichwapStrategy;
xchichwapStrategy = new XSCXCHICHWAPStrategy(
_Symbol,
_Period,
PERIOD_H1, // Analyzing Period
eaVolume,
eaR2R, // R2R ...
eaSlippage,
eaMagicNumber,
true, // Ignore Signal Execution
eaUseFixedTPSLPoints, // Use TP SL Point
false, // Use Max
eaTPPoint, // TP
eaSLPoint, // SL
eaIgnoreTP,
eaIgnoreSL,
eaAllowLong,
eaAllowShort,
eaMaxAllowedLongs, // Max Longs
eaMaxAllowedShorts // Max Shorts
);
//
// Configuere Strategy ...
xchichwapStrategy.DrawImportantAreas(false);
xchichwapStrategy.AddXCHSignalEventHandler(OnSignalRecieved);
//
// Configure Alerts ...
xchichwapStrategy.SetAlertPrefix(mTag);
xchichwapStrategy.SetAlertEnableAlerts(eAEnableAlerts);
xchichwapStrategy.SetAlertLogAlerts(eALogAlerts);
xchichwapStrategy.SetAlertMailAlerts(eAMailAlerts);
xchichwapStrategy.SetAlertPushAlerts(eAPushAlerts);
xchichwapStrategy.SetAlertTerminalAlerts(eATerminalAlerts);
//
// Register Strategy ...
RegisterStrategy(xchichwapStrategy);
}
} }
// //
// Multi Symbol ... // Multi Symbol ...
@@ -795,6 +805,59 @@ bool InitEA()
// Select Symbol ... // Select Symbol ...
string iSymbol = symbols[i]; string iSymbol = symbols[i];
//
// Register XICHWAP Strategy ...
//
bool isEURUSD = _symbolParser.IsEURUSD(iSymbol);
bool isGBPUSD = _symbolParser.IsGBPUSD(iSymbol);
bool canRegisterICHWAP = isEURUSD ||
isGBPUSD;
if (canRegisterICHWAP)
{
//
// Create Class Instance ...
XSCXCHICHWAPStrategy *iXCHICHWAPStrategy;
iXCHICHWAPStrategy = new XSCXCHICHWAPStrategy(
iSymbol,
_Period,
PERIOD_H1, // Analyzing Period
eaVolume,
eaR2R, // R2R ...
eaSlippage,
eaMagicNumber,
true, // Ignore Signal Execution
eaUseFixedTPSLPoints, // Use TP SL Point
false, // Use Max
eaTPPoint, // TP
eaSLPoint, // SL
eaIgnoreTP,
eaIgnoreSL,
eaAllowLong,
eaAllowShort,
eaMaxAllowedLongs, // Max Longs
eaMaxAllowedShorts // Max Shorts
);
//
// Configuere Strategy ...
iXCHICHWAPStrategy.DrawImportantAreas(false);
iXCHICHWAPStrategy.AddXCHSignalEventHandler(OnSignalRecieved);
//
// Configure Alerts ...
iXCHICHWAPStrategy.SetAlertPrefix(mTag);
iXCHICHWAPStrategy.SetAlertEnableAlerts(eAEnableAlerts);
iXCHICHWAPStrategy.SetAlertLogAlerts(eALogAlerts);
iXCHICHWAPStrategy.SetAlertMailAlerts(eAMailAlerts);
iXCHICHWAPStrategy.SetAlertPushAlerts(eAPushAlerts);
iXCHICHWAPStrategy.SetAlertTerminalAlerts(eATerminalAlerts);
//
// Register Strategy ...
RegisterStrategy(iXCHICHWAPStrategy);
}
// //
// Register XCH Strategy ... // Register XCH Strategy ...
@@ -888,59 +951,6 @@ bool InitEA()
// //
// Register Strategy ... // Register Strategy ...
RegisterStrategy(iXCHCHEStrategy); RegisterStrategy(iXCHCHEStrategy);
//
// Register XICHWAP Strategy ...
//
bool isEURUSD = _symbolParser.IsEURUSD(iSymbol);
bool isGBPUSD = _symbolParser.IsGBPUSD(iSymbol);
bool canRegisterICHWAP = isEURUSD ||
isGBPUSD;
if (canRegisterICHWAP)
{
//
// Create Class Instance ...
XSCXCHICHWAPStrategy *iXCHICHWAPStrategy;
iXCHICHWAPStrategy = new XSCXCHICHWAPStrategy(
iSymbol,
_Period,
PERIOD_H1, // Analyzing Period
eaVolume,
eaR2R, // R2R ...
eaSlippage,
eaMagicNumber,
true, // Ignore Signal Execution
eaUseFixedTPSLPoints, // Use TP SL Point
false, // Use Max
eaTPPoint, // TP
eaSLPoint, // SL
eaIgnoreTP,
eaIgnoreSL,
eaAllowLong,
eaAllowShort,
eaMaxAllowedLongs, // Max Longs
eaMaxAllowedShorts // Max Shorts
);
//
// Configuere Strategy ...
iXCHICHWAPStrategy.DrawImportantAreas(false);
iXCHICHWAPStrategy.AddXCHSignalEventHandler(OnSignalRecieved);
//
// Configure Alerts ...
iXCHICHWAPStrategy.SetAlertPrefix(mTag);
iXCHICHWAPStrategy.SetAlertEnableAlerts(eAEnableAlerts);
iXCHICHWAPStrategy.SetAlertLogAlerts(eALogAlerts);
iXCHICHWAPStrategy.SetAlertMailAlerts(eAMailAlerts);
iXCHICHWAPStrategy.SetAlertPushAlerts(eAPushAlerts);
iXCHICHWAPStrategy.SetAlertTerminalAlerts(eATerminalAlerts);
//
// Register Strategy ...
RegisterStrategy(iXCHICHWAPStrategy);
}
} }
} }
@@ -1263,17 +1273,10 @@ void OnSignalRecieved(
return; return;
} }
//
// Since Signal Filtering done based on
// Strategy and it's not related to Public
// TradeHandler for Seperation of Concern issue,
// we do this here ...
XCHStartegyConditionsParser chParser;
XCHCHEStartegyConditionsParser chcheParser;
// //
bool isXCHSignal = signal.provider == XCHStartegyToken; bool isXCHSignal = signal.provider == XCHStartegyToken;
bool isXCHCHESignal = signal.provider == XCHCHEStartegyToken; bool isXCHCHESignal = signal.provider == XCHCHEStartegyToken;
bool isXCHICHWAPSignal = signal.provider == XCHICHWAPStartegyToken;
bool isFiltered = bool isFiltered =
isXCHSignal isXCHSignal
? chParser.IsFiltered( ? chParser.IsFiltered(
@@ -1285,6 +1288,11 @@ void OnSignalRecieved(
signal, signal,
conditions // conditions //
) )
: isXCHICHWAPSignal
? chichwapParser.IsFiltered(
signal,
conditions //
)
: true; : true;
if (isFiltered) if (isFiltered)
{ {
@@ -1314,6 +1322,11 @@ void OnSignalRecieved(
signal, signal,
conditions // conditions //
) )
: isXCHICHWAPSignal
? chichwapParser.GenerateSignalConditions(
signal,
conditions //
)
: conditionsSummary; : conditionsSummary;
// //