last works ...
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
#include "../Helpers/x-saherelm.xich.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xmrb.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xosc.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xvlm.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xasct.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xsslc.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xhull.helper.mq5"
|
||||
@@ -67,6 +68,7 @@ enum ENUM_X121_SIGNAL_PROVIDER
|
||||
PROVIDER_XSSLC = 14,
|
||||
PROVIDER_XHULL = 15,
|
||||
PROVIDER_XASCT = 16,
|
||||
PROVIDER_XVLM = 17,
|
||||
};
|
||||
|
||||
//
|
||||
@@ -210,6 +212,7 @@ struct X121SetupInputs
|
||||
XSTRInputs strInputs; // XSTR Inputs
|
||||
XMRBInputs mrbInputs; // XMRB Inputs
|
||||
XOSCInputs oscInputs; // XOSC Inputs
|
||||
XVLMInputs vlmInputs; // XVLM Inputs
|
||||
XMATDInputs matdInputs; // XMATD Inputs
|
||||
XASCTInputs asctInputs; // XASCT Inputs
|
||||
XSSLCInputs sslcInputs; // XSSLC Inputs
|
||||
@@ -245,6 +248,7 @@ struct X121SetupInputs
|
||||
XSTRInputs &_strInputs, // XSTR Inputs
|
||||
XMRBInputs &_mrbInputs, // XMRB Inputs
|
||||
XOSCInputs &_oscInputs, // XOSC Inputs
|
||||
XVLMInputs &_vlmInputs, // XVLM Inputs
|
||||
XMATDInputs &_matdInputs, // XMATD Inputs
|
||||
XASCTInputs &_asctInputs, // XASCT Inputs
|
||||
XSSLCInputs &_sslcInputs, // XSSLC Inputs
|
||||
@@ -265,6 +269,7 @@ struct X121SetupInputs
|
||||
this.strInputs = _strInputs;
|
||||
this.mrbInputs = _mrbInputs;
|
||||
this.oscInputs = _oscInputs;
|
||||
this.vlmInputs = _vlmInputs;
|
||||
this.matdInputs = _matdInputs;
|
||||
this.asctInputs = _asctInputs;
|
||||
this.sslcInputs = _sslcInputs;
|
||||
@@ -297,6 +302,7 @@ struct X121SetupInputs
|
||||
strInputs.Clean();
|
||||
mrbInputs.Clean();
|
||||
oscInputs.Clean();
|
||||
vlmInputs.Clean();
|
||||
matdInputs.Clean();
|
||||
asctInputs.Clean();
|
||||
sslcInputs.Clean();
|
||||
@@ -316,6 +322,7 @@ struct X121SetupInputs
|
||||
strInputs.Default();
|
||||
mrbInputs.Default();
|
||||
oscInputs.Default();
|
||||
vlmInputs.Default();
|
||||
matdInputs.Default();
|
||||
asctInputs.Default();
|
||||
sslcInputs.Default();
|
||||
@@ -349,66 +356,84 @@ struct X121SetupInputs
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = hkInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = cheInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = ichInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = strInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = mrbInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = oscInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = vlmInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = matdInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = asctInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = sslcInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = hullInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = adxtdInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
@@ -438,6 +463,7 @@ struct X121SetupConditions
|
||||
XICHConditions ichConditions;
|
||||
XSTRConditions strConditions;
|
||||
XMRBConditions mrbConditions;
|
||||
XVLMConditions vlmConditions;
|
||||
XMATDConditions matdConditions;
|
||||
XASCTConditions asctConditions;
|
||||
XSSLCConditions sslcConditions;
|
||||
@@ -476,6 +502,7 @@ struct X121SetupConditions
|
||||
ichConditions.Clean();
|
||||
strConditions.Clean();
|
||||
mrbConditions.Clean();
|
||||
vlmConditions.Clean();
|
||||
matdConditions.Clean();
|
||||
asctConditions.Clean();
|
||||
sslcConditions.Clean();
|
||||
@@ -569,6 +596,14 @@ struct X121SetupConditions
|
||||
bullishScore += tempBullishScore;
|
||||
bearishScore += tempBearishScore;
|
||||
|
||||
//
|
||||
vlmConditions.GenerateScore(
|
||||
tempBullishScore,
|
||||
tempBearishScore //
|
||||
);
|
||||
bullishScore += tempBullishScore;
|
||||
bearishScore += tempBearishScore;
|
||||
|
||||
//
|
||||
sslcConditions.GenerateScore(
|
||||
tempBullishScore,
|
||||
@@ -625,32 +660,34 @@ struct X121SetupConditions
|
||||
);
|
||||
|
||||
//
|
||||
string matdSummary = matdConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string adxtdSummary = adxtdConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string tdSummary = tdConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string hkSummary = hkConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string strSummary = strConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string cheSummary = cheConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string asctSummary = asctConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string tdSummary = tdConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string ichSummary = ichConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string hkSummary = hkConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string mrbSummary = mrbConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string vlmSummary = vlmConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string matdSummary = matdConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string asctSummary = asctConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string sslcSummary = sslcConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string hullSummary = hullConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
string adxtdSummary = adxtdConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||
|
||||
//
|
||||
string conditionsStr =
|
||||
//
|
||||
matdSummary + separator +
|
||||
adxtdSummary + separator +
|
||||
tdSummary + separator +
|
||||
hkSummary + separator +
|
||||
ichSummary + separator +
|
||||
mrbSummary + separator +
|
||||
vlmSummary + separator +
|
||||
strSummary + separator +
|
||||
cheSummary + separator +
|
||||
asctSummary + separator +
|
||||
tdSummary + separator +
|
||||
ichSummary + separator +
|
||||
hkSummary + separator +
|
||||
mrbSummary + separator +
|
||||
sslcSummary + separator +
|
||||
hullSummary + separator +
|
||||
matdSummary + separator +
|
||||
adxtdSummary + separator +
|
||||
""
|
||||
//
|
||||
;
|
||||
@@ -818,7 +855,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long1)
|
||||
@@ -846,7 +884,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long2)
|
||||
@@ -872,7 +911,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long3)
|
||||
@@ -899,7 +939,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long4)
|
||||
@@ -926,7 +967,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long5)
|
||||
@@ -953,7 +995,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long6)
|
||||
@@ -982,7 +1025,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long7)
|
||||
@@ -1011,7 +1055,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long8)
|
||||
@@ -1040,7 +1085,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long9)
|
||||
@@ -1068,7 +1114,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long10)
|
||||
@@ -1095,7 +1142,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long11)
|
||||
@@ -1122,7 +1170,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long12)
|
||||
@@ -1149,7 +1198,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isHKBullish &&
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long13)
|
||||
@@ -1176,7 +1226,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isHKBullish &&
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.hullConditions.isBullish
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long14)
|
||||
@@ -1203,7 +1254,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isHKBullish &&
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.sslcConditions.isBullish
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long15)
|
||||
@@ -1231,7 +1283,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBullish &&
|
||||
conditions.mrbConditions.isFastOverSlow &&
|
||||
conditions.hullConditions.isBullish &&
|
||||
conditions.sslcConditions.isBullish
|
||||
conditions.sslcConditions.isBullish &&
|
||||
conditions.vlmConditions.isVolumeBullish
|
||||
//
|
||||
;
|
||||
if (long16)
|
||||
@@ -1241,6 +1294,34 @@ struct X121SignalGenerator
|
||||
provider = ToString(PROVIDER_XASCT);
|
||||
}
|
||||
|
||||
//
|
||||
// XVLM ...
|
||||
bool long17 =
|
||||
//
|
||||
// Starting Conditions ...
|
||||
conditions.vlmConditions.isVolumeChangedToBullish &&
|
||||
//
|
||||
// Verifications ...
|
||||
conditions.tdConditions.isBullish &&
|
||||
conditions.matdConditions.isBullish &&
|
||||
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);
|
||||
}
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
@@ -1311,6 +1392,10 @@ struct X121SignalGenerator
|
||||
//
|
||||
long16
|
||||
//
|
||||
||
|
||||
//
|
||||
long17
|
||||
//
|
||||
)
|
||||
//
|
||||
;
|
||||
@@ -1367,7 +1452,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short1)
|
||||
@@ -1395,7 +1481,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short2)
|
||||
@@ -1421,7 +1508,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short3)
|
||||
@@ -1448,7 +1536,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short4)
|
||||
@@ -1475,7 +1564,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short5)
|
||||
@@ -1502,7 +1592,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short6)
|
||||
@@ -1531,7 +1622,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short7)
|
||||
@@ -1560,7 +1652,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short8)
|
||||
@@ -1589,7 +1682,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short9)
|
||||
@@ -1617,7 +1711,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short10)
|
||||
@@ -1644,7 +1739,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short11)
|
||||
@@ -1671,7 +1767,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short12)
|
||||
@@ -1698,7 +1795,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isHKBearish &&
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short13)
|
||||
@@ -1725,7 +1823,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isHKBearish &&
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.hullConditions.isBearish
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short14)
|
||||
@@ -1752,7 +1851,8 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isHKBearish &&
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.sslcConditions.isBearish
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short15)
|
||||
@@ -1780,16 +1880,45 @@ struct X121SignalGenerator
|
||||
conditions.hkConditions.isSMHKBearish &&
|
||||
conditions.mrbConditions.isFastUnderSlow &&
|
||||
conditions.hullConditions.isBearish &&
|
||||
conditions.sslcConditions.isBearish
|
||||
conditions.sslcConditions.isBearish &&
|
||||
conditions.vlmConditions.isVolumeBearish
|
||||
//
|
||||
;
|
||||
if (short15)
|
||||
if (short16)
|
||||
{
|
||||
//
|
||||
pusher++;
|
||||
provider = ToString(PROVIDER_XASCT);
|
||||
}
|
||||
|
||||
//
|
||||
// XVLM ...
|
||||
bool short17 =
|
||||
//
|
||||
// Starting Conditions ...
|
||||
conditions.vlmConditions.isVolumeChangedToBearish &&
|
||||
//
|
||||
// Verifications ...
|
||||
conditions.tdConditions.isBearish &&
|
||||
conditions.matdConditions.isBearish &&
|
||||
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);
|
||||
}
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
@@ -1860,6 +1989,10 @@ struct X121SignalGenerator
|
||||
//
|
||||
short16
|
||||
//
|
||||
||
|
||||
//
|
||||
short17
|
||||
//
|
||||
)
|
||||
//
|
||||
;
|
||||
@@ -1881,7 +2014,7 @@ struct X121SignalGenerator
|
||||
|
||||
//
|
||||
// TODO Filter ...
|
||||
result = true;
|
||||
result = provider == ToString(PROVIDER_XVLM);
|
||||
|
||||
//
|
||||
return result;
|
||||
@@ -1900,7 +2033,7 @@ struct X121SignalGenerator
|
||||
|
||||
//
|
||||
// TODO Filter ...
|
||||
result = true;
|
||||
result = provider == ToString(PROVIDER_XVLM);
|
||||
|
||||
//
|
||||
return result;
|
||||
@@ -1913,6 +2046,7 @@ struct X121SignalGenerator
|
||||
XSignal &signal, // Signal if Exists
|
||||
int &pusher, // Pushers
|
||||
string &provider, // Signal Provider Name
|
||||
bool _useSupport, // Generate Support Signals
|
||||
bool _allowLong, // Allow Long Signals
|
||||
bool _allowShort, // Allow Short Signals
|
||||
double _volume = 0.01, // Volume
|
||||
@@ -2052,10 +2186,60 @@ struct X121SignalGenerator
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Generate Support Signals ...
|
||||
if (_useSupport)
|
||||
{
|
||||
//
|
||||
GenerateSupportSignals(
|
||||
signal //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
void GenerateSupportSignals(
|
||||
XSignal &signal // Source Signal for Support Generating ...
|
||||
) {
|
||||
//
|
||||
// Validate Signal ...
|
||||
if (!signal.IsValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Signal Has TP and SL ...
|
||||
if (signal.tp > 0 && signal.sl > 0) {
|
||||
//
|
||||
// Here we Can Provide Orders based on Signal TP and SL ...
|
||||
|
||||
//
|
||||
// Retrieve Signal Direction ...
|
||||
bool isLong = IsLong(signal.type);
|
||||
|
||||
//
|
||||
// Calculate TP/Entry Distance ...
|
||||
double tpDistance =
|
||||
isLong
|
||||
? signal.tp - signal.entry
|
||||
: signal.entry - signal.tp;
|
||||
|
||||
//
|
||||
// Calculate Recovery Zone Step ...
|
||||
double slDistance =
|
||||
isLong
|
||||
? signal.entry - signal.sl
|
||||
: signal.sl - signal.entry;
|
||||
|
||||
//
|
||||
// Calculate Ticks Zone ...
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
string GetTag()
|
||||
{
|
||||
@@ -2079,6 +2263,7 @@ public:
|
||||
XSCXSTRHelper *strHelper;
|
||||
XSCXMRBHelper *mrbHelper;
|
||||
XSCXOSCHelper *oscHelper;
|
||||
XSCXVLMHelper *vlmHelper;
|
||||
XSCXMATDHelper *matdHelper;
|
||||
XSCXASCTHelper *asctHelper;
|
||||
XSCXSSLCHelper *sslcHelper;
|
||||
@@ -2101,6 +2286,7 @@ public:
|
||||
delete strHelper;
|
||||
delete mrbHelper;
|
||||
delete oscHelper;
|
||||
delete vlmHelper;
|
||||
delete matdHelper;
|
||||
delete asctHelper;
|
||||
delete sslcHelper;
|
||||
@@ -2238,6 +2424,19 @@ public:
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// XVLM ...
|
||||
vlmHelper = new XSCXVLMHelper();
|
||||
result = vlmHelper.Init(
|
||||
inputs.symbol,
|
||||
inputs.period,
|
||||
inputs.vlmInputs //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// XMATD ...
|
||||
matdHelper = new XSCXMATDHelper(
|
||||
@@ -2429,6 +2628,17 @@ public:
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = vlmHelper.GetConditions(
|
||||
conditions.vlmConditions,
|
||||
barIndex,
|
||||
loopback //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = sslcHelper.GetConditions(
|
||||
conditions.sslcConditions,
|
||||
|
||||
Reference in New Issue
Block a user