last works on implementing Candlestick Patterns on Bar Analyser Class ...

This commit is contained in:
2025-03-15 04:13:08 +03:30
parent a05b8f464d
commit 3b31c36541
4 changed files with 979 additions and 86 deletions
+114 -7
View File
@@ -24,6 +24,7 @@
//
// XCPOIDetector *mPOIDetector;
XBarTracker mBarTracker;
XCBarAnalyser *mBarAnalyser;
//
@@ -47,6 +48,12 @@ int OnInit()
//
mBarAnalyser = new XCBarAnalyser();
//
mBarTracker.Init(
_Symbol,
_Period //
);
//
return (INIT_SUCCEEDED);
}
@@ -89,6 +96,12 @@ void DetectBarAnalyser()
return;
}
//
if (!mBarTracker.IsNewBar())
{
return;
}
//
XOHCL zBar;
bool isInited = zBar.Init(
@@ -96,21 +109,115 @@ void DetectBarAnalyser()
_Period,
0 //
);
if (!isInited)
{
//
zBar.Clean();
return;
}
//
XOHCL toBar;
XOHCL fromBar;
XOHCL cBar;
isInited = zBar.GetPreviousBar(cBar);
if (!isInited)
{
//
zBar.Clean();
cBar.Clean();
return;
}
//
// Check Big Change in Price ...
ENUM_X_DIRECTION dir;
bool isBigChange = mBarAnalyser.IsBigChange(
zBar, // Bar ...
dir, // Change Direction ...
X_PRICE_CLOSE, // Price Change Type ...
true, // Force Use Body for Range Calculation ...
1.0 // Range Extend Multiplier ...
);
if (isBigChange)
{
// Print("Big Price Change Detected: ", ToString(dir));
}
//
// Check Big Change in Price ...
bool isSpike = mBarAnalyser.IsSpike(
zBar,
fromBar,
toBar,
dir //
zBar, // Bar ...
dir, // Change Direction ...
X_PRICE_CLOSE, // Price Change Type ...
true, // Force Use Body for Range Calculation ...
1.0, // Range Extend Multiplier ...
3 // Same Bars ...
);
if (isSpike)
{
Print("Spike Detected ...");
// Print("Spike Detected: ", ToString(dir));
}
//
// Check Doji Pattern ...
bool isDoji = mBarAnalyser.IsDoji(
cBar,
dir //
);
if (isDoji)
{
Print(ToString(dir), " Doji Detected ...");
}
//
// Check Hammer Pattern ...
bool isHammer = mBarAnalyser.IsHammer(
cBar,
dir //
);
if (isHammer)
{
Print(ToString(dir), " Hammer Detected ...");
}
//
// Check Engulf Pattern ...
bool isEngulfed = mBarAnalyser.IsEngulfed(
cBar,
dir //
);
if (isEngulfed)
{
Print(ToString(dir), " Engulfed Detected ...");
}
//
// Check Momentum Pattern ...
bool isMomentum = mBarAnalyser.IsMomentum(
cBar,
dir //
);
if (isMomentum)
{
Print(ToString(dir), " Momentum Detected ...");
}
//
// Check Pullback Pattern ...
bool isPullback = mBarAnalyser.IsPullback(
cBar,
dir //
);
if (isMomentum)
{
Print(ToString(dir), " Pullback Detected ...");
}
//
// Cleanup Resources ...
//
zBar.Clean();
cBar.Clean();
}
/**