add XTargetManager Class and use it in XBacktesterEA Class ...
also i have to implement it's usage on XCExpert Class ... extends XTarget approaches and add support to Distances ...
This commit is contained in:
@@ -228,6 +228,7 @@ int OnInit()
|
||||
eaExpert.AddOnDealsChangedEventHandler(OnDealsChanged);
|
||||
eaExpert.AddOnStopLossEventHandler(OnStopLossTriggered);
|
||||
eaExpert.AddOnOrdersChangedEventHandler(OnOrdersChanged);
|
||||
eaExpert.AddOnSignalExecutedEventHandler(OnSignalExecuted);
|
||||
eaExpert.AddOnTakeProfitEventHandler(OnTakeProfitTriggered);
|
||||
eaExpert.AddOnModifyPositionEventHandler(OnPositionModified);
|
||||
eaExpert.AddOnPositionsChangedEventHandler(OnPositionsChanged);
|
||||
@@ -440,10 +441,8 @@ void OnTick()
|
||||
int barIndex = 1;
|
||||
|
||||
//
|
||||
// Signallers Calling OnTick ...
|
||||
fima1Signaller.OnTick(barIndex);
|
||||
|
||||
//
|
||||
// AnalyseMarket(barIndex);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -590,17 +589,6 @@ void DestroyTimer()
|
||||
*/
|
||||
void OnSignalTriggered(XSignal &signal)
|
||||
{
|
||||
//
|
||||
// Validate Signal ...
|
||||
if (!signal.IsValid())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// TODO: Fix this ...
|
||||
// return;
|
||||
|
||||
//
|
||||
// Draw Signal on Chart ...
|
||||
XCSignalObject *iSignalObj;
|
||||
@@ -611,60 +599,17 @@ void OnSignalTriggered(XSignal &signal)
|
||||
);
|
||||
|
||||
//
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
ENUM_X_SIGNAL_EXECUTION_RESULT result;
|
||||
eaExpert.eaTrader.ExecuteSignal(
|
||||
signal,
|
||||
result //
|
||||
);
|
||||
eaExpert.HandleOnSignalTriggered(signal);
|
||||
}
|
||||
|
||||
//
|
||||
Print("Signal Issued: ", signal.GetObjectID());
|
||||
}
|
||||
|
||||
//
|
||||
// Try to Execute Signal ...
|
||||
|
||||
//
|
||||
// Draw Signal Vertical Line ...
|
||||
|
||||
// //
|
||||
// CChartObjectVLine *iObj = new CChartObjectVLine();
|
||||
|
||||
// //
|
||||
// string iName = signal.GetObjectID();
|
||||
// color iColor = IsLong(signal.type) ? clrLime : clrRed;
|
||||
|
||||
// //
|
||||
// bool has = iObj.Create(
|
||||
// fima2Signaller.poiDrawer.ChartIdentification(),
|
||||
// iName,
|
||||
// fima2Signaller.poiDrawer.SubWindowIdentification(),
|
||||
// signal.time //
|
||||
// );
|
||||
// if (has)
|
||||
// {
|
||||
// //
|
||||
// iObj.Width(2);
|
||||
// iObj.Color(iColor);
|
||||
|
||||
// //
|
||||
// // eaDraws.Add(iObj);
|
||||
// }
|
||||
|
||||
// //
|
||||
// // Alert Issued Signal ...
|
||||
// string message = signal.GetMessage();
|
||||
|
||||
//
|
||||
// int signalBarIndex = GetBarIndex(
|
||||
// signal.symbol,
|
||||
// signal.period,
|
||||
// signal.time //
|
||||
// );
|
||||
// AnalyseMarket(signalBarIndex);
|
||||
/**
|
||||
* Trigger OnSignal Executed Event ...
|
||||
*
|
||||
* @param signal: XSignal
|
||||
*/
|
||||
void OnSignalExecuted(XSignal &signal)
|
||||
{
|
||||
eaExpert.HandleOnSignalExecuted(signal);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -793,117 +738,4 @@ void OnTradeStateChanged(const XOnTradeHandlerState &state)
|
||||
eaExpert.HandleOnTradeStateChanged(state);
|
||||
}
|
||||
|
||||
//
|
||||
void AnalyseMarket(int barIndex = 0)
|
||||
{
|
||||
//
|
||||
bool has = false;
|
||||
|
||||
//
|
||||
barIndex = NormalizeInt(barIndex, 0);
|
||||
|
||||
//
|
||||
string symbol = fima1Signaller.symbol;
|
||||
ENUM_TIMEFRAMES period = fima1Signaller.period;
|
||||
|
||||
//
|
||||
// Retrieve Signal Bar ...
|
||||
XOHCL bar;
|
||||
has = bar.Init(
|
||||
symbol,
|
||||
period,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
{
|
||||
//
|
||||
bar.Clean();
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// TODO: Remove this and add in OnInit() Method ...
|
||||
|
||||
//
|
||||
// Configuring Detector ...
|
||||
|
||||
|
||||
//
|
||||
detectorConfig.detectSwingTrend = true;
|
||||
|
||||
//
|
||||
detectorConfig.detectPinned = true;
|
||||
detectorConfig.detectMomentum = true;
|
||||
detectorConfig.detectEngulfed = true;
|
||||
detectorConfig.detectTrueGaped = true;
|
||||
|
||||
//
|
||||
detectorConfig.detectStarPattern = true;
|
||||
detectorConfig.detectFlagPattern = true;
|
||||
detectorConfig.detectRisingPattern = true;
|
||||
detectorConfig.detectPiercingPattern = true;
|
||||
detectorConfig.detectSignalKeyBarPattern = true;
|
||||
|
||||
//
|
||||
detectorConfig.analyseFIMAPVPivots = true;
|
||||
detectorConfig.analyseFIMAZigZagPivots = true;
|
||||
|
||||
//
|
||||
// Configure Drawer ...
|
||||
|
||||
//
|
||||
marketStructureDrawerConfig.drawOB = false;
|
||||
marketStructureDrawerConfig.drawFVG = false;
|
||||
|
||||
//
|
||||
marketStructureDrawerConfig.drawPinned = false;
|
||||
marketStructureDrawerConfig.drawEngulfed = true;
|
||||
marketStructureDrawerConfig.drawTrueGaped = false;
|
||||
marketStructureDrawerConfig.drawMomentum = false;
|
||||
marketStructureDrawerConfig.drawFlagPattern = false;
|
||||
marketStructureDrawerConfig.drawStarPattern = false;
|
||||
marketStructureDrawerConfig.drawRisingPattern = false;
|
||||
marketStructureDrawerConfig.drawPiercingPattern = false;
|
||||
marketStructureDrawerConfig.drawSignalKeyBarPattern = true;
|
||||
|
||||
//
|
||||
// Recents ...
|
||||
marketStructureDrawerConfig.drawRecentPatterns = false;
|
||||
marketStructureDrawerConfig.drawFakeBreakedZone = false;
|
||||
marketStructureDrawerConfig.drawRecentlyTestedZones = false;
|
||||
marketStructureDrawerConfig.drawRecentlyBreakedZones = false;
|
||||
|
||||
//
|
||||
// XPV ...
|
||||
marketStructureDrawerConfig.drawFIMAPVPivotsAnalysis = true;
|
||||
marketStructureDrawerConfig.drawFIMAPVPivotsAnalysisZones = true;
|
||||
marketStructureDrawerConfig.drawFIMAPVPivotsAnalysisTrends = true;
|
||||
marketStructureDrawerConfig.drawFIMAPVPivotsAnalysisPivots = true;
|
||||
|
||||
//
|
||||
// XSAR ...
|
||||
marketStructureDrawerConfig.drawFIMASARPivotsAnalysis = false;
|
||||
marketStructureDrawerConfig.drawFIMASARPivotsAnalysisZones = false;
|
||||
marketStructureDrawerConfig.drawFIMASARPivotsAnalysisTrends = false;
|
||||
marketStructureDrawerConfig.drawFIMASARPivotsAnalysisPivots = false;
|
||||
|
||||
//
|
||||
// XZigZag ...
|
||||
marketStructureDrawerConfig.drawFIMAZigZagPivotsAnalysis = true;
|
||||
marketStructureDrawerConfig.drawFIMAZigZagPivotsAnalysisZones = true;
|
||||
marketStructureDrawerConfig.drawFIMAZigZagPivotsAnalysisTrends = false;
|
||||
marketStructureDrawerConfig.drawFIMAZigZagPivotsAnalysisPivots = false;
|
||||
|
||||
//
|
||||
// Analyse Market on Signalling Bar ...
|
||||
fima1Signaller.poiDetector.AnalyseMarket(
|
||||
bar,
|
||||
marketStructure,
|
||||
detectorConfig //
|
||||
);
|
||||
|
||||
//
|
||||
bar.Clean();
|
||||
}
|
||||
|
||||
//
|
||||
Reference in New Issue
Block a user