@gabriel3615/ta_analysis
Version:
stock ta analysis
62 lines (61 loc) • 1.89 kB
TypeScript
interface InitState {
initialShares: number;
initialPrice: number;
currentPrice: number;
feePerTrade: number;
downPercent: number;
upPercent: number;
volatility: number;
tradingRatio: number;
maxCycles: number;
}
/**
* 模拟股票滚仓策略,计算降低成本所需的循环次数
* 该策略通过在价格下跌时买入,上涨时卖出,逐步降低持仓成本
* @param initState 初始参数设置
* @returns 滚仓策略模拟结果
*/
declare function simulateStockTrading(initState: InitState): {
initialState: {
initialShares: number;
initialPrice: number;
currentPrice: number;
totalInvestment: number;
currentMarketValue: number;
avgCost: number;
tradingPosition: number;
fixedPosition: number;
feePerTrade: number;
};
finalState: {
cycles: number;
finalShares: number;
finalAvgCost: number;
costReductionPercent: number;
totalFees: number;
cashBalance: number;
breakEvenPrice: number;
breakEvenGrowth: number;
};
tradeHistory: any[];
parameterSettings: {
downPercent: number;
upPercent: number;
tradingRatio: number;
feePerTrade: number;
};
};
/**
* 运行滚仓模拟并格式化输出结果
* @param initState 初始参数
* @param printDetails 是否打印详细交易历史
* @returns 格式化的输出结果
*/
declare function runAvgDownSimulation(initState: InitState, printDetails: boolean): string;
/**
* 比较不同参数设置对滚仓策略效果的影响
* @param initState 基础参数设置
* @returns 不同参数比较的结果报告
*/
declare function compareAvgDownParameters(initState: InitState): string;
export { runAvgDownSimulation, compareAvgDownParameters, simulateStockTrading, InitState, };