416 lines
9.9 KiB
Plaintext
416 lines
9.9 KiB
Plaintext
//
|
|
int zIndex = 0;
|
|
int cIndex = zIndex + 1;
|
|
int pIndex = cIndex + 1;
|
|
|
|
//
|
|
// XSTR ...
|
|
ENUM_XSTR_TREND_STATES cStrState = cMarket
|
|
.str
|
|
.GetState(cIndex);
|
|
double cStrTrend = cMarket.str.GetTrend(cIndex);
|
|
bool isCStrBullish = cStrState == X_STR_BULLISH;
|
|
bool isCStrBearish = cStrState == X_STR_BEARISH;
|
|
|
|
//
|
|
ENUM_XSTR_TREND_STATES pStrState = cMarket
|
|
.str
|
|
.GetState(pIndex);
|
|
double pStrTrend = cMarket.str.GetTrend(pIndex);
|
|
bool isPStrBullish = pStrState == X_STR_BULLISH;
|
|
bool isPStrBearish = pStrState == X_STR_BEARISH;
|
|
|
|
//
|
|
bool isTrendBullish = isCStrBullish;
|
|
bool isTrendBearish = isCStrBearish;
|
|
|
|
//
|
|
bool isTrendSwitchedToBullish =
|
|
//
|
|
isCStrBullish &&
|
|
!isPStrBullish
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isTrendSwitchedToBearish =
|
|
//
|
|
isCStrBearish &&
|
|
!isPStrBearish
|
|
//
|
|
;
|
|
|
|
//
|
|
// XCHE ...
|
|
|
|
//
|
|
double cCHELongExit1 = cMarket.che.GetLongExit1(cIndex);
|
|
double cCHELongExit2 = cMarket.che.GetLongExit2(cIndex);
|
|
|
|
//
|
|
double pCHELongExit1 = cMarket.che.GetLongExit1(pIndex);
|
|
double pCHELongExit2 = cMarket.che.GetLongExit2(pIndex);
|
|
|
|
//
|
|
double cCHEShortExit1 = cMarket.che.GetShortExit1(cIndex);
|
|
double cCHEShortExit2 = cMarket.che.GetShortExit2(cIndex);
|
|
|
|
//
|
|
double pCHEShortExit1 = cMarket.che.GetShortExit1(pIndex);
|
|
double pCHEShortExit2 = cMarket.che.GetShortExit2(pIndex);
|
|
|
|
//
|
|
bool CCHEHasLongExit1 = NotEmpty(cCHELongExit1);
|
|
bool CCHEHasLongExit2 = NotEmpty(cCHELongExit2);
|
|
|
|
//
|
|
bool CCHEHasShortExit1 = NotEmpty(cCHEShortExit1);
|
|
bool CCHEHasShortExit2 = NotEmpty(cCHEShortExit2);
|
|
|
|
//
|
|
bool PCHEHasLongExit1 = NotEmpty(pCHELongExit1);
|
|
bool PCHEHasLongExit2 = NotEmpty(pCHELongExit2);
|
|
|
|
//
|
|
bool PCHEHasShortExit1 = NotEmpty(pCHEShortExit1);
|
|
bool PCHEHasShortExit2 = NotEmpty(pCHEShortExit2);
|
|
|
|
//
|
|
bool isCCHEBullish =
|
|
//
|
|
CCHEHasLongExit1 &&
|
|
CCHEHasLongExit2
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isCCHEBearish =
|
|
//
|
|
CCHEHasShortExit1 &&
|
|
CCHEHasShortExit2
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isPCHEBullish =
|
|
//
|
|
PCHEHasLongExit1 &&
|
|
PCHEHasLongExit2
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isPCHEBearish =
|
|
//
|
|
PCHEHasShortExit1 &&
|
|
PCHEHasShortExit2
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isCHEBullish = isCCHEBullish;
|
|
bool isCHEBearish = isCCHEBearish;
|
|
bool isCHESwitchedToBullish =
|
|
//
|
|
isCCHEBullish &&
|
|
!isPCHEBullish
|
|
//
|
|
;
|
|
bool isCHESwitchedToBearish =
|
|
//
|
|
isCCHEBearish &&
|
|
!isPCHEBearish
|
|
//
|
|
;
|
|
|
|
//
|
|
// XPV ...
|
|
|
|
double cPVPeak = cMarket.pv.GetPeak(cIndex);
|
|
double cPVVale = cMarket.pv.GetVale(cIndex);
|
|
|
|
//
|
|
double pPVPeak = cMarket.pv.GetPeak(pIndex);
|
|
double pPVVale = cMarket.pv.GetVale(pIndex);
|
|
|
|
//
|
|
double cPVSup = cMarket.pv.GetSupport(cIndex);
|
|
double pPVSup = cMarket.pv.GetSupport(pIndex);
|
|
|
|
//
|
|
double cPVRes = cMarket.pv.GetResistance(cIndex);
|
|
double pPVRes = cMarket.pv.GetResistance(pIndex);
|
|
|
|
//
|
|
double cPVFib1 = cMarket.pv.GetFib1(cIndex);
|
|
double cPVFib2 = cMarket.pv.GetFib2(cIndex);
|
|
double cPVFib3 = cMarket.pv.GetFib3(cIndex);
|
|
double cPVFib4 = cMarket.pv.GetFib4(cIndex);
|
|
double cPVFib5 = cMarket.pv.GetFib5(cIndex);
|
|
|
|
//
|
|
double pPVFib1 = cMarket.pv.GetFib1(pIndex);
|
|
double pPVFib2 = cMarket.pv.GetFib2(pIndex);
|
|
double pPVFib3 = cMarket.pv.GetFib3(pIndex);
|
|
double pPVFib4 = cMarket.pv.GetFib4(pIndex);
|
|
double pPVFib5 = cMarket.pv.GetFib5(pIndex);
|
|
|
|
//
|
|
bool isNewPeak = cPVPeak != pPVPeak;
|
|
bool isNewPeakUnderLast =
|
|
//
|
|
isNewPeak &&
|
|
cPVPeak < pPVPeak
|
|
//
|
|
;
|
|
bool isNewPeakOverLast =
|
|
//
|
|
isNewPeak &&
|
|
cPVPeak > pPVPeak
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isNewVale = cPVVale != pPVVale;
|
|
bool isNewValeUnderLast =
|
|
//
|
|
isNewVale &&
|
|
cPVVale < pPVVale
|
|
//
|
|
;
|
|
bool isNewValeOverLast =
|
|
//
|
|
isNewVale &&
|
|
cPVVale > pPVVale
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isFiboIncreased =
|
|
//
|
|
cPVFib1 > pPVFib1 &&
|
|
cPVFib2 > pPVFib2 &&
|
|
cPVFib3 > pPVFib3 &&
|
|
cPVFib4 > pPVFib4 &&
|
|
cPVFib5 > pPVFib5
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isFiboDecreased =
|
|
//
|
|
cPVFib1 < pPVFib1 &&
|
|
cPVFib2 < pPVFib2 &&
|
|
cPVFib3 < pPVFib3 &&
|
|
cPVFib4 < pPVFib4 &&
|
|
cPVFib5 < pPVFib5
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isFiboSectionChanged =
|
|
//
|
|
(isFiboDecreased &&
|
|
isNewPeakUnderLast)
|
|
//
|
|
||
|
|
//
|
|
(isFiboIncreased &&
|
|
isNewValeOverLast)
|
|
//
|
|
;
|
|
|
|
//
|
|
// XFI ...
|
|
|
|
//
|
|
double cFI = fiHelper.GetMain(cIndex);
|
|
double pFI = fiHelper.GetMain(pIndex);
|
|
|
|
//
|
|
bool isCFIOverZero = cFI > 0;
|
|
bool isCFIUnderZero = cFI > 0;
|
|
|
|
//
|
|
bool isPFIOverZero = pFI > 0;
|
|
bool isPFIUnderZero = pFI > 0;
|
|
|
|
//
|
|
bool isFICrossedOverZero =
|
|
//
|
|
isCFIOverZero &&
|
|
!isPFIOverZero
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isFICrossedUnderZero =
|
|
//
|
|
isCFIUnderZero &&
|
|
!isPFIUnderZero
|
|
//
|
|
;
|
|
|
|
//
|
|
// XHK ...
|
|
|
|
//
|
|
XOHCL cSMHKBar;
|
|
cMarket.hk.SMAsOHCL(
|
|
cSMHKBar,
|
|
cIndex //
|
|
);
|
|
|
|
//
|
|
XOHCL pSMHKBar;
|
|
cMarket.hk.SMAsOHCL(
|
|
pSMHKBar,
|
|
pIndex //
|
|
);
|
|
|
|
//
|
|
bool isCSMHKBullish = cSMHKBar.IsBullish();
|
|
bool isCSMHKBearish = cSMHKBar.IsBearish();
|
|
|
|
//
|
|
bool isPSMHKBullish = pSMHKBar.IsBullish();
|
|
bool isPSMHKBearish = pSMHKBar.IsBearish();
|
|
|
|
//
|
|
bool isSMHKSwitchedToBullish =
|
|
//
|
|
isCSMHKBullish &&
|
|
isPSMHKBearish
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isSMHKSwitchedToBearish =
|
|
//
|
|
isCSMHKBearish &&
|
|
isPSMHKBullish
|
|
//
|
|
;
|
|
|
|
//
|
|
// XTD ...
|
|
|
|
//
|
|
double cTDBullish = tdHelper.GetBullish(cIndex);
|
|
double pTDBullish = tdHelper.GetBullish(pIndex);
|
|
|
|
//
|
|
double cTDBearish = tdHelper.GetBearish(cIndex);
|
|
double pTDBearish = tdHelper.GetBearish(pIndex);
|
|
|
|
//
|
|
bool isCTDBullish =
|
|
//
|
|
cTDBullish > cTDBearish
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isCTDBearish =
|
|
//
|
|
cTDBearish > cTDBullish
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isPTDBullish =
|
|
//
|
|
pTDBullish > pTDBearish
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isPTDBearish =
|
|
//
|
|
pTDBearish > pTDBullish
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isTDBullish = isCTDBullish;
|
|
bool isTDBearish = isCTDBearish;
|
|
bool isTDSwitchedToBullish =
|
|
//
|
|
isCTDBullish &&
|
|
!isPTDBullish
|
|
//
|
|
;
|
|
bool isTDSwitchedToBearsih =
|
|
//
|
|
isCTDBearish &&
|
|
!isPTDBearish
|
|
//
|
|
;
|
|
|
|
//
|
|
// XDON ...
|
|
|
|
//
|
|
XOHCL cBar = cMarket.GetBar(cIndex);
|
|
XOHCL pBar = cMarket.GetBar(pIndex);
|
|
|
|
//
|
|
double cDONUpperOpen = cMarket.don.GetUpperO(cIndex);
|
|
double cDONUpperClose = cMarket.don.GetUpperC(cIndex);
|
|
double cDONUpperHigh = cMarket.don.GetUpperH(cIndex);
|
|
double cDONUpperLow = cMarket.don.GetUpperL(cIndex);
|
|
|
|
//
|
|
double cDONLowerOpen = cMarket.don.GetLowerO(cIndex);
|
|
double cDONLowerClose = cMarket.don.GetLowerC(cIndex);
|
|
double cDONLowerHigh = cMarket.don.GetLowerH(cIndex);
|
|
double cDONLowerLow = cMarket.don.GetLowerL(cIndex);
|
|
|
|
//
|
|
double pDONUpperOpen = cMarket.don.GetUpperO(pIndex);
|
|
double pDONUpperClose = cMarket.don.GetUpperC(pIndex);
|
|
double pDONUpperHigh = cMarket.don.GetUpperH(pIndex);
|
|
double pDONUpperLow = cMarket.don.GetUpperL(pIndex);
|
|
|
|
//
|
|
double pDONLowerOpen = cMarket.don.GetLowerO(pIndex);
|
|
double pDONLowerClose = cMarket.don.GetLowerC(pIndex);
|
|
double pDONLowerHigh = cMarket.don.GetLowerH(pIndex);
|
|
double pDONLowerLow = cMarket.don.GetLowerL(pIndex);
|
|
|
|
//
|
|
bool isBarCrossedDownDONLowerHigh =
|
|
//
|
|
cBar.IsBreakDown(pDONLowerHigh)
|
|
//
|
|
;
|
|
|
|
//
|
|
bool isBarCrossedUpDONLowerHigh =
|
|
//
|
|
cBar.IsBreakUp(pDONLowerHigh)
|
|
//
|
|
;
|
|
|
|
//
|
|
result =
|
|
//
|
|
isSMHKSwitchedToBullish
|
|
// isSMHKSwitchedToBearish
|
|
// isBarCrossedUpDONLowerHigh
|
|
//
|
|
;
|
|
if (result)
|
|
{
|
|
Print("Salam");
|
|
}
|
|
|
|
//
|
|
if (result) {
|
|
r2r = 2;
|
|
sl = cDONLowerHigh;
|
|
}
|
|
|
|
//
|
|
return result;
|