sql-synergy
Version:
Synergy Wave TA
64 lines (63 loc) • 2.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ZigZag = void 0;
class ZigZag {
constructor(oPD, iPercent = 0.05) {
this.zz = [];
// this.nDays = nK ;
// this.nDDays = nD ;
// this.nMA = nMA ;
let fHigh = oPD.getHigh();
let fLow = oPD.getLow();
let fClose = oPD.getClose();
let fDate = oPD.getDate();
let n = fHigh.length;
let signal = 0;
let inflection = fClose[0];
let iWave = 0;
for (var i = 0; i < n; i++) {
if (signal == 0) {
if (fLow[i] <= (inflection * (1 - iPercent))) {
signal = -1;
iWave = i;
}
if (fHigh[i] >= (inflection * (1 + iPercent))) {
signal = 1;
iWave = i;
}
if (signal == -1) {
if (fLow[i] < inflection) {
inflection = fLow[i];
iWave = i;
}
if (fHigh[i] >= (inflection * (1 + iPercent))) {
// Trend Reversal
signal = 1;
this.zz.push(fDate[iWave]);
inflection = fHigh[i];
iWave = i;
continue;
}
}
if (signal == 1) {
if (fHigh[i] > inflection) {
inflection = fHigh[i];
iWave = i;
}
if (fLow[i] <= (inflection * (1 - iPercent))) {
// Trend Reversal
signal = 1;
this.zz.push(fDate[iWave]);
inflection = fLow[i];
iWave = i;
continue;
}
}
}
}
}
getWaves() {
return this.zz;
}
}
exports.ZigZag = ZigZag;