last ...
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
#include "../Libraries/x-saherelm.draw.lib.mq5"
|
||||
|
||||
//
|
||||
#include "../Helpers/x-saherelm.xhk.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xmc.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xpv.helper.mq5"
|
||||
#include "../Helpers/x-saherelm.xzg.helper.mq5"
|
||||
@@ -74,6 +75,7 @@ public:
|
||||
bool drawPBarMid; // Draw Previous Bar Mid Line
|
||||
|
||||
//
|
||||
XHKInputs hkInputs; // HK Inputs ...
|
||||
XMCInputs mcInputs; // MC Inputs ...
|
||||
XPVInputs pvInputs; // XPV Inputs ...
|
||||
XZGInputs zgInputs; // XZG Inputs ...
|
||||
@@ -126,6 +128,7 @@ public:
|
||||
if (useDefaults)
|
||||
{
|
||||
//
|
||||
hkInputs.Default();
|
||||
mcInputs.Default();
|
||||
pvInputs.Default();
|
||||
zgInputs.Default();
|
||||
@@ -153,6 +156,7 @@ public:
|
||||
string mSymbol, // Trading Symbol
|
||||
ENUM_TIMEFRAMES mHostPeriod, // Host Period
|
||||
ENUM_X_MARKET_CYCLES mCycle, // Init Cycle
|
||||
XHKInputs &mHkInputs, // HK Inputs
|
||||
XMCInputs &mMcInputs, // MC Inputs
|
||||
XPVInputs &mPvInputs, // XPV Inputs ...
|
||||
XZGInputs &mZgInputs, // XZG Inputs ...
|
||||
@@ -183,6 +187,7 @@ public:
|
||||
}
|
||||
|
||||
//
|
||||
hkInputs = mHkInputs;
|
||||
mcInputs = mMcInputs;
|
||||
pvInputs = mPvInputs;
|
||||
zgInputs = mZgInputs;
|
||||
@@ -211,6 +216,7 @@ public:
|
||||
cycle.Clean();
|
||||
|
||||
//
|
||||
hkInputs.Clean();
|
||||
mcInputs.Clean();
|
||||
pvInputs.Clean();
|
||||
zgInputs.Clean();
|
||||
@@ -239,6 +245,7 @@ public:
|
||||
virtual void Default()
|
||||
{
|
||||
//
|
||||
hkInputs.Default();
|
||||
mcInputs.Default();
|
||||
pvInputs.Default();
|
||||
zgInputs.Default();
|
||||
@@ -270,6 +277,13 @@ public:
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = hkInputs.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = mcInputs.IsValid();
|
||||
if (!result)
|
||||
@@ -341,6 +355,7 @@ public:
|
||||
result = MathMax(mcInputs.Max(), strInputs.Max());
|
||||
|
||||
//
|
||||
result = MathMax(result, hkInputs.Max());
|
||||
result = MathMax(result, mcInputs.Max());
|
||||
result = MathMax(result, pvInputs.Max());
|
||||
result = MathMax(result, zgInputs.Max());
|
||||
@@ -387,6 +402,10 @@ public:
|
||||
//
|
||||
// Buffers ...
|
||||
|
||||
//
|
||||
XOHCL hkBars[];
|
||||
XOHCL smHKBars[];
|
||||
|
||||
//
|
||||
// XICH ...
|
||||
double ichTenkanSens[];
|
||||
@@ -467,6 +486,23 @@ public:
|
||||
double oscStochSignals[];
|
||||
double oscStddevs[];
|
||||
|
||||
//
|
||||
// XHK ...
|
||||
|
||||
//
|
||||
bool isHKBullish;
|
||||
bool isSMHKBullish;
|
||||
bool isHKBearish;
|
||||
bool isSMHKBearish;
|
||||
bool isClosedOverSMHK;
|
||||
bool isClosedUnderSMHK;
|
||||
bool isHKBullishPrev;
|
||||
bool isSMHKBullishPrev;
|
||||
bool isHKBearishPrev;
|
||||
bool isSMHKBearishPrev;
|
||||
bool isClosedOverSMHKPrev;
|
||||
bool isClosedUnderSMHKPrev;
|
||||
|
||||
//
|
||||
// XZG ...
|
||||
|
||||
@@ -1012,6 +1048,8 @@ public:
|
||||
//
|
||||
// Buffers ...
|
||||
Clean(bars);
|
||||
Clean(hkBars);
|
||||
Clean(smHKBars);
|
||||
Clean(ichTenkanSens);
|
||||
Clean(ichKijunSens);
|
||||
Clean(ichChikouSpans);
|
||||
@@ -1072,6 +1110,8 @@ public:
|
||||
//
|
||||
// Buffers ...
|
||||
ArraySetAsSeries(bars, true);
|
||||
ArraySetAsSeries(hkBars, true);
|
||||
ArraySetAsSeries(smHKBars, true);
|
||||
ArraySetAsSeries(ichTenkanSens, true);
|
||||
ArraySetAsSeries(ichKijunSens, true);
|
||||
ArraySetAsSeries(ichChikouSpans, true);
|
||||
@@ -1130,6 +1170,18 @@ public:
|
||||
ArraySetAsSeries(pvHCLLs, true);
|
||||
|
||||
//
|
||||
isHKBullish = false;
|
||||
isSMHKBullish = false;
|
||||
isHKBearish = false;
|
||||
isSMHKBearish = false;
|
||||
isClosedOverSMHK = false;
|
||||
isClosedUnderSMHK = false;
|
||||
isHKBullishPrev = false;
|
||||
isSMHKBullishPrev = false;
|
||||
isHKBearishPrev = false;
|
||||
isSMHKBearishPrev = false;
|
||||
isClosedOverSMHKPrev = false;
|
||||
isClosedUnderSMHKPrev = false;
|
||||
isZigZagInPeak = false;
|
||||
isZigZagInVale = false;
|
||||
isDONAttachedMaxLower = false;
|
||||
@@ -1357,6 +1409,85 @@ public:
|
||||
bearScore++;
|
||||
}
|
||||
|
||||
//
|
||||
// XHK ...
|
||||
|
||||
//
|
||||
if (isHKBullish)
|
||||
{
|
||||
//
|
||||
bullScore++;
|
||||
bearScore--;
|
||||
}
|
||||
if (isSMHKBullish)
|
||||
{
|
||||
//
|
||||
bullScore++;
|
||||
bearScore--;
|
||||
}
|
||||
if (isHKBearish)
|
||||
{
|
||||
//
|
||||
bullScore--;
|
||||
bearScore++;
|
||||
}
|
||||
if (isSMHKBearish)
|
||||
{
|
||||
//
|
||||
bullScore--;
|
||||
bearScore++;
|
||||
}
|
||||
if (isClosedOverSMHK)
|
||||
{
|
||||
//
|
||||
bullScore++;
|
||||
bearScore--;
|
||||
}
|
||||
if (isClosedUnderSMHK)
|
||||
{
|
||||
//
|
||||
bullScore--;
|
||||
bearScore++;
|
||||
}
|
||||
|
||||
//
|
||||
if (isHKBullishPrev)
|
||||
{
|
||||
//
|
||||
bullScore += 2;
|
||||
bearScore--;
|
||||
}
|
||||
if (isSMHKBullishPrev)
|
||||
{
|
||||
//
|
||||
bullScore += 2;
|
||||
bearScore--;
|
||||
}
|
||||
if (isHKBearishPrev)
|
||||
{
|
||||
//
|
||||
bullScore--;
|
||||
bearScore += 2;
|
||||
}
|
||||
if (isSMHKBearishPrev)
|
||||
{
|
||||
//
|
||||
bullScore--;
|
||||
bearScore += 2;
|
||||
}
|
||||
if (isClosedOverSMHKPrev)
|
||||
{
|
||||
//
|
||||
bullScore += 2;
|
||||
bearScore--;
|
||||
}
|
||||
if (isClosedUnderSMHKPrev)
|
||||
{
|
||||
//
|
||||
bullScore--;
|
||||
bearScore += 2;
|
||||
}
|
||||
|
||||
//
|
||||
// XZG ...
|
||||
if (isZigZagInPeak)
|
||||
@@ -2167,6 +2298,27 @@ public:
|
||||
;
|
||||
candlesticStr = SetLabel("Candelstick: ", candlesticStr, separator);
|
||||
|
||||
//
|
||||
// XHK ...
|
||||
string hkStr =
|
||||
//
|
||||
ToString("isHKBullish", isHKBullish, ignoreFalseConditions) +
|
||||
ToString("isSMHKBullish", isSMHKBullish, ignoreFalseConditions) +
|
||||
ToString("isHKBearish", isHKBearish, ignoreFalseConditions) +
|
||||
ToString("isSMHKBearish", isSMHKBearish, ignoreFalseConditions) +
|
||||
ToString("isClosedOverSMHK", isClosedOverSMHK, ignoreFalseConditions) +
|
||||
ToString("isClosedUnderSMHK", isClosedUnderSMHK, ignoreFalseConditions) +
|
||||
ToString("isHKBullishPrev", isHKBullishPrev, ignoreFalseConditions) +
|
||||
ToString("isSMHKBullishPrev", isSMHKBullishPrev, ignoreFalseConditions) +
|
||||
ToString("isHKBearishPrev", isHKBearishPrev, ignoreFalseConditions) +
|
||||
ToString("isSMHKBearishPrev", isSMHKBearishPrev, ignoreFalseConditions) +
|
||||
ToString("isClosedOverSMHKPrev", isClosedOverSMHKPrev, ignoreFalseConditions) +
|
||||
ToString("isClosedUnderSMHKPrev", isClosedUnderSMHKPrev, ignoreFalseConditions) +
|
||||
""
|
||||
//
|
||||
;
|
||||
hkStr = SetLabel("XHK: ", hkStr, separator);
|
||||
|
||||
//
|
||||
// XZG ...
|
||||
string zigzagStr =
|
||||
@@ -2455,7 +2607,8 @@ public:
|
||||
candlesticStr +
|
||||
(onlySummary
|
||||
? ""
|
||||
: zigzagStr +
|
||||
: hkStr +
|
||||
zigzagStr +
|
||||
strStr +
|
||||
cheStr +
|
||||
donStr +
|
||||
@@ -2523,6 +2676,7 @@ class XSCX121Market : XSCBase
|
||||
public:
|
||||
//
|
||||
// Props ...
|
||||
XSCXHKHelper hk;
|
||||
XSCXMCHelper mc;
|
||||
XSCXPVHelper pv;
|
||||
XSCXZGHelper zg;
|
||||
@@ -2767,6 +2921,55 @@ public:
|
||||
conditions.isCurrentMidLineOverLastMidLine = isCurrentMidLineOverLastMidLine;
|
||||
conditions.isCurrentMidLineUnderLastMidLine = isCurrentMidLineUnderLastMidLine;
|
||||
|
||||
//
|
||||
// XHK ...
|
||||
|
||||
//
|
||||
hk.CopyAsOHCL(
|
||||
barIndex,
|
||||
mNumberOfItems,
|
||||
conditions.hkBars //
|
||||
);
|
||||
|
||||
//
|
||||
hk.CopySMAsOHCL(
|
||||
barIndex,
|
||||
mNumberOfItems,
|
||||
conditions.smHKBars //
|
||||
);
|
||||
|
||||
//
|
||||
bool isHKBullish = conditions.hkBars[curr].IsBullish();
|
||||
bool isHKBullishPrev = conditions.hkBars[prev].IsBullish();
|
||||
bool isSMHKBullish = conditions.smHKBars[curr].IsBullish();
|
||||
bool isSMHKBullishPrev = conditions.smHKBars[prev].IsBullish();
|
||||
|
||||
//
|
||||
bool isHKBearish = conditions.hkBars[curr].IsBearish();
|
||||
bool isHKBearishPrev = conditions.hkBars[prev].IsBearish();
|
||||
bool isSMHKBearish = conditions.smHKBars[curr].IsBearish();
|
||||
bool isSMHKBearishPrev = conditions.smHKBars[prev].IsBearish();
|
||||
|
||||
//
|
||||
bool isClosedOverSMHK = conditions.bars[curr].close > conditions.smHKBars[curr].GetUp();
|
||||
bool isClosedUnderSMHK = conditions.bars[curr].close < conditions.smHKBars[curr].GetDown();
|
||||
bool isClosedOverSMHKPrev = conditions.bars[prev].close > conditions.smHKBars[prev].GetUp();
|
||||
bool isClosedUnderSMHKPrev = conditions.bars[prev].close < conditions.smHKBars[prev].GetDown();
|
||||
|
||||
//
|
||||
conditions.isHKBullish = isHKBullish;
|
||||
conditions.isSMHKBullish = isSMHKBullish;
|
||||
conditions.isHKBearish = isHKBearish;
|
||||
conditions.isSMHKBearish = isSMHKBearish;
|
||||
conditions.isClosedOverSMHK = isClosedOverSMHK;
|
||||
conditions.isClosedUnderSMHK = isClosedUnderSMHK;
|
||||
conditions.isHKBullishPrev = isHKBullishPrev;
|
||||
conditions.isSMHKBullishPrev = isSMHKBullishPrev;
|
||||
conditions.isHKBearishPrev = isHKBearishPrev;
|
||||
conditions.isSMHKBearishPrev = isSMHKBearishPrev;
|
||||
conditions.isClosedOverSMHKPrev = isClosedOverSMHKPrev;
|
||||
conditions.isClosedUnderSMHKPrev = isClosedUnderSMHKPrev;
|
||||
|
||||
//
|
||||
// XZG ...
|
||||
|
||||
@@ -4258,6 +4461,19 @@ public:
|
||||
//
|
||||
// Init Helpers ...
|
||||
|
||||
//
|
||||
// XHK ...
|
||||
result = hk.Init(
|
||||
symbol,
|
||||
period,
|
||||
mInputs.hkInputs
|
||||
//
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// XMC ...
|
||||
result = mc.Init(
|
||||
|
||||
Reference in New Issue
Block a user