Hi,
Can someone convert this Esignal indicator into TradeStation EasyLanguage, unfortunately I was unsuccessfull. Thanks.
function preMain() {
setStudyTitle("DSS Bressert New");
setCursorLabelName("DSS", 0);
setCursorLabelName("Trigger", 1);
setDefaultBarFgColor(Color.brown, 0);
setDefaultBarFgColor(Color.red, 1);
addBand(20, PS_SOLID, 1, Color.black);
addBand(80, PS_SOLID, 1, Color.black);
}
var EMA_1 = 0;
var EMA1_1 = 0;
var EMA2_1 = 0;
vAA = new Array();
var EMA = 0;
var EMA1 = 0;
var EMA2 = 0;
function main(pds,slw,triggerLen,emalen) {
if (pds == null)
pds = 10;
if (slw == null)
slw = 3;
if (triggerLen == null)
triggerLen = 5;
if (emalen == null)
emalen = 9;
var nBarState = getBarState();
var vHigh = getValue("High",0,-pds);
var vLow = getValue("Low",0,-pds);
var dClose = getValue("Close");
if(vHigh == null || vLow == null || dClose == null)
return;
if (nBarState == BARSTATE_NEWBAR) {
EMA_1 = EMA;
EMA1_1 = EMA1;
EMA2_1 = EMA2;
}
var K = 2 / (emalen + 1);
var K2 = 2 / (triggerLen + 1);
var aa = 0;
var dss = 0;
var High = 0;
var Low = low();
var aHigh = 0;
var aLow = 0;
for (i = 0; i < pds; i++) {
High = Math.max(High,vHigh);
Low = Math.min(Low,vLow);
}
if((High - Low) != 0) {
EMA = K * ( (dClose - Low) / (High - Low) ) + (1 - K) * EMA_1;
} else {
EMA = EMA_1;
}
aa = EMA * 100;
if (nBarState == BARSTATE_NEWBAR) {
for(i = pds - 1; i > 0; i--) {
vAA = vAA[i - 1];
}
}
vAA[0] = aa;
for (i = 0; i < pds; i++) {
if(i == 0) {
aLow = vAA[0];
}
if (aHigh < vAA) {
aHigh = vAA;
}
if (aLow > vAA) {
aLow = vAA;
}
}
if (aHigh - aLow != 0) {
EMA1 = K * ((aa - aLow) / (aHigh - aLow) ) + (1 - K) * EMA1_1;
} else {
EMA1 = EMA1_1;
}
var dss = EMA1 * 100;
EMA2 = K2 * dss + (1 - K2) * EMA2_1;
return new Array(dss,EMA2);