UNPKG

sql-synergy

Version:

Synergy Wave TA

70 lines (69 loc) 2.33 kB
"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;