188 lines
6.6 KiB
Plaintext
188 lines
6.6 KiB
Plaintext
|
|
//
|
|
// Senario 3:
|
|
// ----------
|
|
bool useSenario3 = false;
|
|
bool isSenario3Happend = false;
|
|
bool isSenario3Bullish = false;
|
|
bool isSenario3Bearish = false;
|
|
if (useSenario3)
|
|
{
|
|
//
|
|
// Senario 3 Bullish Conditions ...
|
|
isSenario3Bullish = false;
|
|
|
|
//
|
|
// Senario 3 Bearish Conditions ...
|
|
isSenario3Bearish = false;
|
|
|
|
//
|
|
// Filling Requirements using Senario 3 ...
|
|
isSenario3Happend =
|
|
isSenario3Bullish ||
|
|
isSenario3Bearish;
|
|
if (isSenario3Happend)
|
|
{
|
|
//
|
|
dir =
|
|
isSenario3Bullish
|
|
? X_DIRECTION_BULLISH
|
|
: X_DIRECTION_BEARISH;
|
|
|
|
//
|
|
box.dir = dir;
|
|
box.to = TimeCurrent();
|
|
box.symbol = provider
|
|
.decisionXConditions
|
|
.symbol;
|
|
box.period = provider
|
|
.decisionXConditions
|
|
.period;
|
|
|
|
//
|
|
int fromIDX = -1;
|
|
if (isSenario3Bullish)
|
|
{
|
|
//
|
|
double vale = provider
|
|
.decisionXConditions
|
|
.valesBuffer[cIDX];
|
|
|
|
//
|
|
box.lower = vale;
|
|
|
|
//
|
|
box.upper = provider
|
|
.decisionXConditions
|
|
.valesGoldenBuffer[cIDX];
|
|
|
|
//
|
|
int lowerValeIDX = -1;
|
|
double lowerVale = provider
|
|
.decisionCycleHelper
|
|
.mX121Helper
|
|
.xpvHelper
|
|
.GetLowerVale(
|
|
lowerValeIDX,
|
|
vale,
|
|
cBar.Index() //
|
|
);
|
|
|
|
//
|
|
int higherValeIDX = -1;
|
|
double higherVale = provider
|
|
.decisionCycleHelper
|
|
.mX121Helper
|
|
.xpvHelper
|
|
.GetHigherVale(
|
|
higherValeIDX,
|
|
vale,
|
|
cBar.Index() //
|
|
);
|
|
|
|
//
|
|
if (IsValidIndex(lowerValeIDX) &&
|
|
IsValidIndex(higherValeIDX))
|
|
{
|
|
//
|
|
fromIDX =
|
|
lowerValeIDX < higherValeIDX
|
|
? lowerValeIDX
|
|
: higherValeIDX;
|
|
}
|
|
else if (IsValidIndex(lowerValeIDX) &&
|
|
!IsValidIndex(higherValeIDX))
|
|
{
|
|
//
|
|
fromIDX = lowerValeIDX;
|
|
}
|
|
else if (!IsValidIndex(lowerValeIDX) &&
|
|
IsValidIndex(higherValeIDX))
|
|
{
|
|
//
|
|
fromIDX = higherValeIDX;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//
|
|
double peak = provider
|
|
.decisionXConditions
|
|
.peaksBuffer[cIDX];
|
|
|
|
//
|
|
box.upper = peak;
|
|
|
|
//
|
|
box.lower = provider
|
|
.decisionXConditions
|
|
.peaksGoldenBuffer[cIDX];
|
|
|
|
//
|
|
int lowerPeakIDX = -1;
|
|
double lowerPeak = provider
|
|
.decisionCycleHelper
|
|
.mX121Helper
|
|
.xpvHelper
|
|
.GetLowerPeak(
|
|
lowerPeakIDX,
|
|
peak,
|
|
cBar.Index() //
|
|
);
|
|
|
|
//
|
|
int higherPeakIDX = -1;
|
|
double higherPeak = provider
|
|
.decisionCycleHelper
|
|
.mX121Helper
|
|
.xpvHelper
|
|
.GetHigherPeak(
|
|
higherPeakIDX,
|
|
peak,
|
|
cBar.Index() //
|
|
);
|
|
|
|
//
|
|
if (IsValidIndex(lowerPeakIDX) &&
|
|
IsValidIndex(higherPeakIDX))
|
|
{
|
|
//
|
|
fromIDX =
|
|
lowerPeakIDX < higherPeakIDX
|
|
? lowerPeakIDX
|
|
: higherPeakIDX;
|
|
}
|
|
else if (IsValidIndex(lowerPeakIDX) &&
|
|
!IsValidIndex(higherPeakIDX))
|
|
{
|
|
//
|
|
fromIDX = lowerPeakIDX;
|
|
}
|
|
else if (!IsValidIndex(lowerPeakIDX) &&
|
|
IsValidIndex(higherPeakIDX))
|
|
{
|
|
//
|
|
fromIDX = higherPeakIDX;
|
|
}
|
|
}
|
|
|
|
//
|
|
if (IsValidIndex(fromIDX))
|
|
{
|
|
//
|
|
box.from = iTime(
|
|
zBar.symbol,
|
|
zBar.period,
|
|
fromIDX //
|
|
);
|
|
}
|
|
else
|
|
{
|
|
box.from = pBar.time;
|
|
}
|
|
|
|
//
|
|
signalProvider = X121SMC_XWZ_PROVIDER_ACTIVATED_BOX;
|
|
}
|
|
}
|