UNPKG

use-on-demand

Version:
164 lines (113 loc) 3.2 kB
// K线系统、K线指标、K线切分 // 投资策略(买入过程、买入结算、卖出过程、卖出结算) // 1.此处,其实可以,将【所有操作】都整为一个列表。 // 2.策略————————确定行为————————行为,带来结果 (如此,之间界线更为,清晰 明了 了。) // 收益核算(可附加多种指标) // 输出显示 // // 转化为Excel // 风险预估? // 多组数据,同时运行?(将显示结果组合?) // 投资过程拆分展现?(便于细化分析?) // // 将来更为复杂的,可能要换用【python】了。 【数据处理】和【可视化绘制】 /* declare enum SolidSide { Buy = '买单', Sell = '卖单', } declare enum FutureSide { Long = '多仓', Short = '空仓', } */ import {FutureSide, SolidSide} from './DesignHelper'; declare global { type KLineItem = number; interface KLine_Indexes { raw: Array<KLineItem>; index: { firstK: number; lastK: number; highestK: number; lowestK: number; kLen: number; avgPerK: number; }; // K线切分 split(part: number): Array<KLine_Indexes>; // K线切分,转为【平方数法则】 splitSquare(): Array<KLine_Indexes>; print(): void; } interface CnyManager { perTimeCny: number; } namespace Trade { interface Action { actionCny: number; fVol: number; price: number; solidSide: SolidSide; } interface SummaryInAction_Type { queueVol: number; queueCny: number; leftVol: number; } interface ActionSummary { actionQueue: Array<Trade.Action>; getSummary(): SummaryInAction_Type; } interface Settle { cny_inBuy?: number; cny_inSell?: number; // 处理张数 settlePieces: number; // 遗留张数 leftPieces: number; } interface ActionQueue<S extends FutureSide> { kIndexes: KLine_Indexes; pureFullQueue: Array<Action>; getBuyQueue(): Trade.ActionSummary; getSellQueue(): Trade.ActionSummary; settleBuy(): Settle; settleSell(): Settle; settleBoth(): Settle; print(): void; } } namespace Bonus { interface SolidPart { actionTimes: number; fVol: number; cny_inSolid: number; fAvgPrice: number; } interface Bonus<S extends FutureSide> { buy: SolidPart; sell: SolidPart; getBonus(): { cnyBefore: number; cnyChange: number; cnyAfter: number; ratio: number; }; print(): string; } } namespace Excel { interface Data<S extends FutureSide> { actionQueue: Trade.ActionQueue<S>; bonus: Bonus.Bonus<S>; } interface Exporter { kLines: KLine_Indexes; long: Data<FutureSide.Long>; short: Data<FutureSide.Short>; // export(): void; } } }