last works ...
This commit is contained in:
@@ -1071,7 +1071,8 @@ public:
|
||||
}
|
||||
|
||||
//
|
||||
string GenerateSummary(
|
||||
virtual string GenerateSummary(
|
||||
const bool onlySummary = false, // Only Generate Conditions Summary
|
||||
double cMarketMultiplier = 1, // Current Market Score Multiplier
|
||||
double sMarketMultiplier = 1.1, // Short Market Score Multiplier
|
||||
double mMarketMultiplier = 1.2, // Medium Market Score Multiplier
|
||||
@@ -1126,6 +1127,93 @@ public:
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
// XZG ...
|
||||
string zigzagStr =
|
||||
//
|
||||
ToString("isZigZagInPeak", isZigZagInPeak, ignoreFalseConditions) +
|
||||
ToString("isZigZagInVale", isZigZagInVale, ignoreFalseConditions) +
|
||||
""
|
||||
//
|
||||
;
|
||||
zigzagStr = SetLabel("XZG: ", zigzagStr, separator);
|
||||
|
||||
//
|
||||
// XDON ...
|
||||
string donStr =
|
||||
//
|
||||
ToString("isDONAttachedMaxLower", isDONAttachedMaxLower, ignoreFalseConditions) +
|
||||
ToString("isDONAttachedMinLower", isDONAttachedMinLower, ignoreFalseConditions) +
|
||||
ToString("isDONCrossedOverMaxLower", isDONCrossedOverMaxLower, ignoreFalseConditions) +
|
||||
ToString("isDONCrossedUnderMaxLower", isDONCrossedUnderMaxLower, ignoreFalseConditions) +
|
||||
ToString("isDONAttachedMaxUpper", isDONAttachedMaxUpper, ignoreFalseConditions) +
|
||||
ToString("isDONAttachedMinUpper", isDONAttachedMinUpper, ignoreFalseConditions) +
|
||||
ToString("isDONCrossedOverMaxUpper", isDONCrossedOverMaxUpper, ignoreFalseConditions) +
|
||||
ToString("isDONCrossedUnderMaxUpper", isDONCrossedUnderMaxUpper, ignoreFalseConditions) +
|
||||
""
|
||||
//
|
||||
;
|
||||
donStr = SetLabel("XDON: ", donStr, separator);
|
||||
|
||||
//
|
||||
// XPV ...
|
||||
string pvStr =
|
||||
//
|
||||
ToString("isPVPeakSameAs", isPVPeakSameAs, ignoreFalseConditions) +
|
||||
ToString("isPVNewPeak", isPVNewPeak, ignoreFalseConditions) +
|
||||
ToString("isPVNewPeakOverLast", isPVNewPeakOverLast, ignoreFalseConditions) +
|
||||
ToString("isPVNewPeakUnderLast", isPVNewPeakUnderLast, ignoreFalseConditions) +
|
||||
ToString("isPVValeSameAs", isPVValeSameAs, ignoreFalseConditions) +
|
||||
ToString("isPVNewVale", isPVNewVale, ignoreFalseConditions) +
|
||||
ToString("isPVNewValeOverLast", isPVNewValeOverLast, ignoreFalseConditions) +
|
||||
ToString("isPVNewValeUnderLast", isPVNewValeUnderLast, ignoreFalseConditions) +
|
||||
ToString("isPVFiboIncreased", isPVFiboIncreased, ignoreFalseConditions) +
|
||||
ToString("isPVFiboDecreased", isPVFiboDecreased, ignoreFalseConditions) +
|
||||
ToString("isPVFiboSectionChanged", isPVFiboSectionChanged, ignoreFalseConditions) +
|
||||
ToString("isPVSCBullish", isPVSCBullish, ignoreFalseConditions) +
|
||||
ToString("isPVSCHHBullish", isPVSCHHBullish, ignoreFalseConditions) +
|
||||
ToString("isPVSCLLBullish", isPVSCLLBullish, ignoreFalseConditions) +
|
||||
ToString("isPVSCSwitchedToBullish", isPVSCSwitchedToBullish, ignoreFalseConditions) +
|
||||
ToString("isPVSCBearish", isPVSCBearish, ignoreFalseConditions) +
|
||||
ToString("isPVSCHHBearish", isPVSCHHBearish, ignoreFalseConditions) +
|
||||
ToString("isPVSCLLBearish", isPVSCLLBearish, ignoreFalseConditions) +
|
||||
ToString("isPVSCSwitchedToBearish", isPVSCSwitchedToBearish, ignoreFalseConditions) +
|
||||
ToString("isPVMCBullish", isPVMCBullish, ignoreFalseConditions) +
|
||||
ToString("isPVMCHHBullish", isPVMCHHBullish, ignoreFalseConditions) +
|
||||
ToString("isPVMCLLBullish", isPVMCLLBullish, ignoreFalseConditions) +
|
||||
ToString("isPVMCSwitchedToBullish", isPVMCSwitchedToBullish, ignoreFalseConditions) +
|
||||
ToString("isPVMCBearish", isPVMCBearish, ignoreFalseConditions) +
|
||||
ToString("isPVMCHHBearish", isPVMCHHBearish, ignoreFalseConditions) +
|
||||
ToString("isPVMCLLBearish", isPVMCLLBearish, ignoreFalseConditions) +
|
||||
ToString("isPVMCSwitchedToBearish", isPVMCSwitchedToBearish, ignoreFalseConditions) +
|
||||
ToString("isPVLCBullish", isPVLCBullish, ignoreFalseConditions) +
|
||||
ToString("isPVLCHHBullish", isPVLCHHBullish, ignoreFalseConditions) +
|
||||
ToString("isPVLCLLBullish", isPVLCLLBullish, ignoreFalseConditions) +
|
||||
ToString("isPVLCSwitchedToBullish", isPVLCSwitchedToBullish, ignoreFalseConditions) +
|
||||
ToString("isPVLCBearish", isPVLCBearish, ignoreFalseConditions) +
|
||||
ToString("isPVLCHHBearish", isPVLCHHBearish, ignoreFalseConditions) +
|
||||
ToString("isPVLCLLBearish", isPVLCLLBearish, ignoreFalseConditions) +
|
||||
ToString("isPVLCSwitchedToBearish", isPVLCSwitchedToBearish, ignoreFalseConditions) +
|
||||
ToString("isPVHCBullish", isPVHCBullish, ignoreFalseConditions) +
|
||||
ToString("isPVHCHHBullish", isPVHCHHBullish, ignoreFalseConditions) +
|
||||
ToString("isPVHCLLBullish", isPVHCLLBullish, ignoreFalseConditions) +
|
||||
ToString("isPVHCSwitchedToBullish", isPVHCSwitchedToBullish, ignoreFalseConditions) +
|
||||
ToString("isPVHCBearish", isPVHCBearish, ignoreFalseConditions) +
|
||||
ToString("isPVHCHHBearish", isPVHCHHBearish, ignoreFalseConditions) +
|
||||
ToString("isPVHCLLBearish", isPVHCLLBearish, ignoreFalseConditions) +
|
||||
ToString("isPVHCSwitchedToBearish", isPVHCSwitchedToBearish, ignoreFalseConditions) +
|
||||
""
|
||||
//
|
||||
;
|
||||
pvStr = SetLabel("XPV: ", pvStr, separator);
|
||||
|
||||
//
|
||||
string cMarketConditionsStr = cMarketConditions.GenerateSummary(onlySummary, cMarketMultiplier);
|
||||
string sMarketConditionsStr = sMarketConditions.GenerateSummary(onlySummary, sMarketMultiplier);
|
||||
string mMarketConditionsStr = mMarketConditions.GenerateSummary(onlySummary, mMarketMultiplier);
|
||||
string lMarketConditionsStr = lMarketConditions.GenerateSummary(onlySummary, lMarketMultiplier);
|
||||
string hMarketConditionsStr = hMarketConditions.GenerateSummary(onlySummary, hMarketMultiplier);
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
@@ -1133,6 +1221,18 @@ public:
|
||||
(IsSpecifiedValid(provided) ? provided + separator : "") +
|
||||
"-----------------------------" + separator +
|
||||
commonStr +
|
||||
(!onlySummary
|
||||
? zigzagStr +
|
||||
donStr +
|
||||
pvStr +
|
||||
"======" + separator +
|
||||
cMarketConditionsStr +
|
||||
sMarketConditionsStr +
|
||||
mMarketConditionsStr +
|
||||
lMarketConditionsStr +
|
||||
hMarketConditionsStr +
|
||||
""
|
||||
: "") +
|
||||
""
|
||||
//
|
||||
;
|
||||
@@ -1615,7 +1715,6 @@ public:
|
||||
// Here We Have to Prepare Signal ...
|
||||
|
||||
//
|
||||
// TODO: Make this Configurable ...
|
||||
string symbol = GetSymbol();
|
||||
ENUM_TIMEFRAMES period = GetPeriod();
|
||||
double tpPoint = 60;
|
||||
@@ -1637,14 +1736,80 @@ public:
|
||||
symbol,
|
||||
type //
|
||||
);
|
||||
double tp = hasLong
|
||||
? entry + tpPrice
|
||||
: entry - tpPrice;
|
||||
double sl = hasLong
|
||||
? entry - slPrice
|
||||
: entry + slPrice;
|
||||
|
||||
//
|
||||
double tp = 0;
|
||||
double sl = 0;
|
||||
|
||||
//
|
||||
ENUM_X_SIGNAL_MANAGING_ACTIONS action = X_SIGNAL_USE_NOTHING;
|
||||
|
||||
//
|
||||
// TODO: Make Configurable ...
|
||||
double r2r = 2;
|
||||
|
||||
//
|
||||
if (provider == ToString(X786))
|
||||
{
|
||||
//
|
||||
double maxDonUpper = donHelper.GetMaxUpper(0);
|
||||
double minDonUpper = donHelper.GetMinUpper(0);
|
||||
|
||||
//
|
||||
double maxDonLower = donHelper.GetMaxLower(0);
|
||||
double minDonLower = donHelper.GetMinLower(0);
|
||||
|
||||
//
|
||||
double peak = pvHelper.GetPeak(0);
|
||||
double vale = pvHelper.GetVale(0);
|
||||
|
||||
//
|
||||
double hCHELE2 = hMarket.che.GetLongExit2(0);
|
||||
double hCHESE2 = hMarket.che.GetShortExit2(0);
|
||||
|
||||
//
|
||||
double lCHELE2 = lMarket.che.GetLongExit2(0);
|
||||
double lCHESE2 = lMarket.che.GetShortExit2(0);
|
||||
|
||||
//
|
||||
sl = hasLong
|
||||
? lCHELE2
|
||||
: lCHESE2;
|
||||
|
||||
//
|
||||
double risk = MathAbs(entry - sl);
|
||||
|
||||
//
|
||||
double reward = risk * r2r;
|
||||
|
||||
//
|
||||
tp = hasLong
|
||||
? entry + reward
|
||||
: entry - reward;
|
||||
}
|
||||
else if (provider == ToString(X121))
|
||||
{
|
||||
//
|
||||
double peak = pvHelper.GetPeak(0);
|
||||
double vale = pvHelper.GetVale(0);
|
||||
|
||||
//
|
||||
sl = hasLong
|
||||
? vale
|
||||
: peak;
|
||||
|
||||
//
|
||||
double risk = MathAbs(entry - sl);
|
||||
|
||||
//
|
||||
double reward = risk * r2r;
|
||||
|
||||
//
|
||||
tp = hasLong
|
||||
? entry + reward
|
||||
: entry - reward;
|
||||
}
|
||||
|
||||
//
|
||||
result = mSignal.Prepare(
|
||||
symbol,
|
||||
@@ -1680,14 +1845,43 @@ public:
|
||||
}
|
||||
|
||||
//
|
||||
void Draw()
|
||||
// Check for any Guards ...
|
||||
bool HasGuard(XGuard &guards[])
|
||||
{
|
||||
//
|
||||
return;
|
||||
bool result = false;
|
||||
|
||||
// //
|
||||
// XOHCL bar;
|
||||
// bar.Init(
|
||||
// GetSymbol(),
|
||||
// GetPeriod(),
|
||||
// 0 //
|
||||
// );
|
||||
|
||||
// //
|
||||
// double maxDONUppers = donHelper.GetMaxUpper(0);
|
||||
// double minDONUppers = donHelper.GetMinUpper(0);
|
||||
// // double minDONUppers = donHelper.GetMinUpper(1);
|
||||
|
||||
// //
|
||||
// bool isDONUpAttached =
|
||||
// //
|
||||
// bar.high >= maxDONUppers
|
||||
// //
|
||||
// ;
|
||||
// if (isDONUpAttached)
|
||||
// {
|
||||
// Print("Force Close Short X786");
|
||||
// }
|
||||
|
||||
//
|
||||
// ulong chID = 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
void Draw()
|
||||
{
|
||||
//
|
||||
string symbol = GetSymbol();
|
||||
ENUM_TIMEFRAMES period = GetPeriod();
|
||||
@@ -1865,7 +2059,7 @@ private:
|
||||
if (mIsX121SignalProviderEnable)
|
||||
{
|
||||
//
|
||||
hasX121Signal = XSIHasSpecifiedLongSignal(
|
||||
hasX121Signal = X121HasSpecifiedLongSignal(
|
||||
mConditions //
|
||||
);
|
||||
|
||||
@@ -1888,7 +2082,7 @@ private:
|
||||
if (mIsX110SignalProviderEnable)
|
||||
{
|
||||
//
|
||||
hasX110Signal = XTSFIHasSpecifiedLongSignal(
|
||||
hasX110Signal = X110HasSpecifiedLongSignal(
|
||||
mConditions //
|
||||
);
|
||||
|
||||
@@ -1911,7 +2105,7 @@ private:
|
||||
if (mIsX92SignalProviderEnable)
|
||||
{
|
||||
//
|
||||
hasX92Signal = XOBDLHHasSpecifiedLongSignal(
|
||||
hasX92Signal = X92HasSpecifiedLongSignal(
|
||||
mConditions //
|
||||
);
|
||||
|
||||
@@ -2055,7 +2249,7 @@ private:
|
||||
if (mIsX121SignalProviderEnable)
|
||||
{
|
||||
//
|
||||
hasX121Signal = XSIHasSpecifiedShortSignal(
|
||||
hasX121Signal = X121HasSpecifiedShortSignal(
|
||||
mConditions //
|
||||
);
|
||||
|
||||
@@ -2078,7 +2272,7 @@ private:
|
||||
if (mIsX110SignalProviderEnable)
|
||||
{
|
||||
//
|
||||
hasX110Signal = XTSFIHasSpecifiedShortSignal(
|
||||
hasX110Signal = X110HasSpecifiedShortSignal(
|
||||
mConditions //
|
||||
);
|
||||
|
||||
@@ -2925,12 +3119,146 @@ private:
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
// Check For Long ...
|
||||
bool isSTRLong =
|
||||
//
|
||||
(mConditions.hMarketConditions.isTrendSwitchedToBullish &&
|
||||
(mConditions.lMarketConditions.isTrendBullish &&
|
||||
mConditions.mMarketConditions.isTrendBullish &&
|
||||
mConditions.sMarketConditions.isTrendBullish &&
|
||||
mConditions.cMarketConditions.isTrendBullish))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.lMarketConditions.isTrendSwitchedToBullish &&
|
||||
(mConditions.hMarketConditions.isTrendBullish &&
|
||||
mConditions.mMarketConditions.isTrendBullish &&
|
||||
mConditions.sMarketConditions.isTrendBullish &&
|
||||
mConditions.cMarketConditions.isTrendBullish))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.mMarketConditions.isTrendSwitchedToBullish &&
|
||||
(mConditions.hMarketConditions.isTrendBullish &&
|
||||
mConditions.lMarketConditions.isTrendBullish &&
|
||||
mConditions.sMarketConditions.isTrendBullish &&
|
||||
mConditions.cMarketConditions.isTrendBullish))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.sMarketConditions.isTrendSwitchedToBullish &&
|
||||
(mConditions.hMarketConditions.isTrendBullish &&
|
||||
mConditions.lMarketConditions.isTrendBullish &&
|
||||
mConditions.mMarketConditions.isTrendBullish &&
|
||||
mConditions.cMarketConditions.isTrendBullish))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.cMarketConditions.isTrendSwitchedToBullish &&
|
||||
(mConditions.hMarketConditions.isTrendBullish &&
|
||||
mConditions.lMarketConditions.isTrendBullish &&
|
||||
mConditions.mMarketConditions.isTrendBullish &&
|
||||
mConditions.sMarketConditions.isTrendBullish))
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
bool isCHELong =
|
||||
//
|
||||
(mConditions.hMarketConditions.isCHESwitchedInStrongLong &&
|
||||
(mConditions.cMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.sMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.mMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.lMarketConditions.isCHEInStrongLong))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.lMarketConditions.isCHESwitchedInStrongLong &&
|
||||
(mConditions.cMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.sMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.mMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.hMarketConditions.isCHEInStrongLong))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.mMarketConditions.isCHESwitchedInStrongLong &&
|
||||
(mConditions.cMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.sMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.lMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.hMarketConditions.isCHEInStrongLong))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.sMarketConditions.isCHESwitchedInStrongLong &&
|
||||
(mConditions.cMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.mMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.lMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.hMarketConditions.isCHEInStrongLong))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.cMarketConditions.isCHESwitchedInStrongLong &&
|
||||
(mConditions.sMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.mMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.lMarketConditions.isCHEInStrongLong &&
|
||||
mConditions.hMarketConditions.isCHEInStrongLong))
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
isSTRLong
|
||||
//
|
||||
&&
|
||||
//
|
||||
isCHELong
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool XSIHasSpecifiedLongSignal(
|
||||
bool X121HasSpecifiedLongSignal(
|
||||
X121MarketConditions &mConditions //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
bool isMCLong =
|
||||
//
|
||||
(
|
||||
//
|
||||
(mConditions.cMarketConditions.isSlowOverVerifier &&
|
||||
mConditions.cMarketConditions.isFastCrossedOverVerifier)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.cMarketConditions.isFastOverVerifier &&
|
||||
mConditions.cMarketConditions.isSlowCrossedOverVerifier)
|
||||
//
|
||||
)
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
isMCLong
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool X110HasSpecifiedLongSignal(
|
||||
X121MarketConditions &mConditions //
|
||||
)
|
||||
{
|
||||
@@ -2942,19 +3270,7 @@ private:
|
||||
}
|
||||
|
||||
//
|
||||
bool XTSFIHasSpecifiedLongSignal(
|
||||
X121MarketConditions &mConditions //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool XOBDLHHasSpecifiedLongSignal(
|
||||
bool X92HasSpecifiedLongSignal(
|
||||
X121MarketConditions &mConditions //
|
||||
)
|
||||
{
|
||||
@@ -2997,24 +3313,146 @@ private:
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
// Check For Short ...
|
||||
bool isSTRShort =
|
||||
//
|
||||
(mConditions.hMarketConditions.isTrendSwitchedToBearish &&
|
||||
(mConditions.lMarketConditions.isTrendBearish &&
|
||||
mConditions.mMarketConditions.isTrendBearish &&
|
||||
mConditions.sMarketConditions.isTrendBearish &&
|
||||
mConditions.cMarketConditions.isTrendBearish))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.lMarketConditions.isTrendSwitchedToBearish &&
|
||||
(mConditions.hMarketConditions.isTrendBearish &&
|
||||
mConditions.mMarketConditions.isTrendBearish &&
|
||||
mConditions.sMarketConditions.isTrendBearish &&
|
||||
mConditions.cMarketConditions.isTrendBearish))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.mMarketConditions.isTrendSwitchedToBearish &&
|
||||
(mConditions.hMarketConditions.isTrendBearish &&
|
||||
mConditions.lMarketConditions.isTrendBearish &&
|
||||
mConditions.sMarketConditions.isTrendBearish &&
|
||||
mConditions.cMarketConditions.isTrendBearish))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.sMarketConditions.isTrendSwitchedToBearish &&
|
||||
(mConditions.hMarketConditions.isTrendBearish &&
|
||||
mConditions.lMarketConditions.isTrendBearish &&
|
||||
mConditions.mMarketConditions.isTrendBearish &&
|
||||
mConditions.cMarketConditions.isTrendBearish))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.cMarketConditions.isTrendSwitchedToBearish &&
|
||||
(mConditions.hMarketConditions.isTrendBearish &&
|
||||
mConditions.lMarketConditions.isTrendBearish &&
|
||||
mConditions.mMarketConditions.isTrendBearish &&
|
||||
mConditions.sMarketConditions.isTrendBearish))
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
bool isCHEShort =
|
||||
//
|
||||
(mConditions.hMarketConditions.isCHESwitchedInStrongShort &&
|
||||
(mConditions.cMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.sMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.mMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.lMarketConditions.isCHEInStrongShort))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.lMarketConditions.isCHESwitchedInStrongShort &&
|
||||
(mConditions.cMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.sMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.mMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.hMarketConditions.isCHEInStrongShort))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.mMarketConditions.isCHESwitchedInStrongShort &&
|
||||
(mConditions.cMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.sMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.lMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.hMarketConditions.isCHEInStrongShort))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.sMarketConditions.isCHESwitchedInStrongShort &&
|
||||
(mConditions.cMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.mMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.lMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.hMarketConditions.isCHEInStrongShort))
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.cMarketConditions.isCHESwitchedInStrongShort &&
|
||||
(mConditions.sMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.mMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.lMarketConditions.isCHEInStrongShort &&
|
||||
mConditions.hMarketConditions.isCHEInStrongShort))
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
isSTRShort
|
||||
//
|
||||
&&
|
||||
//
|
||||
isCHEShort
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool XSIHasSpecifiedShortSignal(
|
||||
bool X121HasSpecifiedShortSignal(
|
||||
X121MarketConditions &mConditions //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
bool isMCShort =
|
||||
//
|
||||
(
|
||||
//
|
||||
(mConditions.cMarketConditions.isSlowUnderVerifier &&
|
||||
mConditions.cMarketConditions.isFastCrossedUnderVerifier)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.cMarketConditions.isFastUnderVerifier &&
|
||||
mConditions.cMarketConditions.isSlowCrossedUnderVerifier)
|
||||
//
|
||||
)
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
isMCShort
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool XTSFIHasSpecifiedShortSignal(
|
||||
bool X110HasSpecifiedShortSignal(
|
||||
X121MarketConditions &mConditions //
|
||||
)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user