last works ...

This commit is contained in:
2025-09-26 19:48:34 +03:30
parent 353a204162
commit 21ce1ebf4f
12 changed files with 3029 additions and 544 deletions
+155 -88
View File
@@ -387,6 +387,7 @@ int OnInit()
//
// Configure XFIMA POI Detector / Drawer ...
detectorConfig.Default();
detectorConfig.FullDetect();
marketStructureDrawerConfig.FullDraw();
//
@@ -456,91 +457,8 @@ void OnTick()
fima1Signaller.OnTick();
fima2Signaller.OnTick();
//
// Initial Bar for Analysis ...
XOHCL cBar;
bool isInited = cBar.Init(
_Symbol,
_Period,
0 //
);
//
// Here We Apply Custom Detecting ...
detectorConfig.OffDetectors();
detectorConfig.detectSupport = true;
detectorConfig.detectResistance = true;
detectorConfig.detectSignalKeyBarPattern = false;
detectorConfig.supportAndResistanceValidationLength = 21;
//
// Analyse Market ...
fima2Signaller.poiDetector.AnalyseMarket(
cBar,
marketStructure,
detectorConfig //
);
CArrayObj *iObjects;
int drawnsCount = fima2Signaller.poiDrawer.DrawMarketStructure(
marketStructure,
marketStructureDrawerConfig,
iObjects //
);
if (IsValidSize(drawnsCount))
{
//
AddObjects(
iObjects,
eaDraws //
);
}
//
// TODO: Remove this ...
XOHCL pBar;
bool has = cBar.GetPreviousBar(pBar);
if (marketStructure.isPTest)
{
//
// Check For PrevZoneExistanse ...
has = marketStructure.pTestedZone.IsValid();
if (has)
{
//
// Draw Prev Zone ...
XCBoxObject *iPrevZoneObj;
marketStructure.pTestedZone.to = pBar.time;
has = fima2Signaller.poiDrawer.DrawBox(
marketStructure.pTestedZone,
iPrevZoneObj //
);
if (has)
{
//
XPOIStyle style;
fima2Signaller.poiDrawer.GetBoxStyle(
style,
marketStructure.pTestedZone.dir //
);
style.clr = clrYellow;
fima2Signaller.poiDrawer.ApplyBoxStyle(
iPrevZoneObj,
style //
);
//
style.Clean();
eaDraws.Add(iPrevZoneObj);
}
}
//
Print("Previous Tested ...");
}
pBar.Clean();
//
cBar.Clean();
// //
// AnalyseMarket(0);
}
//
@@ -694,9 +612,6 @@ void OnSignalTriggered(XSignal &signal)
return;
}
//
return;
//
// Draw Signal Vertical Line ...
@@ -727,6 +642,14 @@ void OnSignalTriggered(XSignal &signal)
//
// Alert Issued Signal ...
string message = signal.GetMessage();
//
int signalBarIndex = GetBarIndex(
signal.symbol,
signal.period,
signal.time //
);
AnalyseMarket(signalBarIndex);
}
//
@@ -855,4 +778,148 @@ void OnTradeStateChanged(const XOnTradeHandlerState &state)
eaExpert.HandleOnTradeStateChanged(state);
}
//
void AnalyseMarket(int barIndex = 0)
{
//
bool has = false;
//
barIndex = NormalizeInt(barIndex, 0);
//
string symbol = fima2Signaller.symbol;
ENUM_TIMEFRAMES period = fima2Signaller.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.detectOB = true;
detectorConfig.detectFVG = true;
//
detectorConfig.detectSupport = true;
detectorConfig.detectResistance = true;
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.analyseFIMAMAPivots = false;
detectorConfig.analyseFIMASARPivots = false;
detectorConfig.analyseFIMAZigZagPivots = false;
//
// Configure Drawer ...
//
// Recents ...
marketStructureDrawerConfig.drawFakeBreakedZone = true;
marketStructureDrawerConfig.drawRecentlyTestedZones = true;
marketStructureDrawerConfig.drawRecentlyBreakedZones = true;
//
// XPV ...
marketStructureDrawerConfig.drawFIMAPVPivotsAnalysis = true;
marketStructureDrawerConfig.drawFIMAPVPivotsAnalysisZones = true;
marketStructureDrawerConfig.drawFIMAPVPivotsAnalysisTrends = true;
marketStructureDrawerConfig.drawFIMAPVPivotsAnalysisPivots = true;
//
// XMA ...
marketStructureDrawerConfig.drawFIMAMAPivotsAnalysis = false;
marketStructureDrawerConfig.drawFIMAMAPivotsAnalysisZones = false;
marketStructureDrawerConfig.drawFIMAMAPivotsAnalysisTrends = false;
marketStructureDrawerConfig.drawFIMAMAPivotsAnalysisPivots = false;
//
// XSAR ...
marketStructureDrawerConfig.drawFIMASARPivotsAnalysis = false;
marketStructureDrawerConfig.drawFIMASARPivotsAnalysisZones = false;
marketStructureDrawerConfig.drawFIMASARPivotsAnalysisTrends = false;
marketStructureDrawerConfig.drawFIMASARPivotsAnalysisPivots = false;
//
// XZigZag ...
marketStructureDrawerConfig.drawFIMAZigZagPivotsAnalysis = false;
marketStructureDrawerConfig.drawFIMAZigZagPivotsAnalysisZones = false;
marketStructureDrawerConfig.drawFIMAZigZagPivotsAnalysisTrends = false;
marketStructureDrawerConfig.drawFIMAZigZagPivotsAnalysisPivots = false;
//
// Analyse Market on Signalling Bar ...
fima2Signaller.poiDetector.AnalyseMarket(
bar,
marketStructure,
detectorConfig //
);
//
// Draw Market Structure ...
CArrayObj *marketStructureObjects;
int marketStructureObjectsCount = fima2Signaller.poiDrawer.DrawMarketStructure(
marketStructure,
marketStructureDrawerConfig,
marketStructureObjects //
);
if (IsValidIndex(marketStructureObjectsCount))
{
//
// Add Drawn Objects if Necessary ...
}
//
if (HasChild(marketStructure.recentlyTestedZones))
{
Print("Recently Tested Zones ...");
}
//
if (HasChild(marketStructure.recentlyBreakedZones))
{
Print("Recently Breaked Zones ...");
}
//
if (marketStructure.fakeBreakedZone.IsValid())
{
Print("Fake Breaked Zone ...");
}
//
bar.Clean();
marketStructureObjects.Clear();
}
//