237 lines
7.3 KiB
Plaintext
237 lines
7.3 KiB
Plaintext
//
|
|
// HTF Proves ...
|
|
|
|
// //
|
|
// double scoreMultiplier = 1.5;
|
|
|
|
// //
|
|
// bool isConsolidationScoreBullish =
|
|
// provider.consolidationBullishScore > (provider.consolidationBearishScore * scoreMultiplier);
|
|
|
|
// //
|
|
// bool isConsolidationScoreBearish =
|
|
// provider.consolidationBearishScore > (provider.consolidationBullishScore * scoreMultiplier);
|
|
|
|
//
|
|
//
|
|
//
|
|
|
|
// //
|
|
// // Detect Kumo Trend ...
|
|
// bool isKumoBullish = provider.decisionXConditions.isSenkouSpanAOverB;
|
|
// bool isKumoBearish = provider.decisionXConditions.isSenkouSpanAUnderB;
|
|
|
|
// //
|
|
// // Detect Nearest Cross ...
|
|
// XOHCL tkCrossedBar;
|
|
// ENUM_X_DIRECTION tkCrossDir;
|
|
// bool hasNearestTenkanSenKijunSenCross =
|
|
// provider
|
|
// .decisionCycleHelper
|
|
// .DetectNearestTenKijCross(
|
|
// tkCrossedBar,
|
|
// tkCrossDir,
|
|
// zIndex //
|
|
// );
|
|
|
|
// //
|
|
// bool isNearestTenkensSenCrossedOverKijunSen =
|
|
// hasNearestTenkanSenKijunSenCross &&
|
|
// IsBullish(tkCrossDir);
|
|
|
|
// //
|
|
// bool isNearestTenkensSenCrossedUnderKijunSen =
|
|
// hasNearestTenkanSenKijunSenCross &&
|
|
// IsBearish(tkCrossDir);
|
|
|
|
// //
|
|
// // Detect Nearest Volume ...
|
|
// XOHCL vSwitchedBar;
|
|
// ENUM_X_DIRECTION vSwitchedDir;
|
|
// bool isVolumeSwitched =
|
|
// provider
|
|
// .decisionCycleHelper
|
|
// .DetectNearestVolumeSwitched(
|
|
// vSwitchedBar,
|
|
// vSwitchedDir,
|
|
// zIndex //
|
|
// );
|
|
// bool isVolumeBullish =
|
|
// isVolumeSwitched &&
|
|
// IsBullish(vSwitchedDir);
|
|
// bool isVolumeBearish =
|
|
// isVolumeSwitched &&
|
|
// IsBearish(vSwitchedDir);
|
|
|
|
// //
|
|
// // Detect Nearest Delta Crossed ...
|
|
// XOHCL deltaCrossedBar;
|
|
// ENUM_X_DIRECTION deltaCrossedDir;
|
|
// bool isDeltaCrossed =
|
|
// provider
|
|
// .decisionCycleHelper
|
|
// .DetectNearestDeltaSwitched(
|
|
// deltaCrossedBar,
|
|
// deltaCrossedDir,
|
|
// zIndex //
|
|
// );
|
|
// bool isDeltaBullish =
|
|
// isDeltaCrossed &&
|
|
// IsBullish(deltaCrossedDir);
|
|
// bool isDeltaBearish =
|
|
// isDeltaCrossed &&
|
|
// IsBearish(deltaCrossedDir);
|
|
|
|
// //
|
|
// // Detect Nearest Str Switched ...
|
|
// XOHCL strSwitchedBar;
|
|
// ENUM_X_DIRECTION strSwitchedDir;
|
|
// bool isStrSwitched =
|
|
// provider
|
|
// .decisionCycleHelper
|
|
// .DetectNearestStrSwitched(
|
|
// strSwitchedBar,
|
|
// strSwitchedDir,
|
|
// zIndex //
|
|
// );
|
|
// bool isStrBullish =
|
|
// isStrSwitched &&
|
|
// IsBullish(deltaCrossedDir);
|
|
// bool isStrBearish =
|
|
// isStrSwitched &&
|
|
// IsBearish(deltaCrossedDir);
|
|
|
|
// //
|
|
// // Detect Price in TK Zone ...
|
|
// bool isBarInsideTKZone =
|
|
// isNearestTenkensSenCrossedOverKijunSen
|
|
// ? cBar.low < provider.decisionXConditions.tenkanSenBuffer[cIndex]
|
|
// : isNearestTenkensSenCrossedUnderKijunSen
|
|
// ? cBar.high > provider.decisionXConditions.tenkanSenBuffer[cIndex]
|
|
// : false;
|
|
|
|
// //
|
|
// // Checking Bar Based on Positions State ...
|
|
// ENUM_X_DIRECTION iBarPosDir;
|
|
// bool isBarValidForDir = provider.decisionCycleHelper
|
|
// .mBarAnalyser
|
|
// .IsValidForPosition(
|
|
// cBar,
|
|
// iBarPosDir //
|
|
// );
|
|
// bool isBarValidForBullish =
|
|
// isBarValidForDir &&
|
|
// IsBullish(iBarPosDir);
|
|
// bool isBarValidForBearish =
|
|
// isBarValidForDir &&
|
|
// IsBearish(iBarPosDir);
|
|
|
|
//
|
|
// Summarize Conditions ...
|
|
|
|
//
|
|
isBullish =
|
|
//
|
|
false
|
|
// isStrBullish &&
|
|
// isKumoBullish &&
|
|
// isDeltaBullish &&
|
|
// isVolumeBullish &&
|
|
// isBarInsideTKZone &&
|
|
// isBarValidForBullish &&
|
|
// isConsolidationScoreBullish &&
|
|
// isNearestTenkensSenCrossedOverKijunSen
|
|
//
|
|
;
|
|
|
|
//
|
|
isBearish =
|
|
//
|
|
false
|
|
// isStrBearish &&
|
|
// isKumoBearish &&
|
|
// isDeltaBearish &&
|
|
// isVolumeBearish &&
|
|
// isBarInsideTKZone &&
|
|
// isBarValidForBearish &&
|
|
// isConsolidationScoreBearish &&
|
|
// isNearestTenkensSenCrossedUnderKijunSen
|
|
//
|
|
;
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
iBox.to = TimeCurrent();
|
|
XCBoxObject *iObj;
|
|
has = helper.poiDrawer.DrawBox(
|
|
iBox,
|
|
iObj //
|
|
);
|
|
if (has)
|
|
{
|
|
//
|
|
iObj.BoxWidth(2);
|
|
|
|
//
|
|
color iCLR =
|
|
iBox.IsBullish()
|
|
? clrAqua
|
|
: clrMagenta;
|
|
iObj.BoxColor(iCLR);
|
|
iObj.BoxStyle(STYLE_SOLID);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
// COMPLEX ...
|
|
|
|
//
|
|
double iKTIRNDs[] = {
|
|
cKI,
|
|
cTKI,
|
|
cTrend //
|
|
};
|
|
|
|
//
|
|
double iKTIRNDMax = GetMax(iKTIRNDs);
|
|
double iKTIRNDMin = GetMin(iKTIRNDs);
|
|
|
|
//
|
|
// Conditions Preparing ...
|
|
|
|
//
|
|
bool isTKITRNDBullish =
|
|
cKIState > 0 &&
|
|
cTKIState > 0 &&
|
|
ctrendState > 0;
|
|
|
|
//
|
|
bool isTKITRNDBullishPrev =
|
|
pKIState > 0 &&
|
|
pTKIState > 0 &&
|
|
ptrendState > 0;
|
|
|
|
//
|
|
bool isTKITRNDBearish =
|
|
cKIState < 0 &&
|
|
cTKIState < 0 &&
|
|
ctrendState < 0;
|
|
|
|
//
|
|
bool isTKITRNDBearishPrev =
|
|
pKIState < 0 &&
|
|
pTKIState < 0 &&
|
|
ptrendState < 0;
|
|
|
|
//
|
|
bool isTKITRNDSwitchedToBullish =
|
|
isTKITRNDBullish &&
|
|
!isTKITRNDBullishPrev;
|
|
|
|
//
|
|
bool isTKITRNDSwitchedToBearish =
|
|
isTKITRNDBearish &&
|
|
!isTKITRNDBearishPrev;
|