@gabriel3615/ta_analysis
Version:
stock ta analysis
54 lines (47 loc) • 1.59 kB
text/typescript
import { Candle, VolatilityAnalysisResult } from '../../../types.js';
import { globalLogger } from '../../../util/logger.js';
import {
calculateAccumulationDistribution,
formatAccumulationDistributionAnalysis,
} from '../../../util/accumulationDistribution.js';
import type { AccumulationDistributionResult } from '../../../util/accumulationDistribution.js';
export interface IntegratedVolumeAnalysisResult {
volumeAnalysis: AccumulationDistributionResult;
formattedVolumeAnalysis: string;
}
export interface IntegratedVolatilityAnalysisResult {
volatilityAnalysis: VolatilityAnalysisResult;
formattedVolatilityAnalysis: string;
}
export interface CombinedVVAnalysisResult {
volumeAnalysis: IntegratedVolumeAnalysisResult;
volumeAnalysisReason: string;
volatilityAnalysis: IntegratedVolatilityAnalysisResult;
volatilityAnalysisReason: string;
combinedAnalysisSummary: string;
}
/**
* 执行综合量价分析,包括积累分布线及相关指标
* @param data 历史K线数据
* @param lookbackPeriod 回溯期(默认为20个交易日)
*/
export function executeVolumeAnalysis(
data: Candle[],
lookbackPeriod: number = 20
): IntegratedVolumeAnalysisResult {
try {
const volumeAnalysis = calculateAccumulationDistribution(
data,
lookbackPeriod
);
const formattedVolumeAnalysis =
formatAccumulationDistributionAnalysis(volumeAnalysis);
return {
volumeAnalysis,
formattedVolumeAnalysis,
};
} catch (error) {
globalLogger.error('执行量价分析时出错:', error);
throw error;
}
}