Add support for Detect and Draw Market Structure ...

This commit is contained in:
2025-10-09 04:22:44 +03:30
parent 430d822d3e
commit fc318b5c19
8 changed files with 2199 additions and 2174 deletions
@@ -41,13 +41,14 @@ class XCXFIMABaseSignaller : public XCBaseSignaller
// Props ...
//
bool ignoreTargets; // Ignore Signal Targets ...
CArrayObj drawnObjects; // Drawing Objects Holder ...
XFIMAInputs fimaInputs; // XFIMA Inputs ...
XCXFIMAHelper *fimaHelper; // XFIMA Indicator Helper ...
XCXFIMAPOIDrawer *poiDrawer; // XFIMA POI Drawer ...
XCXFIMAPOIDetector *poiDetector; // XFIMA POI Detector ...
XPatternAnalysisConfig patternAnalyserConfig; // Bar Pattern Analyser Config ...
bool ignoreTargets; // Ignore Signal Targets ...
CArrayObj drawnObjects; // Drawing Objects Holder ...
XFIMAInputs fimaInputs; // XFIMA Inputs ...
XCXFIMAHelper *fimaHelper; // XFIMA Indicator Helper ...
XCXFIMAPOIDrawer *poiDrawer; // XFIMA POI Drawer ...
XCXFIMAPOIDetector *poiDetector; // XFIMA POI Detector ...
XFIMAMarketStructureConfig structureConfig; // XFIMA Market Structure Detector Config ...
XFIMAMarketStructureDrawerConfig structureDrawConfig; // XFIMA Market Structure Draw Config ...
//
// Constructor ...
@@ -98,11 +99,8 @@ class XCXFIMABaseSignaller : public XCBaseSignaller
//
// Configure ...
//
patternAnalyserConfig.Clean();
patternAnalyserConfig.Default();
patternAnalyserConfig.FullPattern();
structureConfig.Default();
structureDrawConfig.Default();
}
//
@@ -142,8 +140,8 @@ class XCXFIMABaseSignaller : public XCBaseSignaller
ZeroMemory(poiDetector);
//
// analyserConfig.Clean();
patternAnalyserConfig.Clean();
structureConfig.Clean();
structureDrawConfig.Clean();
}
//
@@ -254,7 +252,7 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
public:
//
// Props ...
// XFIMAPatternDetectorConfig analyserConfig;
XFIMAMarketStructure structure; // XFIMA Market Structure ...
//
// Constructor ...
@@ -277,12 +275,12 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
)
{
//
// Configures ...
// Configure ...
structureConfig.Default();
structureDrawConfig.Default();
//
patternAnalyserConfig.Clean();
patternAnalyserConfig.Default();
patternAnalyserConfig.FullPattern();
structure.Clean();
//
// Ignore Signal Targets ...
@@ -293,7 +291,11 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
// Deconstructor ...
~XCXFIMAStrategy1Signaller()
{
//
Destroy();
//
structure.Clean();
}
//
@@ -366,67 +368,17 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
}
//
// Analyse Market ...
// poiDetector.AnalyseMarket(
// iBar,
// iStructure,
// analyserConfig //
// );
//
// Bar Pattern Analysis Detection Test ...
// has = poiDetector.AnalyseBarPatterns(
// iBar,
// iBarAnalysis,
// patternAnalyserConfig //
// );
// DrawBarPatternAnalysis(iBarAnalysis, patternAnalyserDrawConfig);
// //
// has = fimaHelper.IsBoundaryFakeBreaked(
// iDir,
// iBar.Index() //
// );
// if (has)
// {
// Print("Hot Place Detected");
// }
// //
// XPivot pvPivots[];
// count = fimaHelper.ExtractPVPivots(
// pvPivots,
// iBar.Index(),
// 25,
// 1500,
// 5 //
// );
// has = IsValidSize(count);
// if (has) {
// //
// XPivotAnalysis pvAnalysis;
// has = pvAnalysis.Init(
// "XPV",
// symbol,
// period,
// pvPivots //
// );
// if (has) {
// //
// XPivotAnalysisDrawConfig iC;
// iC.Default();
// iC.drawPivots = true;
// iC.drawPeakTrend = true;
// iC.drawValeTrend = true;
// poiDrawer.DrawPivotAnalysis(
// pvAnalysis,
// iC //
// );
// //
// Print("PV Analysis ...");
// }
// }
structure.Clean();
poiDetector.AnalyseMarket(
structure,
structureConfig,
barIndex //
);
poiDrawer.drawnObjects.Clear();
poiDrawer.DrawMarketStructure(
structure,
structureDrawConfig //
);
//
// Disable Signallers ...
@@ -571,7 +523,7 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
XTarget &targets[],
ENUM_X_DIRECTION &dir,
XFIMAConditions &conditions,
XFIMAMarketStructure &structure //
XFIMAMarketStructure &_structure //
)
{
//
@@ -655,7 +607,7 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
XTarget &targets[],
ENUM_X_DIRECTION &dir,
XFIMAConditions &conditions,
XFIMAMarketStructure &structure //
XFIMAMarketStructure &_structure //
)
{
//
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff