sql-synergy
Version:
Synergy Wave TA
70 lines (69 loc) • 2.33 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Step3 = void 0;
const Analyzer_1 = require("./Analyzer");
const Technicals_1 = require("./Technicals");
const SYGOPB_1 = require("./SYGOPB");
class Step3 extends Analyzer_1.Analyzer {
// nDays: number = 0 ;
constructor(oPC, nCHDays = 10, nCLDays = 10) {
super(oPC);
this.fCH = [];
this.fCL = [];
this.nCHDays = 10;
this.nCLDays = 10;
this.nCHDays = nCHDays;
this.nCLDays = nCLDays;
// this.nDays = Math.max(nCHDays, nCLDays) ;
this.calculateSignals();
}
// fAction = Array() ;
calculateSignals() {
this.fCH = Technicals_1.Technicals.MOV(this.oPC.fH, this.nCHDays, 'S');
this.fCL = Technicals_1.Technicals.MOV(this.oPC.fL, this.nCLDays, 'S');
let n = this.oPC.fC.length;
let iDir = 0;
for (var i = Math.max(this.nCHDays, this.nCLDays); i < n; i++) {
if (iDir != 1 && (this.oPC.fC[i] > this.fCH[i]) && this.oPC.isWhiteAndNonReversal(i)) {
iDir = 1;
this.fAction[i] = 1;
// console.log("CH") ;
continue;
}
if (iDir != -1 && (this.oPC.fC[i] < this.fCL[i]) && this.oPC.isBlackAndNonReversal(i)) {
iDir = -1;
this.fAction[i] = -1;
// console.log("CL") ;
continue;
}
// this.fAction[i] = 0 ;
}
}
// getFirstIndex ( ):number
// {
// return this.nCHDays ;
// }
getCL(iDay) {
return this.fCL[iDay];
}
getCH(iDay) {
return this.fCH[iDay];
}
getBuyRisk() {
var iDay = this.oPC.getLastDay();
var fCL = this.fCL[iDay];
var fBE = this.oPC.fC[iDay] * 1.0118;
var fRisk = (fBE - SYGOPB_1.SYGOPB.Dn(SYGOPB_1.SYGOPB.SGX, fCL));
var fRiskPercent = fRisk * 100.0 / fBE;
return fRiskPercent;
}
getSellRisk() {
var iDay = this.oPC.getLastDay();
var fCH = this.fCH[iDay];
var fBE = this.oPC.fC[iDay] * 0.9882;
var fRisk = SYGOPB_1.SYGOPB.Up(SYGOPB_1.SYGOPB.SGX, fCH) - fBE;
var fRiskPercent = fRisk * 100.0 / fBE;
return fRiskPercent;
}
}
exports.Step3 = Step3;