This is what I have so far, isn't working properly yet... not sure why.




var QQE_TR(vars RSIMA, vars DARFACTOR) ;

function run(){

StartDate = 2018;
BarPeriod = 60;
LookBack = 1000;

set( PLOTNOW);



int QQE_Periods = 14;
int QQE_SF = 5;
int QQE_Wilders_Period = QQE_Periods * 2 - 1;


vars Price = series( price() );

vars QQE_RSI = series( RSI( Price, QQE_Periods));
vars QQE_RSI_MA = series( EMA(QQE_RSI,QQE_SF));
vars QQE_ATR_RSI = series( abs( QQE_RSI_MA[1]-QQE_RSI_MA[0] ));
vars QQE_MA_ATR_RSI = series( EMA(QQE_ATR_RSI, QQE_Wilders_Period));
vars QQE_DAR = series( EMA(QQE_MA_ATR_RSI, QQE_Wilders_Period)*4.236 );
vars QQE_DAR_Fast = series( EMA(QQE_MA_ATR_RSI, QQE_Wilders_Period)*2.618);


var QQE_FastSignal = QQE_TR(QQE_RSI_MA,QQE_DAR_Fast) ;
var QQE_SlowSignal = QQE_TR(QQE_RSI_MA,QQE_DAR) ;



plot("QQE Fast Signal", QQE_FastSignal, NEW, BLUE );
plot("QQE Slow Signal", QQE_SlowSignal, 0, RED);

plot("QQE_RSI", QQE_RSI, NEW, BLUE );
plot("QQE_RSI MA", QQE_RSI_MA, 0, RED );

plot("QQE_ATR_RSI", QQE_ATR_RSI, NEW, BLUE );
plot("QQE_MA_ATR_RSI MA", QQE_MA_ATR_RSI, 0, RED );

plot("QQE_DAR", QQE_DAR, NEW, BLUE );
plot("QQE_DAR_Fast MA", QQE_DAR_Fast, 0, RED );
}


var QQE_TR(vars RSIMA, vars DARFACTOR)
{


vars result = series();
result[0] = result[1] = 0;

int i;

for(i=1; i<3; i++)
{

if(RSIMA[i] < result[i-1])
{
result[i] = RSIMA[i]+DARFACTOR[i];
if((RSIMA[i-1] < result[i-1]) && (result[i] > result[i-1]))
{
result[i] = result[i-1];
}
}
else
{
if(RSIMA[i] > result[i-1])
{
result[i] = RSIMA[i]-DARFACTOR[i];
if ((RSIMA[i-1] > result[i-1]) && (result[i] < result[i-1]))
{
result[i] = result[i-1];
}
}
}

}

return result[1];


}

Last edited by PriceAlgoTrader; 01/16/19 03:06.