1388 lines
43 KiB
Plaintext
1388 lines
43 KiB
Plaintext
//
|
|
// Check Market Conditions for Long Signals ...
|
|
bool HasLongConditions(
|
|
X121SetupConditions &conditions, // Conditions
|
|
int &pusher, // Pushers
|
|
string &provider // Provider
|
|
)
|
|
{
|
|
//
|
|
bool result = false;
|
|
|
|
//
|
|
pusher = 0;
|
|
|
|
//
|
|
bool isOSCShortVerified = IsOSCShortVerified(conditions);
|
|
|
|
//
|
|
int zIndex = 0;
|
|
int cIndex = zIndex + 1;
|
|
int pIndex = cIndex + 1;
|
|
|
|
//
|
|
double bullishScore = 0;
|
|
double bearishScore = 0;
|
|
conditions.GenerateScore(
|
|
bullishScore,
|
|
bearishScore //
|
|
);
|
|
|
|
//
|
|
// XMC ...
|
|
bool long1 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.mcConditions.isSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long1)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XMC);
|
|
}
|
|
|
|
//
|
|
// XSARD ...
|
|
bool long2 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.mcConditions.isSARSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long2)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSARD);
|
|
}
|
|
|
|
//
|
|
// XADXTD ...
|
|
bool long3 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.adxtdConditions.isStrongSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long3)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XADXTD);
|
|
}
|
|
|
|
//
|
|
// XSTR ...
|
|
bool long4 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.strConditions.isTrendSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long4)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSTR);
|
|
}
|
|
|
|
//
|
|
// XCHE ...
|
|
bool long5 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.cheConditions.isStrongSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long5)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XCHE);
|
|
}
|
|
|
|
//
|
|
// XTD ...
|
|
bool long6 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.tdConditions.isSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long6)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XTD);
|
|
}
|
|
|
|
//
|
|
// XSI ...
|
|
bool long7 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.rsi[cIndex] > 30 &&
|
|
conditions.rsi[pIndex] <= 30 &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long7)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSI);
|
|
}
|
|
|
|
//
|
|
// XCI ...
|
|
bool long8 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.cci[cIndex] > -100 &&
|
|
conditions.cci[pIndex] <= -100 &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long8)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XCI);
|
|
}
|
|
|
|
//
|
|
// XMCD ...
|
|
bool long9 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.macd[cIndex] > 0 &&
|
|
conditions.macd[cIndex] > conditions.macdSignal[cIndex] &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long9)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XMCD);
|
|
}
|
|
|
|
//
|
|
// XICH ...
|
|
bool long10 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.ichConditions.HasLongConditions() &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long10)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XICH);
|
|
}
|
|
|
|
//
|
|
// XHK ...
|
|
bool long11 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.hkConditions.isHKSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long11)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XHK);
|
|
}
|
|
|
|
//
|
|
// XSMHK ...
|
|
bool long12 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.hkConditions.isSMHKSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long12)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSMHK);
|
|
}
|
|
|
|
//
|
|
// XMRB ...
|
|
bool long13 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.mrbConditions.isFastCrossedOverSlow &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long13)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XMRB);
|
|
}
|
|
|
|
//
|
|
// XSSLC ...
|
|
bool long14 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.sslcConditions.isSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long14)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSSLC);
|
|
}
|
|
|
|
//
|
|
// XHULL ...
|
|
bool long15 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.hullConditions.isSwitchedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long15)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XHULL);
|
|
}
|
|
|
|
//
|
|
// XASCT ...
|
|
bool long16 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.asctConditions.isLongSignal &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long16)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XASCT);
|
|
}
|
|
|
|
//
|
|
// XVLM ...
|
|
bool long17 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.vlmConditions.isVolumeChangedToBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.sslcConditions.isBullish
|
|
//
|
|
;
|
|
if (long17)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XVLM);
|
|
}
|
|
|
|
//
|
|
// XPVF ...
|
|
bool long18 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.pvConditions.isFiboIncreased &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.mcConditions.isBullish &&
|
|
conditions.mcConditions.isSARBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish &&
|
|
conditions.hkConditions.isHKBullish &&
|
|
conditions.hkConditions.isSMHKBullish &&
|
|
conditions.mrbConditions.isFastOverSlow &&
|
|
conditions.hullConditions.isBullish &&
|
|
conditions.sslcConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long18)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XPVF);
|
|
}
|
|
|
|
//
|
|
// XPVSAR ...
|
|
bool long19 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.mcConditions.isSARSwitchedToBullish &&
|
|
conditions.pvConditions.vales[zIndex] == conditions.mcConditions.psar[zIndex] &&
|
|
conditions.strConditions.isTrendBullish &&
|
|
conditions.cheConditions.isStrongBullish
|
|
//
|
|
;
|
|
if (long19)
|
|
{
|
|
//
|
|
pusher += 2;
|
|
provider = ToString(PROVIDER_XPVSAR);
|
|
}
|
|
|
|
//
|
|
// XHTSRD ...
|
|
bool long20 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.IsTrendBullish() &&
|
|
conditions.dmntConditions.isBullish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBullish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBullish &&
|
|
conditions.vlmConditions.isVolumeBullish
|
|
//
|
|
;
|
|
if (long20)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XHTSRD);
|
|
}
|
|
|
|
//
|
|
result =
|
|
//
|
|
pusher >= 1 &&
|
|
// !isOSCShortVerified &&
|
|
// bullishScore > bearishScore * 2 &&
|
|
(
|
|
//
|
|
long1
|
|
//
|
|
||
|
|
//
|
|
long2
|
|
//
|
|
||
|
|
//
|
|
long3
|
|
//
|
|
||
|
|
//
|
|
long4
|
|
//
|
|
||
|
|
//
|
|
long5
|
|
//
|
|
||
|
|
//
|
|
long6
|
|
//
|
|
||
|
|
//
|
|
long7
|
|
//
|
|
||
|
|
//
|
|
long8
|
|
//
|
|
||
|
|
//
|
|
long9
|
|
//
|
|
||
|
|
//
|
|
long10
|
|
//
|
|
||
|
|
//
|
|
long11
|
|
//
|
|
||
|
|
//
|
|
long12
|
|
//
|
|
||
|
|
//
|
|
long13
|
|
//
|
|
||
|
|
//
|
|
long14
|
|
//
|
|
||
|
|
//
|
|
long15
|
|
//
|
|
||
|
|
//
|
|
long16
|
|
//
|
|
||
|
|
//
|
|
long17
|
|
//
|
|
||
|
|
//
|
|
long18
|
|
//
|
|
||
|
|
//
|
|
long19
|
|
//
|
|
||
|
|
//
|
|
long20
|
|
//
|
|
)
|
|
//
|
|
;
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Check Market Conditions for Short Signals ...
|
|
bool HasShortConditions(
|
|
X121SetupConditions &conditions, // Conditions
|
|
int &pusher, // Pushers
|
|
string &provider // Provider
|
|
)
|
|
{
|
|
//
|
|
bool result = false;
|
|
|
|
//
|
|
pusher = 0;
|
|
|
|
//
|
|
bool isOSCLongVerified = IsOSCLongVerified(conditions);
|
|
|
|
//
|
|
int zIndex = 0;
|
|
int cIndex = zIndex + 1;
|
|
int pIndex = cIndex + 1;
|
|
|
|
//
|
|
double bullishScore = 0;
|
|
double bearishScore = 0;
|
|
conditions.GenerateScore(
|
|
bullishScore,
|
|
bearishScore //
|
|
);
|
|
|
|
//
|
|
// XMC ...
|
|
bool short1 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.mcConditions.isSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short1)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XMC);
|
|
}
|
|
|
|
//
|
|
// XSARD ...
|
|
bool short2 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.mcConditions.isSARSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short2)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSARD);
|
|
}
|
|
|
|
//
|
|
// XADXTD ...
|
|
bool short3 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.adxtdConditions.isStrongSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short3)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XADXTD);
|
|
}
|
|
|
|
//
|
|
// XSTR ...
|
|
bool short4 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.strConditions.isTrendSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short4)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSTR);
|
|
}
|
|
|
|
//
|
|
// XCHE ...
|
|
bool short5 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.cheConditions.isStrongSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short5)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XCHE);
|
|
}
|
|
|
|
//
|
|
// XTD ...
|
|
bool short6 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.tdConditions.isSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short6)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XTD);
|
|
}
|
|
|
|
//
|
|
// XSI ...
|
|
bool short7 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.rsi[cIndex] < 70 &&
|
|
conditions.rsi[pIndex] >= 70 &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short7)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSI);
|
|
}
|
|
|
|
//
|
|
// XCI ...
|
|
bool short8 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.cci[cIndex] < 100 &&
|
|
conditions.cci[pIndex] >= 100 &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short8)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XCI);
|
|
}
|
|
|
|
//
|
|
// XMCD ...
|
|
bool short9 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.macd[cIndex] < 0 &&
|
|
conditions.macd[cIndex] < conditions.macdSignal[cIndex] &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short9)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XMCD);
|
|
}
|
|
|
|
//
|
|
// XICH ...
|
|
bool short10 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.ichConditions.HasShortConditions() &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short10)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XICH);
|
|
}
|
|
|
|
//
|
|
// XHK ...
|
|
bool short11 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.hkConditions.isHKSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short11)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XHK);
|
|
}
|
|
|
|
//
|
|
// XSMHK ...
|
|
bool short12 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.hkConditions.isSMHKSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short12)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSMHK);
|
|
}
|
|
|
|
//
|
|
// XMRB ...
|
|
bool short13 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.mrbConditions.isFastCrossedUnderSlow &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short13)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XMRB);
|
|
}
|
|
|
|
//
|
|
// XSSLC ...
|
|
bool short14 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.sslcConditions.isSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short14)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XSSLC);
|
|
}
|
|
|
|
//
|
|
// XHULL ...
|
|
bool short15 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.hullConditions.isSwitchedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short15)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XHULL);
|
|
}
|
|
|
|
//
|
|
// XASCT ...
|
|
bool short16 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.asctConditions.isShortSignal &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short16)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XASCT);
|
|
}
|
|
|
|
//
|
|
// XVLM ...
|
|
bool short17 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.vlmConditions.isVolumeChangedToBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.sslcConditions.isBearish
|
|
//
|
|
;
|
|
if (short17)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XVLM);
|
|
}
|
|
|
|
//
|
|
// XPVF ...
|
|
bool short18 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.pvConditions.isFiboDecreased &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.mcConditions.isBearish &&
|
|
conditions.mcConditions.isSARBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish &&
|
|
conditions.hkConditions.isHKBearish &&
|
|
conditions.hkConditions.isSMHKBearish &&
|
|
conditions.mrbConditions.isFastUnderSlow &&
|
|
conditions.hullConditions.isBearish &&
|
|
conditions.sslcConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short18)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XPVF);
|
|
}
|
|
|
|
//
|
|
// XPVSAR ...
|
|
bool short19 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.mcConditions.isSARSwitchedToBearish &&
|
|
conditions.pvConditions.peaks[zIndex] == conditions.mcConditions.psar[zIndex] &&
|
|
conditions.strConditions.isTrendBearish &&
|
|
conditions.cheConditions.isStrongBearish
|
|
//
|
|
;
|
|
if (short19)
|
|
{
|
|
//
|
|
pusher += 2;
|
|
provider = ToString(PROVIDER_XPVSAR);
|
|
}
|
|
|
|
//
|
|
// XHTSRD ...
|
|
bool short20 =
|
|
//
|
|
// Starting Conditions ...
|
|
conditions.IsTrendBearish() &&
|
|
conditions.dmntConditions.isBearish &&
|
|
//
|
|
// Verifications ...
|
|
conditions.tdConditions.isBearish &&
|
|
conditions.adxtdConditions.isStrong &&
|
|
conditions.adxtdConditions.isBearish &&
|
|
conditions.vlmConditions.isVolumeBearish
|
|
//
|
|
;
|
|
if (short20)
|
|
{
|
|
//
|
|
pusher++;
|
|
provider = ToString(PROVIDER_XHTSRD);
|
|
}
|
|
|
|
//
|
|
result =
|
|
//
|
|
pusher >= 1 &&
|
|
// !isOSCLongVerified &&
|
|
// bearishScore > bullishScore * 2 &&
|
|
(
|
|
//
|
|
short1
|
|
//
|
|
||
|
|
//
|
|
short2
|
|
//
|
|
||
|
|
//
|
|
short3
|
|
//
|
|
||
|
|
//
|
|
short4
|
|
//
|
|
||
|
|
//
|
|
short5
|
|
//
|
|
||
|
|
//
|
|
short6
|
|
//
|
|
||
|
|
//
|
|
short7
|
|
//
|
|
||
|
|
//
|
|
short8
|
|
//
|
|
||
|
|
//
|
|
short9
|
|
//
|
|
||
|
|
//
|
|
short10
|
|
//
|
|
||
|
|
//
|
|
short11
|
|
//
|
|
||
|
|
//
|
|
short12
|
|
//
|
|
||
|
|
//
|
|
short13
|
|
//
|
|
||
|
|
//
|
|
short14
|
|
//
|
|
||
|
|
//
|
|
short15
|
|
//
|
|
||
|
|
//
|
|
short16
|
|
//
|
|
||
|
|
//
|
|
short17
|
|
//
|
|
||
|
|
//
|
|
short18
|
|
//
|
|
||
|
|
//
|
|
short19
|
|
//
|
|
||
|
|
//
|
|
short20
|
|
//
|
|
)
|
|
//
|
|
;
|
|
|
|
//
|
|
return result;
|
|
}
|