last ...
This commit is contained in:
@@ -206,157 +206,23 @@ class XCX121SMCXICHSignalDetector : public XCBase
|
||||
//
|
||||
|
||||
//
|
||||
// Update Models To Time ...
|
||||
UpdateTo(cTime);
|
||||
// Provider XTkKumo ...
|
||||
X121SMCStrategyConditionParser cParser;
|
||||
hasSignalBox = cParser.HasXICHConditions(
|
||||
X_CYCLE_ANALYSE,
|
||||
signalBox,
|
||||
signalBoxDir,
|
||||
provider,
|
||||
zIndex //
|
||||
);
|
||||
if (hasSignalBox)
|
||||
{
|
||||
signalProvider = X121SMC_XICH_PROVIDER_XTKKUMO;
|
||||
}
|
||||
|
||||
//
|
||||
// Here we Detect Signal Box ...
|
||||
if (!hasSignalBox)
|
||||
{
|
||||
//
|
||||
// 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 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 =
|
||||
//
|
||||
isKumoBullish &&
|
||||
isBarInsideTKZone &&
|
||||
isBarValidForBullish &&
|
||||
isConsolidationScoreBullish &&
|
||||
isNearestTenkensSenCrossedOverKijunSen
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
isBearish =
|
||||
//
|
||||
isKumoBearish &&
|
||||
isBarInsideTKZone &&
|
||||
isBarValidForBearish &&
|
||||
isConsolidationScoreBearish &&
|
||||
isNearestTenkensSenCrossedUnderKijunSen
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
result =
|
||||
isBullish ||
|
||||
isBearish;
|
||||
if (result)
|
||||
{
|
||||
//
|
||||
signalProvider = X121SMC_XICH_PROVIDER_XTKKUMO;
|
||||
|
||||
//
|
||||
signalBoxDir =
|
||||
isBullish
|
||||
? X_DIRECTION_BULLISH
|
||||
: X_DIRECTION_BEARISH;
|
||||
|
||||
//
|
||||
signalBox.from = pPBar.time;
|
||||
signalBox.to = TimeCurrent();
|
||||
signalBox.dir = signalBoxDir;
|
||||
signalBox.symbol = cBar.symbol;
|
||||
signalBox.period = cBar.period;
|
||||
|
||||
//
|
||||
pivot = isBullish
|
||||
? cBar.low - (points * 5)
|
||||
: cBar.high + (points * 5);
|
||||
|
||||
//
|
||||
point = GetEntry(
|
||||
cBar.symbol,
|
||||
signalBoxDir //
|
||||
);
|
||||
|
||||
//
|
||||
signalBox.upper =
|
||||
isBullish
|
||||
? point
|
||||
: pivot;
|
||||
|
||||
//
|
||||
signalBox.lower =
|
||||
isBullish
|
||||
? pivot
|
||||
: point;
|
||||
}
|
||||
|
||||
//
|
||||
hasSignalBox = signalBox.IsValid();
|
||||
|
||||
//
|
||||
tkCrossedBar.Clean();
|
||||
}
|
||||
// Update Models To Time ...
|
||||
UpdateTo(cTime);
|
||||
|
||||
//
|
||||
// Cleanup Signal if UnApproved ...
|
||||
@@ -370,8 +236,11 @@ class XCX121SMCXICHSignalDetector : public XCBase
|
||||
}
|
||||
|
||||
//
|
||||
// Check Signal Conditions ...
|
||||
if (hasSignalBox)
|
||||
// Summarize Results ...
|
||||
result = hasSignalBox;
|
||||
|
||||
//
|
||||
if (result)
|
||||
{
|
||||
//
|
||||
int idx = -1;
|
||||
@@ -437,7 +306,7 @@ class XCX121SMCXICHSignalDetector : public XCBase
|
||||
|
||||
//
|
||||
// Fix rf Reward ...
|
||||
rfRewar = 2;
|
||||
rfRewar = 1.5;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -488,18 +357,7 @@ class XCX121SMCXICHSignalDetector : public XCBase
|
||||
targets //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Summarize Results ...
|
||||
// result = hasPriority &&
|
||||
// hasSignalBox &&
|
||||
// hasRewardAmount;
|
||||
result = hasSignalBox;
|
||||
|
||||
//
|
||||
if (result)
|
||||
{
|
||||
//
|
||||
Copy(
|
||||
sls,
|
||||
@@ -531,6 +389,9 @@ class XCX121SMCXICHSignalDetector : public XCBase
|
||||
Clean(sls);
|
||||
Clean(targets);
|
||||
|
||||
//
|
||||
cParser.Clean();
|
||||
|
||||
//
|
||||
provider.Clean();
|
||||
|
||||
|
||||
@@ -2184,6 +2184,9 @@ struct X121SMCStrategyXWZWorkingZone
|
||||
box.Clean();
|
||||
}
|
||||
|
||||
//
|
||||
cPraser.Clean();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user