add some new conditions to XPV and also implement usage of XRL in setup class ...
This commit is contained in:
@@ -28,6 +28,7 @@
|
|||||||
#include "../Classes/x-saherelm.xalert.class.mq5"
|
#include "../Classes/x-saherelm.xalert.class.mq5"
|
||||||
|
|
||||||
//
|
//
|
||||||
|
#include "../Helpers/x-saherelm.xrl.helper.mq5"
|
||||||
#include "../Helpers/x-saherelm.xmc.helper.mq5"
|
#include "../Helpers/x-saherelm.xmc.helper.mq5"
|
||||||
#include "../Helpers/x-saherelm.xpv.helper.mq5"
|
#include "../Helpers/x-saherelm.xpv.helper.mq5"
|
||||||
#include "../Helpers/x-saherelm.xtd.helper.mq5"
|
#include "../Helpers/x-saherelm.xtd.helper.mq5"
|
||||||
@@ -230,6 +231,7 @@ struct X121SetupInputs
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Helpers Inputs ...
|
// Helpers Inputs ...
|
||||||
|
XRLInputs rlInputs; // XRL Inputs
|
||||||
XMCInputs mcInputs; // XMC Inputs
|
XMCInputs mcInputs; // XMC Inputs
|
||||||
XPVInputs pvInputs; // XPV Inputs
|
XPVInputs pvInputs; // XPV Inputs
|
||||||
XTDInputs tdInputs; // XTD Inputs
|
XTDInputs tdInputs; // XTD Inputs
|
||||||
@@ -271,6 +273,7 @@ struct X121SetupInputs
|
|||||||
bool Init(
|
bool Init(
|
||||||
string _symbol, // Symbol
|
string _symbol, // Symbol
|
||||||
ENUM_TIMEFRAMES _period, // Time Frame
|
ENUM_TIMEFRAMES _period, // Time Frame
|
||||||
|
XRLInputs &_rlInputs, // XRL Inputs
|
||||||
XMCInputs &_mcInputs, // XMC Inputs
|
XMCInputs &_mcInputs, // XMC Inputs
|
||||||
XPVInputs &_pvInputs, // XPV Inputs
|
XPVInputs &_pvInputs, // XPV Inputs
|
||||||
XTDInputs &_tdInputs, // XTD Inputs
|
XTDInputs &_tdInputs, // XTD Inputs
|
||||||
@@ -334,6 +337,7 @@ struct X121SetupInputs
|
|||||||
period = NULL;
|
period = NULL;
|
||||||
|
|
||||||
//
|
//
|
||||||
|
rlInputs.Clean();
|
||||||
mcInputs.Clean();
|
mcInputs.Clean();
|
||||||
pvInputs.Clean();
|
pvInputs.Clean();
|
||||||
tdInputs.Clean();
|
tdInputs.Clean();
|
||||||
@@ -359,6 +363,7 @@ struct X121SetupInputs
|
|||||||
void Default()
|
void Default()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
rlInputs.Default();
|
||||||
mcInputs.Default();
|
mcInputs.Default();
|
||||||
pvInputs.Default();
|
pvInputs.Default();
|
||||||
tdInputs.Default();
|
tdInputs.Default();
|
||||||
@@ -398,6 +403,13 @@ struct X121SetupInputs
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
result = rlInputs.IsValid();
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
result = tdInputs.IsValid();
|
result = tdInputs.IsValid();
|
||||||
if (!result)
|
if (!result)
|
||||||
@@ -541,6 +553,7 @@ struct X121SetupConditions
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Conditions ...
|
// Conditions ...
|
||||||
|
XRLConditions rlConditions;
|
||||||
XMCConditions mcConditions;
|
XMCConditions mcConditions;
|
||||||
XPVConditions pvConditions;
|
XPVConditions pvConditions;
|
||||||
XTDConditions tdConditions;
|
XTDConditions tdConditions;
|
||||||
@@ -585,6 +598,7 @@ struct X121SetupConditions
|
|||||||
Clean(macdSignal);
|
Clean(macdSignal);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
rlConditions.Clean();
|
||||||
mcConditions.Clean();
|
mcConditions.Clean();
|
||||||
tdConditions.Clean();
|
tdConditions.Clean();
|
||||||
hkConditions.Clean();
|
hkConditions.Clean();
|
||||||
@@ -617,6 +631,14 @@ struct X121SetupConditions
|
|||||||
double tempBullishScore = 0;
|
double tempBullishScore = 0;
|
||||||
double tempBearishScore = 0;
|
double tempBearishScore = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
rlConditions.GenerateScore(
|
||||||
|
tempBullishScore,
|
||||||
|
tempBearishScore //
|
||||||
|
);
|
||||||
|
bullishScore += tempBullishScore;
|
||||||
|
bearishScore += tempBearishScore;
|
||||||
|
|
||||||
//
|
//
|
||||||
mcConditions.GenerateScore(
|
mcConditions.GenerateScore(
|
||||||
tempBullishScore,
|
tempBullishScore,
|
||||||
@@ -796,6 +818,7 @@ struct X121SetupConditions
|
|||||||
|
|
||||||
//
|
//
|
||||||
string pvSummary = pvConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
string pvSummary = pvConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||||
|
string rlSummary = rlConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||||
string mcSummary = mcConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
string mcSummary = mcConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||||
string tdSummary = tdConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
string tdSummary = tdConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||||
string hkSummary = hkConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
string hkSummary = hkConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
|
||||||
@@ -817,6 +840,7 @@ struct X121SetupConditions
|
|||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
pvSummary + separator +
|
pvSummary + separator +
|
||||||
|
rlSummary + separator +
|
||||||
mcSummary + separator +
|
mcSummary + separator +
|
||||||
tdSummary + separator +
|
tdSummary + separator +
|
||||||
hkSummary + separator +
|
hkSummary + separator +
|
||||||
@@ -2131,7 +2155,7 @@ struct X121SignalGenerator
|
|||||||
// XICH ...
|
// XICH ...
|
||||||
conditions.ichConditions.isClosedOverKijunSen &&
|
conditions.ichConditions.isClosedOverKijunSen &&
|
||||||
(conditions.ichConditions.isTenkanSenOverKijunSen ||
|
(conditions.ichConditions.isTenkanSenOverKijunSen ||
|
||||||
conditions.ichConditions.isTenkanSenCrossedOverKijunSen)
|
conditions.ichConditions.isTenkanSenCrossedOverKijunSen)
|
||||||
//
|
//
|
||||||
)
|
)
|
||||||
//
|
//
|
||||||
@@ -3860,6 +3884,7 @@ class XSCX121Setup : public XSCBaseAlert
|
|||||||
public:
|
public:
|
||||||
//
|
//
|
||||||
// Props ...
|
// Props ...
|
||||||
|
XSCXRLHelper *rlHelper;
|
||||||
XSCXMCHelper *mcHelper;
|
XSCXMCHelper *mcHelper;
|
||||||
XSCXPVHelper *pvHelper;
|
XSCXPVHelper *pvHelper;
|
||||||
XSCXTDHelper *tdHelper;
|
XSCXTDHelper *tdHelper;
|
||||||
@@ -3888,6 +3913,7 @@ public:
|
|||||||
void ~XSCX121Setup()
|
void ~XSCX121Setup()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
delete rlHelper;
|
||||||
delete mcHelper;
|
delete mcHelper;
|
||||||
delete pvHelper;
|
delete pvHelper;
|
||||||
delete tdHelper;
|
delete tdHelper;
|
||||||
@@ -3959,6 +3985,19 @@ public:
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// XRL ...
|
||||||
|
rlHelper = new XSCXRLHelper();
|
||||||
|
result = rlHelper.Init(
|
||||||
|
inputs.symbol,
|
||||||
|
inputs.period,
|
||||||
|
inputs.rlInputs //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// XSLN ...
|
// XSLN ...
|
||||||
slnHelper = new XSCXSLNHelper();
|
slnHelper = new XSCXSLNHelper();
|
||||||
@@ -4216,6 +4255,17 @@ public:
|
|||||||
conditions.period = GetPeriod();
|
conditions.period = GetPeriod();
|
||||||
conditions.time = TimeCurrent();
|
conditions.time = TimeCurrent();
|
||||||
|
|
||||||
|
//
|
||||||
|
result = rlHelper.GetConditions(
|
||||||
|
conditions.rlConditions,
|
||||||
|
barIndex,
|
||||||
|
loopback //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
result = hdtHelper.GetConditions(
|
result = hdtHelper.GetConditions(
|
||||||
conditions.htdConditions,
|
conditions.htdConditions,
|
||||||
|
|||||||
@@ -63,8 +63,8 @@ input group "Risk Management";
|
|||||||
input double x121EAVolume = 0.01; // Static Volume
|
input double x121EAVolume = 0.01; // Static Volume
|
||||||
input double x121EATPPoint = 1000; // TP Point
|
input double x121EATPPoint = 1000; // TP Point
|
||||||
input double x121EASLPoint = 1000; // SL Point
|
input double x121EASLPoint = 1000; // SL Point
|
||||||
input bool x121EAIgnoreSL = false; // Ignore Calculated SL
|
input bool x121EAIgnoreSL = false; // Ignore Calculated SL
|
||||||
input bool x121EAIgnoreTP = false; // Ignore Calculated TP
|
input bool x121EAIgnoreTP = false; // Ignore Calculated TP
|
||||||
input bool x121EACloseOnOpposit = false; // Close all Positions on Opposit
|
input bool x121EACloseOnOpposit = false; // Close all Positions on Opposit
|
||||||
input int x121EAMaxAllowedTrades = 0; // Max Allowed Positions Per Symbol
|
input int x121EAMaxAllowedTrades = 0; // Max Allowed Positions Per Symbol
|
||||||
input bool x121EAUseMaxAllowedPerDirection = true; // Use Max Allowed Positions Per Direction
|
input bool x121EAUseMaxAllowedPerDirection = true; // Use Max Allowed Positions Per Direction
|
||||||
@@ -434,6 +434,12 @@ bool InitialEA()
|
|||||||
//
|
//
|
||||||
void X121PreConfigureStyles(X121SetupInputs &inputs)
|
void X121PreConfigureStyles(X121SetupInputs &inputs)
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
// XRL ...
|
||||||
|
inputs.rlInputs.showFast = false;
|
||||||
|
inputs.rlInputs.showSlow = false;
|
||||||
|
inputs.rlInputs.showVerifier = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// XHTD ...
|
// XHTD ...
|
||||||
inputs.htdInputs.show = false;
|
inputs.htdInputs.show = false;
|
||||||
|
|||||||
@@ -391,6 +391,37 @@ struct XPVConditions
|
|||||||
bool isHCHHSwitchedToBearish;
|
bool isHCHHSwitchedToBearish;
|
||||||
bool isHCLLSwitchedToBeraish;
|
bool isHCLLSwitchedToBeraish;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Fibonachi Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseOverFib1;
|
||||||
|
bool isCloseOverFib2;
|
||||||
|
bool isCloseOverFib3;
|
||||||
|
bool isCloseOverFib4;
|
||||||
|
bool isCloseOverFib5;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseUnderFib1;
|
||||||
|
bool isCloseUnderFib2;
|
||||||
|
bool isCloseUnderFib3;
|
||||||
|
bool isCloseUnderFib4;
|
||||||
|
bool isCloseUnderFib5;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseCrossedOverFib1;
|
||||||
|
bool isCloseCrossedOverFib2;
|
||||||
|
bool isCloseCrossedOverFib3;
|
||||||
|
bool isCloseCrossedOverFib4;
|
||||||
|
bool isCloseCrossedOverFib5;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseCrossedUnderFib1;
|
||||||
|
bool isCloseCrossedUnderFib2;
|
||||||
|
bool isCloseCrossedUnderFib3;
|
||||||
|
bool isCloseCrossedUnderFib4;
|
||||||
|
bool isCloseCrossedUnderFib5;
|
||||||
|
|
||||||
//
|
//
|
||||||
void Clean()
|
void Clean()
|
||||||
{
|
{
|
||||||
@@ -442,6 +473,26 @@ struct XPVConditions
|
|||||||
isFiboIncreased = false;
|
isFiboIncreased = false;
|
||||||
isFiboDecreased = false;
|
isFiboDecreased = false;
|
||||||
isFiboSectionChanged = false;
|
isFiboSectionChanged = false;
|
||||||
|
isCloseOverFib1 = false;
|
||||||
|
isCloseOverFib2 = false;
|
||||||
|
isCloseOverFib3 = false;
|
||||||
|
isCloseOverFib4 = false;
|
||||||
|
isCloseOverFib5 = false;
|
||||||
|
isCloseUnderFib1 = false;
|
||||||
|
isCloseUnderFib2 = false;
|
||||||
|
isCloseUnderFib3 = false;
|
||||||
|
isCloseUnderFib4 = false;
|
||||||
|
isCloseUnderFib5 = false;
|
||||||
|
isCloseCrossedOverFib1 = false;
|
||||||
|
isCloseCrossedOverFib2 = false;
|
||||||
|
isCloseCrossedOverFib3 = false;
|
||||||
|
isCloseCrossedOverFib4 = false;
|
||||||
|
isCloseCrossedOverFib5 = false;
|
||||||
|
isCloseCrossedUnderFib1 = false;
|
||||||
|
isCloseCrossedUnderFib2 = false;
|
||||||
|
isCloseCrossedUnderFib3 = false;
|
||||||
|
isCloseCrossedUnderFib4 = false;
|
||||||
|
isCloseCrossedUnderFib5 = false;
|
||||||
isSCBullish = false;
|
isSCBullish = false;
|
||||||
isSCHHBullish = false;
|
isSCHHBullish = false;
|
||||||
isSCLLBullish = false;
|
isSCLLBullish = false;
|
||||||
@@ -793,6 +844,26 @@ struct XPVConditions
|
|||||||
ToString("isFiboIncreased", isFiboIncreased, ignoreFalseConditions, separator) +
|
ToString("isFiboIncreased", isFiboIncreased, ignoreFalseConditions, separator) +
|
||||||
ToString("isFiboDecreased", isFiboDecreased, ignoreFalseConditions, separator) +
|
ToString("isFiboDecreased", isFiboDecreased, ignoreFalseConditions, separator) +
|
||||||
ToString("isFiboSectionChanged", isFiboSectionChanged, ignoreFalseConditions, separator) +
|
ToString("isFiboSectionChanged", isFiboSectionChanged, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseOverFib1", isCloseOverFib1, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseOverFib2", isCloseOverFib2, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseOverFib3", isCloseOverFib3, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseOverFib4", isCloseOverFib4, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseOverFib5", isCloseOverFib5, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseUnderFib1", isCloseUnderFib1, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseUnderFib2", isCloseUnderFib2, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseUnderFib3", isCloseUnderFib3, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseUnderFib4", isCloseUnderFib4, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseUnderFib5", isCloseUnderFib5, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedOverFib1", isCloseCrossedOverFib1, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedOverFib2", isCloseCrossedOverFib2, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedOverFib3", isCloseCrossedOverFib3, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedOverFib4", isCloseCrossedOverFib4, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedOverFib5", isCloseCrossedOverFib5, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedUnderFib1", isCloseCrossedUnderFib1, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedUnderFib2", isCloseCrossedUnderFib2, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedUnderFib3", isCloseCrossedUnderFib3, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedUnderFib4", isCloseCrossedUnderFib4, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isCloseCrossedUnderFib5", isCloseCrossedUnderFib5, ignoreFalseConditions, separator) +
|
||||||
ToString("isSCBullish", isSCBullish, ignoreFalseConditions, separator) +
|
ToString("isSCBullish", isSCBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isSCHHBullish", isSCHHBullish, ignoreFalseConditions, separator) +
|
ToString("isSCHHBullish", isSCHHBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isSCLLBullish", isSCLLBullish, ignoreFalseConditions, separator) +
|
ToString("isSCLLBullish", isSCLLBullish, ignoreFalseConditions, separator) +
|
||||||
@@ -841,6 +912,7 @@ struct XPVConditions
|
|||||||
ToString("isHCSwitchedToBearish", isHCSwitchedToBearish, ignoreFalseConditions, separator) +
|
ToString("isHCSwitchedToBearish", isHCSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||||
ToString("isHCHHSwitchedToBearish", isHCHHSwitchedToBearish, ignoreFalseConditions, separator) +
|
ToString("isHCHHSwitchedToBearish", isHCHHSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||||
ToString("isHCLLSwitchedToBeraish", isHCLLSwitchedToBeraish, ignoreFalseConditions, separator) +
|
ToString("isHCLLSwitchedToBeraish", isHCLLSwitchedToBeraish, ignoreFalseConditions, separator) +
|
||||||
|
//
|
||||||
""
|
""
|
||||||
//
|
//
|
||||||
;
|
;
|
||||||
@@ -2711,6 +2783,97 @@ public:
|
|||||||
//
|
//
|
||||||
;
|
;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Define Bars For Calculations ...
|
||||||
|
|
||||||
|
//
|
||||||
|
XOHCL cBar;
|
||||||
|
result = cBar.Init(
|
||||||
|
mSymbol,
|
||||||
|
mPeriod,
|
||||||
|
cIndex //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
XOHCL pBar;
|
||||||
|
result = pBar.Init(
|
||||||
|
mSymbol,
|
||||||
|
mPeriod,
|
||||||
|
pIndex //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseOverFib1 = cBar.close > conditions.fib1s[cIndex];
|
||||||
|
bool isCloseOverFib1Prev = pBar.close > conditions.fib1s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseOverFib2 = cBar.close > conditions.fib2s[cIndex];
|
||||||
|
bool isCloseOverFib2Prev = pBar.close > conditions.fib2s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseOverFib3 = cBar.close > conditions.fib3s[cIndex];
|
||||||
|
bool isCloseOverFib3Prev = pBar.close > conditions.fib3s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseOverFib4 = cBar.close > conditions.fib4s[cIndex];
|
||||||
|
bool isCloseOverFib4Prev = pBar.close > conditions.fib4s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseOverFib5 = cBar.close > conditions.fib5s[cIndex];
|
||||||
|
bool isCloseOverFib5Prev = pBar.close > conditions.fib5s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseUnderFib1 = cBar.close < conditions.fib1s[cIndex];
|
||||||
|
bool isCloseUnderFib1Prev = pBar.close < conditions.fib1s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseUnderFib2 = cBar.close < conditions.fib2s[cIndex];
|
||||||
|
bool isCloseUnderFib2Prev = pBar.close < conditions.fib2s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseUnderFib3 = cBar.close < conditions.fib3s[cIndex];
|
||||||
|
bool isCloseUnderFib3Prev = pBar.close < conditions.fib3s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseUnderFib4 = cBar.close < conditions.fib4s[cIndex];
|
||||||
|
bool isCloseUnderFib4Prev = pBar.close < conditions.fib4s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseUnderFib5 = cBar.close < conditions.fib5s[cIndex];
|
||||||
|
bool isCloseUnderFib5Prev = pBar.close < conditions.fib5s[pIndex];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseCrossedOverFib1 = isCloseOverFib1 &&
|
||||||
|
!isCloseOverFib1Prev;
|
||||||
|
bool isCloseCrossedOverFib2 = isCloseOverFib2 &&
|
||||||
|
!isCloseOverFib2Prev;
|
||||||
|
bool isCloseCrossedOverFib3 = isCloseOverFib3 &&
|
||||||
|
!isCloseOverFib3Prev;
|
||||||
|
bool isCloseCrossedOverFib4 = isCloseOverFib4 &&
|
||||||
|
!isCloseOverFib4Prev;
|
||||||
|
bool isCloseCrossedOverFib5 = isCloseOverFib5 &&
|
||||||
|
!isCloseOverFib5Prev;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCloseCrossedUnderFib1 = isCloseUnderFib1 &&
|
||||||
|
!isCloseUnderFib1Prev;
|
||||||
|
bool isCloseCrossedUnderFib2 = isCloseUnderFib2 &&
|
||||||
|
!isCloseUnderFib2Prev;
|
||||||
|
bool isCloseCrossedUnderFib3 = isCloseUnderFib3 &&
|
||||||
|
!isCloseUnderFib3Prev;
|
||||||
|
bool isCloseCrossedUnderFib4 = isCloseUnderFib4 &&
|
||||||
|
!isCloseUnderFib4Prev;
|
||||||
|
bool isCloseCrossedUnderFib5 = isCloseUnderFib5 &&
|
||||||
|
!isCloseUnderFib5Prev;
|
||||||
|
|
||||||
//
|
//
|
||||||
conditions.isNewPeak = isNewPeak;
|
conditions.isNewPeak = isNewPeak;
|
||||||
conditions.isNewPeakOverLast = isNewPeakOverLast;
|
conditions.isNewPeakOverLast = isNewPeakOverLast;
|
||||||
@@ -2721,6 +2884,26 @@ public:
|
|||||||
conditions.isFiboIncreased = isFiboIncreased;
|
conditions.isFiboIncreased = isFiboIncreased;
|
||||||
conditions.isFiboDecreased = isFiboDecreased;
|
conditions.isFiboDecreased = isFiboDecreased;
|
||||||
conditions.isFiboSectionChanged = isFiboSectionChanged;
|
conditions.isFiboSectionChanged = isFiboSectionChanged;
|
||||||
|
conditions.isCloseOverFib1 = isCloseOverFib1;
|
||||||
|
conditions.isCloseOverFib2 = isCloseOverFib2;
|
||||||
|
conditions.isCloseOverFib3 = isCloseOverFib3;
|
||||||
|
conditions.isCloseOverFib4 = isCloseOverFib4;
|
||||||
|
conditions.isCloseOverFib5 = isCloseOverFib5;
|
||||||
|
conditions.isCloseUnderFib1 = isCloseUnderFib1;
|
||||||
|
conditions.isCloseUnderFib2 = isCloseUnderFib2;
|
||||||
|
conditions.isCloseUnderFib3 = isCloseUnderFib3;
|
||||||
|
conditions.isCloseUnderFib4 = isCloseUnderFib4;
|
||||||
|
conditions.isCloseUnderFib5 = isCloseUnderFib5;
|
||||||
|
conditions.isCloseCrossedOverFib1 = isCloseCrossedOverFib1;
|
||||||
|
conditions.isCloseCrossedOverFib2 = isCloseCrossedOverFib2;
|
||||||
|
conditions.isCloseCrossedOverFib3 = isCloseCrossedOverFib3;
|
||||||
|
conditions.isCloseCrossedOverFib4 = isCloseCrossedOverFib4;
|
||||||
|
conditions.isCloseCrossedOverFib5 = isCloseCrossedOverFib5;
|
||||||
|
conditions.isCloseCrossedUnderFib1 = isCloseCrossedUnderFib1;
|
||||||
|
conditions.isCloseCrossedUnderFib2 = isCloseCrossedUnderFib2;
|
||||||
|
conditions.isCloseCrossedUnderFib3 = isCloseCrossedUnderFib3;
|
||||||
|
conditions.isCloseCrossedUnderFib4 = isCloseCrossedUnderFib4;
|
||||||
|
conditions.isCloseCrossedUnderFib5 = isCloseCrossedUnderFib5;
|
||||||
conditions.isSCBullish = isSCBullish;
|
conditions.isSCBullish = isSCBullish;
|
||||||
conditions.isSCHHBullish = isSCHHBullish;
|
conditions.isSCHHBullish = isSCHHBullish;
|
||||||
conditions.isSCLLBullish = isSCLLBullish;
|
conditions.isSCLLBullish = isSCLLBullish;
|
||||||
@@ -2812,7 +2995,8 @@ private:
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
int totalBars = CountBars();
|
int totalBars = CountBars();
|
||||||
if (totalBars > 1000) {
|
if (totalBars > 1000)
|
||||||
|
{
|
||||||
totalBars = 1000;
|
totalBars = 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user