last works on implementing Candlestick Patterns on Bar Analyser Class ...
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user