Posted By: Grat
fce for close signal - 06/05/20 06:09
Hi,
I develop close system for MT4 and now I translate for Zorro. Is a free for all.
Feedback is welcome.
variables dPlusBar, dMinusBar is a sensitive for close. Bigger value mean, close early. You can also play with parameters for MACD.
how use:
and fce is:
I develop close system for MT4 and now I translate for Zorro. Is a free for all.
Feedback is welcome.
variables dPlusBar, dMinusBar is a sensitive for close. Bigger value mean, close early. You can also play with parameters for MACD.
how use:
Code
... vars Price = series(price()); ... int k=fceCloseSignal(Price); if (k == _CLOSE_LONG) exitLong(); else if (k == _CLOSE_SHORT) exitShort();
and fce is:
Code
#define _CLOSE_LONG 100 #define _CLOSE_SHORT -100 #define _CLOSE_SIG 0 // register for AssetInt,AssetFloat int fceCloseSignal(vars Price){ static var dMax=0; var dFast=9; var dMulF=38; var dSignal=12; var dPlusBar=optimize(0.9,0.5,5); var dMinurBar=optimize(0.9,0.5,5); series(MACD(Price,dFast,dMulF,dSignal)); vars aHist=series(rMACDHist); int nSig=AssetInt[_CLOSE_SIG]; var dAction=0; if (crossOver(aHist,0)) nSig=1; if (crossUnder(aHist,0)) nSig=-1; AssetInt[_CLOSE_SIG]=nSig; var dMax=AssetFloat[_CLOSE_SIG]; if (nSig == 1){ if(rMACDHist > dMax) dMax=rMACDHist*0.99; AssetFloat[_CLOSE_SIG]=dMax; var dDiffPR=(dMax - rMACDHist)/100; var dMaxPR=(dMax )/100; dAction = (dMaxPR/ dDiffPR); if (dAction > 0 && dAction < dPlusBar){ return _CLOSE_LONG; } } if (nSig == -1){ if(rMACDHist < dMax) dMax=rMACDHist*0.99; AssetFloat[_CLOSE_SIG]=dMax; var dDiffPR=(dMax - rMACDHist)/100; var dMaxPR=(dMax )/100; dAction = (dMaxPR/ dDiffPR); if (dAction > 0 && dAction < dMinurBar){ return _CLOSE_SHORT; } } return -1; }