Complete XPOi MomentumBar ...
This commit is contained in:
@@ -28,6 +28,12 @@
|
||||
#include "../Helpers/x-saherelm.xcc.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xct.helper.mq5"
|
||||
#include "../X121SMCEA/Classes/x-121.smc.ea.panel.class.mq5"
|
||||
#include "../X121SMCEA/Strategy/x-121.smc.strategy.class.mq5"
|
||||
|
||||
//
|
||||
// TEST ...
|
||||
#include "../Classes/x-saherelm.x-poi.class.mq5"
|
||||
XCPOI *eaPOI;
|
||||
|
||||
//
|
||||
// Inputs ...
|
||||
@@ -39,6 +45,12 @@ input long eaMagicNumber = 78692110; // Magic Number
|
||||
input int eaSlippage = 10; // Slippgae
|
||||
input string eaLogSuffix = ""; // Log Suffix
|
||||
|
||||
//
|
||||
// Symbols ...
|
||||
input group "Symbols";
|
||||
input bool eaMultiSymbol = false; // Use Multi Symbol
|
||||
input string eaSymbols = "EURUSDb,GBPUSDb,USDJPYb,USDCHFb,DowJones30,XAUUSDb"; // Trading Symbols
|
||||
|
||||
//
|
||||
// Alert ...
|
||||
// Here we Provider All Requirements for
|
||||
@@ -62,13 +74,14 @@ input bool eaReportNewHours = false; // Report New Hours
|
||||
// Define Local Variables ...
|
||||
|
||||
//
|
||||
string eaLogTag; // EA Log Prefix ...
|
||||
XSCAlert *eaAlert; // Alert Provider for Expert Adviser ...
|
||||
XSCTrade *eaTrader; // Trader of Expert Adviser ...
|
||||
XTimeTracker eaTimeTracker; // Time Tracker for Providing Reports ...
|
||||
XSCXCTHelper *eaCTHelper; // Bar Timer Indicator Helper class ...
|
||||
XSCXCCHelper *eaCCHelper; // Chart Styler Indicator Helper Class ...
|
||||
X121CAppDialog eaMainWindow; // EA Main Dialog ...
|
||||
string eaLogTag; // EA Log Prefix ...
|
||||
XSCAlert *eaAlert; // Alert Provider for Expert Adviser ...
|
||||
XSCTrade *eaTrader; // Trader of Expert Adviser ...
|
||||
XTimeTracker eaTimeTracker; // Time Tracker for Providing Reports ...
|
||||
XSCXCTHelper *eaCTHelper; // Bar Timer Indicator Helper class ...
|
||||
XSCXCCHelper *eaCCHelper; // Chart Styler Indicator Helper Class ...
|
||||
X121CAppDialog eaMainWindow; // EA Main Dialog ...
|
||||
XCX121SMCStrategy *eaStrategies[]; // Registere Strategies in EA ...
|
||||
|
||||
//
|
||||
// Event Handlers ...
|
||||
@@ -159,6 +172,15 @@ void OnTick()
|
||||
HandleReportTime();
|
||||
UpdatePositionsState();
|
||||
|
||||
//
|
||||
// TEST ...
|
||||
ENUM_XPOI_EVENTS states[];
|
||||
int statesCount = eaPOI.Update(states);
|
||||
if (IsValidSize(statesCount))
|
||||
{
|
||||
eaAlert.Log("POI Events Happens: " + ToString(statesCount));
|
||||
}
|
||||
|
||||
//
|
||||
// TODO: Implemetn Tick Processors Algorithm ...
|
||||
}
|
||||
@@ -241,6 +263,21 @@ void OnPositionForceClosed(
|
||||
HandleReportBalance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Do What we Want by Specific Signal ...
|
||||
*
|
||||
* @param signal: XSignal instance ...
|
||||
* @param conditions: XStrategyConditions instance ...
|
||||
*/
|
||||
void OnSignalRecieved(
|
||||
XSignal &signal,
|
||||
XStrategyConditions &conditions //
|
||||
)
|
||||
{
|
||||
//
|
||||
// TODO: Implement this ...
|
||||
}
|
||||
|
||||
//
|
||||
// Custom Functions ...
|
||||
|
||||
@@ -387,6 +424,111 @@ bool InitEA()
|
||||
eaTrader.AddOnTakeProfitEventHandler(OnTakeProfitTriggered);
|
||||
eaTrader.AddOnForceClosePositionEventHandler(OnPositionForceClosed);
|
||||
|
||||
//
|
||||
// TEST ...
|
||||
eaPOI = new XCPOI(
|
||||
_Symbol,
|
||||
_Period //
|
||||
);
|
||||
eaPOI.EnableDrawPOIs();
|
||||
eaPOI.AllowDrawSwingHighs(false);
|
||||
eaPOI.AllowDrawSwingLows(false);
|
||||
eaPOI.Init();
|
||||
|
||||
// //
|
||||
// // Symbols Parsing ...
|
||||
|
||||
// //
|
||||
// // Parsers ...
|
||||
// XSymbolParser _symbolParser;
|
||||
|
||||
// //
|
||||
// // Single Symbol ...
|
||||
// if (!eaMultiSymbol)
|
||||
// {
|
||||
|
||||
// //
|
||||
// // Register Strategy ...
|
||||
// }
|
||||
// //
|
||||
// // Multi Symbol ...
|
||||
// else
|
||||
// {
|
||||
// //
|
||||
// // Parse Symbols ...
|
||||
// string symbols[];
|
||||
// int symbolsCount = SplitContent(
|
||||
// symbols,
|
||||
// eaSymbols //
|
||||
// );
|
||||
// result = IsValidSize(symbolsCount);
|
||||
// if (!result)
|
||||
// {
|
||||
// return result;
|
||||
// }
|
||||
|
||||
// //
|
||||
// for (int i = 0; i < symbolsCount; i++)
|
||||
// {
|
||||
// //
|
||||
// // Select Symbol ...
|
||||
// string iSymbol = symbols[i];
|
||||
|
||||
// //
|
||||
// // Register Strategy Based On Symbol ...
|
||||
|
||||
// //
|
||||
// // Parse Symbol ...
|
||||
// bool isEURUSD = _symbolParser.IsEURUSD(_Symbol);
|
||||
// bool isGBPUSD = _symbolParser.IsGBPUSD(_Symbol);
|
||||
// bool isEURGBP = _symbolParser.IsEURGBP(_Symbol);
|
||||
// bool isUSDCHF = _symbolParser.IsUSDCHF(_Symbol);
|
||||
// bool isEURCHF = _symbolParser.IsEURCHF(_Symbol);
|
||||
// bool isUSDJPY = _symbolParser.IsUSDJPY(_Symbol);
|
||||
// bool isEURJPY = _symbolParser.IsEURJPY(_Symbol);
|
||||
// bool isUSDCAD = _symbolParser.IsUSDCAD(_Symbol);
|
||||
// bool isEURCAD = _symbolParser.IsEURCAD(_Symbol);
|
||||
// bool isAUDUSD = _symbolParser.IsAUDUSD(_Symbol);
|
||||
// bool isEURAUD = _symbolParser.IsEURAUD(_Symbol);
|
||||
// bool isNZDUSD = _symbolParser.IsNZDUSD(_Symbol);
|
||||
// bool isEURNZD = _symbolParser.IsEURNZD(_Symbol);
|
||||
|
||||
// //
|
||||
// // Check Symbol Can Register or not ...
|
||||
// bool canRegisterStrategy = true;
|
||||
|
||||
// //
|
||||
// if (canRegisterStrategy)
|
||||
// {
|
||||
// //
|
||||
// // Create Class Instance ...
|
||||
// XCX121SMCStrategy *iX121SMCStrategy;
|
||||
// iX121SMCStrategy = new XCX121SMCStrategy(
|
||||
// iSymbol,
|
||||
// _Period //
|
||||
// );
|
||||
|
||||
// //
|
||||
// // Configuere Strategy ...
|
||||
// // iX121SMCStrategy.DrawImportantAreas(false);
|
||||
// // iX121SMCStrategy.AddXSignalEventHandler(OnSignalRecieved);
|
||||
|
||||
// // //
|
||||
// // // Configure Alerts ...
|
||||
// // iX121SMCStrategy.SetAlertPrefix(eaLogTag);
|
||||
// // iX121SMCStrategy.SetAlertEnableAlerts(eAEnableAlerts);
|
||||
// // iX121SMCStrategy.SetAlertLogAlerts(eALogAlerts);
|
||||
// // iX121SMCStrategy.SetAlertMailAlerts(eAMailAlerts);
|
||||
// // iX121SMCStrategy.SetAlertPushAlerts(eAPushAlerts);
|
||||
// // iX121SMCStrategy.SetAlertTerminalAlerts(eATerminalAlerts);
|
||||
|
||||
// //
|
||||
// // Register Strategy ...
|
||||
// RegisterStrategy(iX121SMCStrategy);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
@@ -402,6 +544,10 @@ void DestroyEA()
|
||||
|
||||
//
|
||||
delete eaAlert;
|
||||
|
||||
//
|
||||
// TEST ...
|
||||
delete eaPOI;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -566,3 +712,28 @@ void HandleReportTime()
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
/**
|
||||
* Register an Strategy in EA ...
|
||||
*
|
||||
* @param strategy: XCX121SMCStrategy instance ...
|
||||
*/
|
||||
void RegisterStrategy(XCX121SMCStrategy *strategy)
|
||||
{
|
||||
//
|
||||
if (strategy == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
ArrayResize(
|
||||
eaStrategies,
|
||||
ArraySize(eaStrategies) + 1 //
|
||||
);
|
||||
|
||||
//
|
||||
eaStrategies[ArraySize(eaStrategies) - 1] = strategy;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user