last ...
This commit is contained in:
@@ -0,0 +1,288 @@
|
|||||||
|
#include "../Signals/x-121.smc.xobs.signal.lib.mq5"
|
||||||
|
|
||||||
|
bool useXOBSSignal;
|
||||||
|
useXOBSSignal = false;
|
||||||
|
|
||||||
|
bool hasXOBSSignal = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XOBS Signal ...
|
||||||
|
if (useXOBSSignal && !hasSignal)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
hasXOBSSignal = DetectXOBSSignal(conditions);
|
||||||
|
hasSignal = hasXOBSSignal;
|
||||||
|
}
|
||||||
|
|
||||||
|
Clean(mX121SMCXOBSConditionsCollection);
|
||||||
|
|
||||||
|
//
|
||||||
|
// XOBS Guard Detection ...
|
||||||
|
if (useXOBSSignal)
|
||||||
|
{
|
||||||
|
// //
|
||||||
|
// bool hasGuard = DetectX121SMCXOBSGuards(
|
||||||
|
// guards,
|
||||||
|
// positions,
|
||||||
|
// mTriggerCycleHelper,
|
||||||
|
// mDecisionCycleHelper,
|
||||||
|
// mAnalyseCycleHelper,
|
||||||
|
// mVerificationCycleHelper,
|
||||||
|
// mConsolidationCycleHelper,
|
||||||
|
// mVisionCycleHelper //
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// XOBS Signal ...
|
||||||
|
bool DetectXOBSSignal(
|
||||||
|
X121SMCStrategyConditions &conditions //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isBullish = false;
|
||||||
|
bool isBearish = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
int zIndex = 0;
|
||||||
|
int cIndex = zIndex + 1;
|
||||||
|
int pIndex = cIndex + 1;
|
||||||
|
int ppIndex = pIndex + 1;
|
||||||
|
|
||||||
|
//
|
||||||
|
string symbol = GetSymbol();
|
||||||
|
ENUM_TIMEFRAMES period = GetPeriod();
|
||||||
|
|
||||||
|
//
|
||||||
|
XOHCL zBar;
|
||||||
|
result = zBar.Init(
|
||||||
|
symbol,
|
||||||
|
period,
|
||||||
|
zIndex //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
XOHCL cBar;
|
||||||
|
result = cBar.Init(
|
||||||
|
symbol,
|
||||||
|
period,
|
||||||
|
cIndex //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
XOHCL pBar;
|
||||||
|
result = pBar.Init(
|
||||||
|
symbol,
|
||||||
|
period,
|
||||||
|
pIndex //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
double cLL = cBar.FindLowest(7, MODE_LOW);
|
||||||
|
double cHH = cBar.FindHighest(7, MODE_HIGH);
|
||||||
|
|
||||||
|
//
|
||||||
|
datetime cTime = TimeCurrent();
|
||||||
|
|
||||||
|
//
|
||||||
|
ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XOBS;
|
||||||
|
string providerStr = ToString(provider);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Detect Setup Conditions ...
|
||||||
|
datetime setupTime = mX121SMCXOBSConditions.setupTime;
|
||||||
|
bool isSetuped = mX121SMCXOBSConditions.IsSetuped();
|
||||||
|
ENUM_X_DIRECTION setupDir = mX121SMCXOBSConditions.dir;
|
||||||
|
if (!isSetuped)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Detect Signal Setup ...
|
||||||
|
// isSetuped = DetectX121SMCXOBSSignalSetup(
|
||||||
|
// symbol,
|
||||||
|
// period,
|
||||||
|
// mX121SMCXOBSConditions,
|
||||||
|
// mTriggerCycleHelper,
|
||||||
|
// mDecisionCycleHelper,
|
||||||
|
// mAnalyseCycleHelper,
|
||||||
|
// mVerificationCycleHelper,
|
||||||
|
// mConsolidationCycleHelper,
|
||||||
|
// mVisionCycleHelper //
|
||||||
|
// );
|
||||||
|
|
||||||
|
//
|
||||||
|
setupDir = mX121SMCXOBSConditions.dir;
|
||||||
|
setupTime = mX121SMCXOBSConditions.setupTime;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isSetuped)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
int items = AddX121SMCXOBSConditionsIfNotExists(
|
||||||
|
mX121SMCXOBSConditions,
|
||||||
|
mX121SMCXOBSConditionsCollection //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
mX121SMCXOBSConditions.Clean();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
int conditionsCount = ArraySize(mX121SMCXOBSConditionsCollection);
|
||||||
|
result = IsValidSize(conditionsCount);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Looking For Conditions ...
|
||||||
|
int selectedIndex = 0;
|
||||||
|
X121SMCStrategyXOBSSignalConditions mTmpConditions[];
|
||||||
|
Copy(
|
||||||
|
mX121SMCXOBSConditionsCollection,
|
||||||
|
mTmpConditions //
|
||||||
|
);
|
||||||
|
X121SMCStrategyXOBSSignalConditions mConditions;
|
||||||
|
for (int i = 0; i < conditionsCount; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Check Triggers ...
|
||||||
|
bool canTrigger = mTmpConditions[i].CanTrigger();
|
||||||
|
datetime triggerTime = mTmpConditions[i].triggerTime;
|
||||||
|
if (!canTrigger)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Detect Signal Trigger ...
|
||||||
|
// canTrigger = DetectX121SMCXOBSSignalTrigger(
|
||||||
|
// mTmpConditions[i],
|
||||||
|
// symbol,
|
||||||
|
// period,
|
||||||
|
// mTriggerCycleHelper,
|
||||||
|
// mDecisionCycleHelper,
|
||||||
|
// mAnalyseCycleHelper,
|
||||||
|
// mVerificationCycleHelper,
|
||||||
|
// mConsolidationCycleHelper,
|
||||||
|
// mVisionCycleHelper //
|
||||||
|
// );
|
||||||
|
|
||||||
|
//
|
||||||
|
result = canTrigger;
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool isISetuped = mTmpConditions[i].IsSetuped();
|
||||||
|
if (!isISetuped)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
ArrayRemove(
|
||||||
|
mX121SMCXOBSConditionsCollection,
|
||||||
|
i,
|
||||||
|
1 //
|
||||||
|
);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
triggerTime = mTmpConditions[i].triggerTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (canTrigger)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
selectedIndex = i;
|
||||||
|
mConditions = mTmpConditions[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
result = IsValid(mConditions.setupTime) &&
|
||||||
|
HasDirection(mConditions.dir);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Remove Selected Index from Main Collection ...
|
||||||
|
ArrayRemove(
|
||||||
|
mX121SMCXOBSConditionsCollection,
|
||||||
|
selectedIndex,
|
||||||
|
1 //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check Signal Direction ...
|
||||||
|
isBullish = IsBullish(mConditions.dir);
|
||||||
|
isBearish = IsBearish(mConditions.dir);
|
||||||
|
result = isBullish ||
|
||||||
|
isBearish;
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Issues Signal on Conditions ...
|
||||||
|
conditions.sl = mConditions.sl;
|
||||||
|
conditions.provider = providerStr;
|
||||||
|
conditions.signalDir = mConditions.dir;
|
||||||
|
conditions.target = mConditions.target;
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
X_121_SMC_PROVIDER_XOBS,
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_121_SMC_PROVIDER_XOBS:
|
||||||
|
result = X121SMCXOBSToken;
|
||||||
|
break;
|
||||||
|
|
||||||
|
else if (Contains(X121SMCXOBSToken, value))
|
||||||
|
{
|
||||||
|
result = X_121_SMC_PROVIDER_XOBS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
+1374
-1374
File diff suppressed because it is too large
Load Diff
@@ -384,7 +384,10 @@ struct XTick
|
|||||||
*
|
*
|
||||||
* @return ( bool )
|
* @return ( bool )
|
||||||
*/
|
*/
|
||||||
bool Init(string _symbol)
|
bool Init(
|
||||||
|
string _symbol,
|
||||||
|
ENUM_TIMEFRAMES _volumePeriod = NULL //
|
||||||
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
bool result = false;
|
bool result = false;
|
||||||
@@ -401,7 +404,13 @@ struct XTick
|
|||||||
double _bid = GetBid(_symbol);
|
double _bid = GetBid(_symbol);
|
||||||
double _ask = GetAsk(_symbol);
|
double _ask = GetAsk(_symbol);
|
||||||
double _spread = GetSpread(_symbol);
|
double _spread = GetSpread(_symbol);
|
||||||
long _volume = iTickVolume(_symbol, PERIOD_M1, 0);
|
|
||||||
|
//
|
||||||
|
long _volume = 0;
|
||||||
|
if (IsValid(_volumePeriod))
|
||||||
|
{
|
||||||
|
_volume = iTickVolume(_symbol, _volumePeriod, 0);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
result = Init(
|
result = Init(
|
||||||
|
|||||||
@@ -4263,12 +4263,13 @@ class XCTicksZone : public XCTwoBarZone
|
|||||||
*/
|
*/
|
||||||
bool Init(
|
bool Init(
|
||||||
XOHCL &startBar,
|
XOHCL &startBar,
|
||||||
XOHCL &endBar //
|
XOHCL &endBar,
|
||||||
|
ENUM_TIMEFRAMES forPeriod = NULL //
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
result = endBar.IsValid() &&
|
result = endBar.IsValid() &&
|
||||||
startBar.IsValid();
|
startBar.IsValid();
|
||||||
@@ -4277,6 +4278,11 @@ class XCTicksZone : public XCTwoBarZone
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (!IsSpecifiedValid(forPeriod)) {
|
||||||
|
forPeriod = endBar.period;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Calculate Start and End Time ...
|
// Calculate Start and End Time ...
|
||||||
datetime from = startBar.time;
|
datetime from = startBar.time;
|
||||||
@@ -4308,7 +4314,7 @@ class XCTicksZone : public XCTwoBarZone
|
|||||||
// Ticks Volumes ...
|
// Ticks Volumes ...
|
||||||
int ticksVolumeCount = CopyTickVolume(
|
int ticksVolumeCount = CopyTickVolume(
|
||||||
symbol,
|
symbol,
|
||||||
PERIOD_M1,
|
forPeriod,
|
||||||
from,
|
from,
|
||||||
to,
|
to,
|
||||||
mTickVolumes //
|
mTickVolumes //
|
||||||
@@ -4465,12 +4471,12 @@ class XCTicksZone : public XCTwoBarZone
|
|||||||
datetime to1M = (datetime)((int)endBar.time + PeriodSeconds(period) - 60);
|
datetime to1M = (datetime)((int)endBar.time + PeriodSeconds(period) - 60);
|
||||||
int to1MIndex = iBarShift(
|
int to1MIndex = iBarShift(
|
||||||
symbol,
|
symbol,
|
||||||
PERIOD_M1,
|
forPeriod,
|
||||||
to1M //
|
to1M //
|
||||||
);
|
);
|
||||||
int from1MIndex = iBarShift(
|
int from1MIndex = iBarShift(
|
||||||
symbol,
|
symbol,
|
||||||
PERIOD_M1,
|
forPeriod,
|
||||||
from //
|
from //
|
||||||
);
|
);
|
||||||
for (int i = from1MIndex; i > to1MIndex; i--)
|
for (int i = from1MIndex; i > to1MIndex; i--)
|
||||||
@@ -4479,7 +4485,7 @@ class XCTicksZone : public XCTwoBarZone
|
|||||||
XOHCL iBar;
|
XOHCL iBar;
|
||||||
bool isInited = iBar.Init(
|
bool isInited = iBar.Init(
|
||||||
symbol,
|
symbol,
|
||||||
PERIOD_M1,
|
forPeriod,
|
||||||
i //
|
i //
|
||||||
);
|
);
|
||||||
if (!isInited)
|
if (!isInited)
|
||||||
@@ -4488,7 +4494,7 @@ class XCTicksZone : public XCTwoBarZone
|
|||||||
}
|
}
|
||||||
ulong iVolume = iTickVolume(
|
ulong iVolume = iTickVolume(
|
||||||
symbol,
|
symbol,
|
||||||
PERIOD_M1,
|
forPeriod,
|
||||||
i //
|
i //
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ enum ENUM_X_121_SMC_PROVIDERS
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
X_121_SMC_PROVIDER_NONE,
|
X_121_SMC_PROVIDER_NONE,
|
||||||
X_121_SMC_PROVIDER_XOBS,
|
|
||||||
X_121_SMC_PROVIDER_XSUPDEMOBS,
|
X_121_SMC_PROVIDER_XSUPDEMOBS,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -712,11 +711,6 @@ string ToString(ENUM_X_121_SMC_PROVIDERS value)
|
|||||||
case X_121_SMC_PROVIDER_XSUPDEMOBS:
|
case X_121_SMC_PROVIDER_XSUPDEMOBS:
|
||||||
result = X121SMCXSupDemOBSToken;
|
result = X121SMCXSupDemOBSToken;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//
|
|
||||||
case X_121_SMC_PROVIDER_XOBS:
|
|
||||||
result = X121SMCXOBSToken;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -746,10 +740,6 @@ ENUM_X_121_SMC_PROVIDERS ParseProvider(string value)
|
|||||||
{
|
{
|
||||||
result = X_121_SMC_PROVIDER_XSUPDEMOBS;
|
result = X_121_SMC_PROVIDER_XSUPDEMOBS;
|
||||||
}
|
}
|
||||||
else if (Contains(X121SMCXOBSToken, value))
|
|
||||||
{
|
|
||||||
result = X_121_SMC_PROVIDER_XOBS;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -1678,7 +1678,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
//
|
//
|
||||||
X121SMCStrategyXSupDemOBSSignalConditions &conditions,
|
X121SMCStrategyXSupDemOBSSignalConditions &conditions,
|
||||||
//
|
//
|
||||||
XC121SMCCycleHelper *triggerCycleHelper,
|
// XC121SMCCycleHelper *triggerCycleHelper,
|
||||||
XC121SMCCycleHelper *decisionCycleHelper,
|
XC121SMCCycleHelper *decisionCycleHelper,
|
||||||
XC121SMCCycleHelper *analyseCycleHelper,
|
XC121SMCCycleHelper *analyseCycleHelper,
|
||||||
XC121SMCCycleHelper *verificationCycleHelper,
|
XC121SMCCycleHelper *verificationCycleHelper,
|
||||||
@@ -1722,20 +1722,20 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Trigger ...
|
// Trigger ...
|
||||||
ENUM_XPOI_EVENTS triggerPoiEvents[];
|
// ENUM_XPOI_EVENTS triggerPoiEvents[];
|
||||||
ENUM_X_CYCLE_EVENTS triggerCycleEvents[];
|
// ENUM_X_CYCLE_EVENTS triggerCycleEvents[];
|
||||||
X121SMCCycleConditions triggerConditions;
|
// X121SMCCycleConditions triggerConditions;
|
||||||
result = triggerCycleHelper.GetConditions(
|
// result = triggerCycleHelper.GetConditions(
|
||||||
triggerCycleEvents,
|
// triggerCycleEvents,
|
||||||
triggerPoiEvents,
|
// triggerPoiEvents,
|
||||||
triggerConditions,
|
// triggerConditions,
|
||||||
zIndex,
|
// zIndex,
|
||||||
loopback //
|
// loopback //
|
||||||
);
|
// );
|
||||||
if (!result)
|
// if (!result)
|
||||||
{
|
// {
|
||||||
return result;
|
// return result;
|
||||||
}
|
// }
|
||||||
|
|
||||||
//
|
//
|
||||||
// Decision ...
|
// Decision ...
|
||||||
@@ -1824,7 +1824,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Cycles POI States ...
|
// Cycles POI States ...
|
||||||
XPOIState triggerState = triggerConditions.state;
|
// XPOIState triggerState = triggerConditions.state;
|
||||||
XPOIState decisionState = decisionConditions.state;
|
XPOIState decisionState = decisionConditions.state;
|
||||||
XPOIState analyseState = analyseConditions.state;
|
XPOIState analyseState = analyseConditions.state;
|
||||||
XPOIState verificationState = verificationConditions.state;
|
XPOIState verificationState = verificationConditions.state;
|
||||||
@@ -1833,7 +1833,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Cycle X121Conditions ...
|
// Cycle X121Conditions ...
|
||||||
X121Conditions triggerXConditions = triggerConditions.x121Conditions;
|
// X121Conditions triggerXConditions = triggerConditions.x121Conditions;
|
||||||
X121Conditions decisionXConditions = decisionConditions.x121Conditions;
|
X121Conditions decisionXConditions = decisionConditions.x121Conditions;
|
||||||
X121Conditions analyseXConditions = analyseConditions.x121Conditions;
|
X121Conditions analyseXConditions = analyseConditions.x121Conditions;
|
||||||
X121Conditions verificationXConditions = verificationConditions.x121Conditions;
|
X121Conditions verificationXConditions = verificationConditions.x121Conditions;
|
||||||
@@ -1859,8 +1859,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -1874,7 +1874,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionZBar.Clean();
|
decisionZBar.Clean();
|
||||||
decisionCBar.Clean();
|
decisionCBar.Clean();
|
||||||
@@ -1883,10 +1883,10 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -1905,8 +1905,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -1920,7 +1920,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionZBar.Clean();
|
decisionZBar.Clean();
|
||||||
decisionCBar.Clean();
|
decisionCBar.Clean();
|
||||||
@@ -1929,10 +1929,10 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -1951,8 +1951,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -1966,7 +1966,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionZBar.Clean();
|
decisionZBar.Clean();
|
||||||
decisionCBar.Clean();
|
decisionCBar.Clean();
|
||||||
@@ -1975,10 +1975,10 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -2196,8 +2196,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
if (isDestroyed)
|
if (isDestroyed)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -2211,7 +2211,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionZBar.Clean();
|
decisionZBar.Clean();
|
||||||
decisionCBar.Clean();
|
decisionCBar.Clean();
|
||||||
@@ -2220,10 +2220,10 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -2254,8 +2254,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -2269,7 +2269,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionZBar.Clean();
|
decisionZBar.Clean();
|
||||||
decisionCBar.Clean();
|
decisionCBar.Clean();
|
||||||
@@ -2278,10 +2278,10 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -2299,7 +2299,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Re Draw Working Zone ...
|
// Re Draw Working Zone ...
|
||||||
RemoveX121SMCXSupDemOBSWorkingZoneDraws();
|
// RemoveX121SMCXSupDemOBSWorkingZoneDraws();
|
||||||
DrawX121SMCXSupDemOBSWorkingZone(
|
DrawX121SMCXSupDemOBSWorkingZone(
|
||||||
conditions,
|
conditions,
|
||||||
visionCycleHelper.mPOIDrawer //
|
visionCycleHelper.mPOIDrawer //
|
||||||
@@ -2440,8 +2440,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -2455,7 +2455,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionZBar.Clean();
|
decisionZBar.Clean();
|
||||||
decisionCBar.Clean();
|
decisionCBar.Clean();
|
||||||
@@ -2464,10 +2464,10 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -2613,8 +2613,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
Clean(fvgs);
|
Clean(fvgs);
|
||||||
|
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -2628,7 +2628,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionZBar.Clean();
|
decisionZBar.Clean();
|
||||||
decisionCBar.Clean();
|
decisionCBar.Clean();
|
||||||
@@ -2637,10 +2637,10 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -2728,8 +2728,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
Clean(fvgs);
|
Clean(fvgs);
|
||||||
|
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -2743,7 +2743,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionZBar.Clean();
|
decisionZBar.Clean();
|
||||||
decisionCBar.Clean();
|
decisionCBar.Clean();
|
||||||
@@ -2752,10 +2752,10 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -2776,8 +2776,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
Clean(fvgs);
|
Clean(fvgs);
|
||||||
|
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -2791,16 +2791,16 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionState.Clean();
|
decisionState.Clean();
|
||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -3013,8 +3013,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
ZeroMemory(insideFVG);
|
ZeroMemory(insideFVG);
|
||||||
|
|
||||||
//
|
//
|
||||||
Clean(triggerPoiEvents);
|
// Clean(triggerPoiEvents);
|
||||||
Clean(triggerCycleEvents);
|
// Clean(triggerCycleEvents);
|
||||||
Clean(decisionPoiEvents);
|
Clean(decisionPoiEvents);
|
||||||
Clean(decisionCycleEvents);
|
Clean(decisionCycleEvents);
|
||||||
Clean(analysePoiEvents);
|
Clean(analysePoiEvents);
|
||||||
@@ -3028,7 +3028,7 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
|
|
||||||
//
|
//
|
||||||
visionState.Clean();
|
visionState.Clean();
|
||||||
triggerState.Clean();
|
// triggerState.Clean();
|
||||||
analyseState.Clean();
|
analyseState.Clean();
|
||||||
decisionZBar.Clean();
|
decisionZBar.Clean();
|
||||||
decisionCBar.Clean();
|
decisionCBar.Clean();
|
||||||
@@ -3037,10 +3037,10 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
|
|||||||
visionConditions.Clean();
|
visionConditions.Clean();
|
||||||
visionXConditions.Clean();
|
visionXConditions.Clean();
|
||||||
verificationState.Clean();
|
verificationState.Clean();
|
||||||
triggerConditions.Clean();
|
// triggerConditions.Clean();
|
||||||
analyseConditions.Clean();
|
analyseConditions.Clean();
|
||||||
consolidationState.Clean();
|
consolidationState.Clean();
|
||||||
triggerXConditions.Clean();
|
// triggerXConditions.Clean();
|
||||||
analyseXConditions.Clean();
|
analyseXConditions.Clean();
|
||||||
decisionConditions.Clean();
|
decisionConditions.Clean();
|
||||||
decisionXConditions.Clean();
|
decisionXConditions.Clean();
|
||||||
@@ -3161,7 +3161,7 @@ bool DetectX121SMCXSupDemOBSSignalTrigger(
|
|||||||
string _symbol,
|
string _symbol,
|
||||||
ENUM_TIMEFRAMES _period,
|
ENUM_TIMEFRAMES _period,
|
||||||
//
|
//
|
||||||
XC121SMCCycleHelper *triggerCycleHelper,
|
// XC121SMCCycleHelper *triggerCycleHelper,
|
||||||
XC121SMCCycleHelper *decisionCycleHelper,
|
XC121SMCCycleHelper *decisionCycleHelper,
|
||||||
XC121SMCCycleHelper *analyseCycleHelper,
|
XC121SMCCycleHelper *analyseCycleHelper,
|
||||||
XC121SMCCycleHelper *verificationCycleHelper,
|
XC121SMCCycleHelper *verificationCycleHelper,
|
||||||
@@ -3459,7 +3459,7 @@ bool DetectX121SMCXSupDemOBSSignalTrigger(
|
|||||||
bool DetectX121SMCXSupDemOBSGuards(
|
bool DetectX121SMCXSupDemOBSGuards(
|
||||||
X121SMCGuard &guards[],
|
X121SMCGuard &guards[],
|
||||||
const XPosition &positions[],
|
const XPosition &positions[],
|
||||||
XC121SMCCycleHelper *triggerCycleHelper,
|
// XC121SMCCycleHelper *triggerCycleHelper,
|
||||||
XC121SMCCycleHelper *decisionCycleHelper,
|
XC121SMCCycleHelper *decisionCycleHelper,
|
||||||
XC121SMCCycleHelper *analyseCycleHelper,
|
XC121SMCCycleHelper *analyseCycleHelper,
|
||||||
XC121SMCCycleHelper *verificationCycleHelper,
|
XC121SMCCycleHelper *verificationCycleHelper,
|
||||||
@@ -3473,28 +3473,28 @@ bool DetectX121SMCXSupDemOBSGuards(
|
|||||||
//
|
//
|
||||||
string provider = ToString(X_121_SMC_PROVIDER_XSUPDEMOBS);
|
string provider = ToString(X_121_SMC_PROVIDER_XSUPDEMOBS);
|
||||||
|
|
||||||
//
|
// //
|
||||||
result = DetectX121SMCGuards(
|
// result = DetectX121SMCGuards(
|
||||||
provider,
|
// provider,
|
||||||
guards,
|
// guards,
|
||||||
positions,
|
// positions,
|
||||||
triggerCycleHelper,
|
// // triggerCycleHelper,
|
||||||
decisionCycleHelper,
|
// decisionCycleHelper,
|
||||||
analyseCycleHelper,
|
// analyseCycleHelper,
|
||||||
verificationCycleHelper,
|
// verificationCycleHelper,
|
||||||
consolidationCycleHelper,
|
// consolidationCycleHelper,
|
||||||
visionCycleHelper,
|
// visionCycleHelper,
|
||||||
//
|
// //
|
||||||
true, // CloseOnTPNear Guard ...
|
// true, // CloseOnTPNear Guard ...
|
||||||
true, // CloseLongsOnBearishTrend Guard ...
|
// true, // CloseLongsOnBearishTrend Guard ...
|
||||||
true, // CloseShortsOnBullishTrend Guard ...
|
// true, // CloseShortsOnBullishTrend Guard ...
|
||||||
true, // CloseAllWeekend Guard ...
|
// true, // CloseAllWeekend Guard ...
|
||||||
true, // PartialCloseOnTrendChange Guard ...
|
// true, // PartialCloseOnTrendChange Guard ...
|
||||||
true, // TrailStop Guard ...
|
// true, // TrailStop Guard ...
|
||||||
true, // TrailTarget Guard ...
|
// true, // TrailTarget Guard ...
|
||||||
true // Hedge Guard ...
|
// true // Hedge Guard ...
|
||||||
//
|
// //
|
||||||
);
|
// );
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -27,7 +27,6 @@
|
|||||||
#include "../Classes/x-121.smc.market.cycle.helper.class.mq5"
|
#include "../Classes/x-121.smc.market.cycle.helper.class.mq5"
|
||||||
|
|
||||||
//
|
//
|
||||||
#include "../Signals/x-121.smc.xobs.signal.lib.mq5"
|
|
||||||
#include "../Signals/x-121.smc.xsupdemobs.signal.lib.mq5"
|
#include "../Signals/x-121.smc.xsupdemobs.signal.lib.mq5"
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -42,7 +41,6 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
public:
|
public:
|
||||||
//
|
//
|
||||||
// Props ...
|
// Props ...
|
||||||
bool useXOBSSignal;
|
|
||||||
bool useXSupDemOBSSignal;
|
bool useXSupDemOBSSignal;
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -104,11 +102,10 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
void Destroy() override
|
void Destroy() override
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
Clean(mX121SMCXOBSConditionsCollection);
|
|
||||||
Clean(mX121SMCXSupDemOBSConditionsCollection);
|
Clean(mX121SMCXSupDemOBSConditionsCollection);
|
||||||
|
|
||||||
//
|
//
|
||||||
ZeroMemory(mTriggerCycleHelper);
|
// ZeroMemory(mTriggerCycleHelper);
|
||||||
ZeroMemory(mDecisionCycleHelper);
|
ZeroMemory(mDecisionCycleHelper);
|
||||||
ZeroMemory(mAnalyseCycleHelper);
|
ZeroMemory(mAnalyseCycleHelper);
|
||||||
ZeroMemory(mVerificationCycleHelper);
|
ZeroMemory(mVerificationCycleHelper);
|
||||||
@@ -116,7 +113,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
ZeroMemory(mVisionCycleHelper);
|
ZeroMemory(mVisionCycleHelper);
|
||||||
|
|
||||||
//
|
//
|
||||||
delete mTriggerCycleHelper;
|
// delete mTriggerCycleHelper;
|
||||||
delete mDecisionCycleHelper;
|
delete mDecisionCycleHelper;
|
||||||
delete mAnalyseCycleHelper;
|
delete mAnalyseCycleHelper;
|
||||||
delete mVerificationCycleHelper;
|
delete mVerificationCycleHelper;
|
||||||
@@ -204,18 +201,8 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
bool hasSignal = false;
|
bool hasSignal = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool hasXOBSSignal = false;
|
|
||||||
bool hasXSupDemOBSSignal = false;
|
bool hasXSupDemOBSSignal = false;
|
||||||
|
|
||||||
//
|
|
||||||
// XOBS Signal ...
|
|
||||||
if (useXOBSSignal && !hasSignal)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
hasXOBSSignal = DetectXOBSSignal(conditions);
|
|
||||||
hasSignal = hasXOBSSignal;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// XSupDemOBS Signal ...
|
// XSupDemOBS Signal ...
|
||||||
if (useXSupDemOBSSignal && !hasSignal)
|
if (useXSupDemOBSSignal && !hasSignal)
|
||||||
@@ -405,23 +392,6 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// XOBS Guard Detection ...
|
|
||||||
if (useXOBSSignal)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
bool hasGuard = DetectX121SMCXOBSGuards(
|
|
||||||
guards,
|
|
||||||
positions,
|
|
||||||
mTriggerCycleHelper,
|
|
||||||
mDecisionCycleHelper,
|
|
||||||
mAnalyseCycleHelper,
|
|
||||||
mVerificationCycleHelper,
|
|
||||||
mConsolidationCycleHelper,
|
|
||||||
mVisionCycleHelper //
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// XSupDemOBS Guard Detection ...
|
// XSupDemOBS Guard Detection ...
|
||||||
if (useXSupDemOBSSignal)
|
if (useXSupDemOBSSignal)
|
||||||
@@ -430,7 +400,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
bool hasGuard = DetectX121SMCXSupDemOBSGuards(
|
bool hasGuard = DetectX121SMCXSupDemOBSGuards(
|
||||||
guards,
|
guards,
|
||||||
positions,
|
positions,
|
||||||
mTriggerCycleHelper,
|
// mTriggerCycleHelper,
|
||||||
mDecisionCycleHelper,
|
mDecisionCycleHelper,
|
||||||
mAnalyseCycleHelper,
|
mAnalyseCycleHelper,
|
||||||
mVerificationCycleHelper,
|
mVerificationCycleHelper,
|
||||||
@@ -464,7 +434,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
// Props ...
|
// Props ...
|
||||||
|
|
||||||
//
|
//
|
||||||
XC121SMCCycleHelper *mTriggerCycleHelper;
|
// XC121SMCCycleHelper *mTriggerCycleHelper;
|
||||||
XC121SMCCycleHelper *mDecisionCycleHelper;
|
XC121SMCCycleHelper *mDecisionCycleHelper;
|
||||||
XC121SMCCycleHelper *mAnalyseCycleHelper;
|
XC121SMCCycleHelper *mAnalyseCycleHelper;
|
||||||
XC121SMCCycleHelper *mVerificationCycleHelper;
|
XC121SMCCycleHelper *mVerificationCycleHelper;
|
||||||
@@ -477,223 +447,6 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
//
|
//
|
||||||
// Signalling Functions ...
|
// Signalling Functions ...
|
||||||
|
|
||||||
//
|
|
||||||
// XOBS Signal ...
|
|
||||||
bool DetectXOBSSignal(
|
|
||||||
X121SMCStrategyConditions &conditions //
|
|
||||||
)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
bool result = false;
|
|
||||||
|
|
||||||
//
|
|
||||||
bool isBullish = false;
|
|
||||||
bool isBearish = false;
|
|
||||||
|
|
||||||
//
|
|
||||||
int zIndex = 0;
|
|
||||||
int cIndex = zIndex + 1;
|
|
||||||
int pIndex = cIndex + 1;
|
|
||||||
int ppIndex = pIndex + 1;
|
|
||||||
|
|
||||||
//
|
|
||||||
string symbol = GetSymbol();
|
|
||||||
ENUM_TIMEFRAMES period = GetPeriod();
|
|
||||||
|
|
||||||
//
|
|
||||||
XOHCL zBar;
|
|
||||||
result = zBar.Init(
|
|
||||||
symbol,
|
|
||||||
period,
|
|
||||||
zIndex //
|
|
||||||
);
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
XOHCL cBar;
|
|
||||||
result = cBar.Init(
|
|
||||||
symbol,
|
|
||||||
period,
|
|
||||||
cIndex //
|
|
||||||
);
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
XOHCL pBar;
|
|
||||||
result = pBar.Init(
|
|
||||||
symbol,
|
|
||||||
period,
|
|
||||||
pIndex //
|
|
||||||
);
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
double cLL = cBar.FindLowest(7, MODE_LOW);
|
|
||||||
double cHH = cBar.FindHighest(7, MODE_HIGH);
|
|
||||||
|
|
||||||
//
|
|
||||||
datetime cTime = TimeCurrent();
|
|
||||||
|
|
||||||
//
|
|
||||||
ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XOBS;
|
|
||||||
string providerStr = ToString(provider);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Detect Setup Conditions ...
|
|
||||||
datetime setupTime = mX121SMCXOBSConditions.setupTime;
|
|
||||||
bool isSetuped = mX121SMCXOBSConditions.IsSetuped();
|
|
||||||
ENUM_X_DIRECTION setupDir = mX121SMCXOBSConditions.dir;
|
|
||||||
if (!isSetuped)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// Detect Signal Setup ...
|
|
||||||
isSetuped = DetectX121SMCXOBSSignalSetup(
|
|
||||||
symbol,
|
|
||||||
period,
|
|
||||||
mX121SMCXOBSConditions,
|
|
||||||
mTriggerCycleHelper,
|
|
||||||
mDecisionCycleHelper,
|
|
||||||
mAnalyseCycleHelper,
|
|
||||||
mVerificationCycleHelper,
|
|
||||||
mConsolidationCycleHelper,
|
|
||||||
mVisionCycleHelper //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
setupDir = mX121SMCXOBSConditions.dir;
|
|
||||||
setupTime = mX121SMCXOBSConditions.setupTime;
|
|
||||||
|
|
||||||
//
|
|
||||||
if (isSetuped)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
int items = AddX121SMCXOBSConditionsIfNotExists(
|
|
||||||
mX121SMCXOBSConditions,
|
|
||||||
mX121SMCXOBSConditionsCollection //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
mX121SMCXOBSConditions.Clean();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
int conditionsCount = ArraySize(mX121SMCXOBSConditionsCollection);
|
|
||||||
result = IsValidSize(conditionsCount);
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Looking For Conditions ...
|
|
||||||
int selectedIndex = 0;
|
|
||||||
X121SMCStrategyXOBSSignalConditions mTmpConditions[];
|
|
||||||
Copy(
|
|
||||||
mX121SMCXOBSConditionsCollection,
|
|
||||||
mTmpConditions //
|
|
||||||
);
|
|
||||||
X121SMCStrategyXOBSSignalConditions mConditions;
|
|
||||||
for (int i = 0; i < conditionsCount; i++)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// Check Triggers ...
|
|
||||||
bool canTrigger = mTmpConditions[i].CanTrigger();
|
|
||||||
datetime triggerTime = mTmpConditions[i].triggerTime;
|
|
||||||
if (!canTrigger)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// Detect Signal Trigger ...
|
|
||||||
canTrigger = DetectX121SMCXOBSSignalTrigger(
|
|
||||||
mTmpConditions[i],
|
|
||||||
symbol,
|
|
||||||
period,
|
|
||||||
mTriggerCycleHelper,
|
|
||||||
mDecisionCycleHelper,
|
|
||||||
mAnalyseCycleHelper,
|
|
||||||
mVerificationCycleHelper,
|
|
||||||
mConsolidationCycleHelper,
|
|
||||||
mVisionCycleHelper //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
result = canTrigger;
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
bool isISetuped = mTmpConditions[i].IsSetuped();
|
|
||||||
if (!isISetuped)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
ArrayRemove(
|
|
||||||
mX121SMCXOBSConditionsCollection,
|
|
||||||
i,
|
|
||||||
1 //
|
|
||||||
);
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
triggerTime = mTmpConditions[i].triggerTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
if (canTrigger)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
selectedIndex = i;
|
|
||||||
mConditions = mTmpConditions[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
result = IsValid(mConditions.setupTime) &&
|
|
||||||
HasDirection(mConditions.dir);
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Remove Selected Index from Main Collection ...
|
|
||||||
ArrayRemove(
|
|
||||||
mX121SMCXOBSConditionsCollection,
|
|
||||||
selectedIndex,
|
|
||||||
1 //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Check Signal Direction ...
|
|
||||||
isBullish = IsBullish(mConditions.dir);
|
|
||||||
isBearish = IsBearish(mConditions.dir);
|
|
||||||
result = isBullish ||
|
|
||||||
isBearish;
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Issues Signal on Conditions ...
|
|
||||||
conditions.sl = mConditions.sl;
|
|
||||||
conditions.provider = providerStr;
|
|
||||||
conditions.signalDir = mConditions.dir;
|
|
||||||
conditions.target = mConditions.target;
|
|
||||||
|
|
||||||
//
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// XSupDemOBS Signal ...
|
// XSupDemOBS Signal ...
|
||||||
@@ -778,7 +531,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
symbol,
|
symbol,
|
||||||
period,
|
period,
|
||||||
mX121SMCXSupDemOBSConditions,
|
mX121SMCXSupDemOBSConditions,
|
||||||
mTriggerCycleHelper,
|
// mTriggerCycleHelper,
|
||||||
mDecisionCycleHelper,
|
mDecisionCycleHelper,
|
||||||
mAnalyseCycleHelper,
|
mAnalyseCycleHelper,
|
||||||
mVerificationCycleHelper,
|
mVerificationCycleHelper,
|
||||||
@@ -835,7 +588,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
mTmpConditions[i],
|
mTmpConditions[i],
|
||||||
symbol,
|
symbol,
|
||||||
period,
|
period,
|
||||||
mTriggerCycleHelper,
|
// mTriggerCycleHelper,
|
||||||
mDecisionCycleHelper,
|
mDecisionCycleHelper,
|
||||||
mAnalyseCycleHelper,
|
mAnalyseCycleHelper,
|
||||||
mVerificationCycleHelper,
|
mVerificationCycleHelper,
|
||||||
@@ -928,7 +681,6 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
void InitialHelpers()
|
void InitialHelpers()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
useXOBSSignal = false;
|
|
||||||
useXSupDemOBSSignal = true;
|
useXSupDemOBSSignal = true;
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -1049,60 +801,60 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Trigger Cycle ...
|
// Trigger Cycle ...
|
||||||
mTriggerCycleHelper = new XC121SMCCycleHelper();
|
// mTriggerCycleHelper = new XC121SMCCycleHelper();
|
||||||
isInited = mTriggerCycleHelper.Init(
|
// isInited = mTriggerCycleHelper.Init(
|
||||||
symbol,
|
// symbol,
|
||||||
PERIOD_M1,
|
// PERIOD_M1,
|
||||||
x121Inputs,
|
// x121Inputs,
|
||||||
requiredPOIS //
|
// requiredPOIS //
|
||||||
);
|
// );
|
||||||
if (isInited)
|
// if (isInited)
|
||||||
{
|
// {
|
||||||
//
|
// //
|
||||||
// Configure POI Drawer ...
|
// // Configure POI Drawer ...
|
||||||
color bullishColor = clrYellowGreen;
|
// color bullishColor = clrYellowGreen;
|
||||||
color bearishColor = clrChocolate;
|
// color bearishColor = clrChocolate;
|
||||||
|
|
||||||
//
|
// //
|
||||||
// Bars ...
|
// // Bars ...
|
||||||
mTriggerCycleHelper.mPOIDrawer.BarBullishColor(bullishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BarBullishColor(bullishColor);
|
||||||
mTriggerCycleHelper.mPOIDrawer.BarBearishColor(bearishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BarBearishColor(bearishColor);
|
||||||
|
|
||||||
//
|
// //
|
||||||
// Swings ...
|
// // Swings ...
|
||||||
mTriggerCycleHelper.mPOIDrawer.SwingLowColor(bullishColor);
|
// mTriggerCycleHelper.mPOIDrawer.SwingLowColor(bullishColor);
|
||||||
mTriggerCycleHelper.mPOIDrawer.SwingHighColor(bearishColor);
|
// mTriggerCycleHelper.mPOIDrawer.SwingHighColor(bearishColor);
|
||||||
|
|
||||||
//
|
// //
|
||||||
// Momentum ...
|
// // Momentum ...
|
||||||
mTriggerCycleHelper.mPOIDrawer.BullishMomentumBarColor(bullishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BullishMomentumBarColor(bullishColor);
|
||||||
mTriggerCycleHelper.mPOIDrawer.BearishMomentumBarColor(bearishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BearishMomentumBarColor(bearishColor);
|
||||||
|
|
||||||
//
|
// //
|
||||||
// Rejection ...
|
// // Rejection ...
|
||||||
mTriggerCycleHelper.mPOIDrawer.BullishRejectionBarColor(bullishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BullishRejectionBarColor(bullishColor);
|
||||||
mTriggerCycleHelper.mPOIDrawer.BearishRejectionBarColor(bearishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BearishRejectionBarColor(bearishColor);
|
||||||
|
|
||||||
//
|
// //
|
||||||
// Support and Resistance ...
|
// // Support and Resistance ...
|
||||||
mTriggerCycleHelper.mPOIDrawer.SupportZoneColor(bullishColor);
|
// mTriggerCycleHelper.mPOIDrawer.SupportZoneColor(bullishColor);
|
||||||
mTriggerCycleHelper.mPOIDrawer.ResistanceZoneColor(bearishColor);
|
// mTriggerCycleHelper.mPOIDrawer.ResistanceZoneColor(bearishColor);
|
||||||
|
|
||||||
//
|
// //
|
||||||
// Demand and Supply ...
|
// // Demand and Supply ...
|
||||||
mTriggerCycleHelper.mPOIDrawer.DemandZoneColor(bullishColor);
|
// mTriggerCycleHelper.mPOIDrawer.DemandZoneColor(bullishColor);
|
||||||
mTriggerCycleHelper.mPOIDrawer.SupplyZoneColor(bearishColor);
|
// mTriggerCycleHelper.mPOIDrawer.SupplyZoneColor(bearishColor);
|
||||||
|
|
||||||
//
|
// //
|
||||||
// Order Blocks ...
|
// // Order Blocks ...
|
||||||
mTriggerCycleHelper.mPOIDrawer.BullishOrderBlockColor(bullishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BullishOrderBlockColor(bullishColor);
|
||||||
mTriggerCycleHelper.mPOIDrawer.BearishOrderBlockColor(bearishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BearishOrderBlockColor(bearishColor);
|
||||||
|
|
||||||
//
|
// //
|
||||||
// Fair Value Gaps ...
|
// // Fair Value Gaps ...
|
||||||
mTriggerCycleHelper.mPOIDrawer.BullishFVGColor(bullishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BullishFVGColor(bullishColor);
|
||||||
mTriggerCycleHelper.mPOIDrawer.BearishFVGColor(bearishColor);
|
// mTriggerCycleHelper.mPOIDrawer.BearishFVGColor(bearishColor);
|
||||||
}
|
// }
|
||||||
|
|
||||||
//
|
//
|
||||||
// Decision Cycle ...
|
// Decision Cycle ...
|
||||||
|
|||||||
Reference in New Issue
Block a user