The working version :
#property copyright "Author - Luis Damiani. Ramdass - Conversion only"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
extern int D1RSIPer=13;
extern int D2StochPer=8;
extern int D3tunnelPer=8;
extern double hot=0.4;
extern int sigsmooth=4;
extern int CountBars=300;
double sig1n[];
double sig2n[];
double sk,sk2,ss;
int cs;
int init()
{
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(0,sig1n);
SetIndexBuffer(1,sig2n);
cs = MathMax(D1RSIPer,MathMax(D2StochPer,D3tunnelPer));
ss=sigsmooth;
if (ss<2) ss=2;
sk = 2.0 / (ss + 1.0);
sk2= 2.0 / (ss*0.8+1.0);
return(0);
}
int start()
{
if(Bars<=cs) return(0);
if (CountBars>Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars+cs);
SetIndexDrawBegin(1,Bars-CountBars+cs);
int i,i2;
double rsi,maxrsi,minrsi,storsi,E3D,sig1,sig2;
for(i=CountBars; i>=0; i--)
{
maxrsi=0;
minrsi=100;
for (i2=i+D2StochPer;i2>=i; i2--)
{
rsi=iRSI(NULL,0,D1RSIPer,PRICE_CLOSE,i2);
if (rsi>maxrsi) maxrsi=rsi;
if (rsi<minrsi) minrsi=rsi;
}
if (maxrsi-minrsi!=0.0) storsi=((rsi-minrsi)/(maxrsi-minrsi)*200-100);
E3D=hot*iCCI(NULL,0,D3tunnelPer,PRICE_TYPICAL,i)+(1-hot)*storsi;
sig1n[i]=sk*E3D+(1-sk)*sig1;
sig2n[i]=sk2*sig1+(1-sk2)*sig2;
sig1=sig1n[i];
sig2=sig2n[i];
}
return(0);
}