@gabriel3615/ta_analysis
Version:
stock ta analysis
142 lines (141 loc) • 4.9 kB
TypeScript
import { Candle } from '../../../types.js';
/**
* 价格形态类型枚举
*/
declare enum PatternType {
HeadAndShoulders = "head_and_shoulders",
InverseHeadAndShoulders = "inverse_head_and_shoulders",
DoubleTop = "double_top",
DoubleBottom = "double_bottom",
TripleTop = "triple_top",
TripleBottom = "triple_bottom",
AscendingTriangle = "ascending_triangle",
DescendingTriangle = "descending_triangle",
SymmetricalTriangle = "symmetrical_triangle",
RisingWedge = "rising_wedge",
FallingWedge = "falling_wedge",
Rectangle = "rectangle",
Flag = "flag",
Pennant = "pennant",
CupAndHandle = "cup_and_handle",
RoundingBottom = "rounding_bottom",
RoundingTop = "rounding_top",
BuyingClimax = "buying_climax",
SellingClimax = "selling_climax"
}
/**
* 形态识别状态枚举
*/
declare enum PatternStatus {
Forming = "forming",// 正在形成
Completed = "completed",// 已完成但未确认突破
Confirmed = "confirmed",// 已确认突破
Failed = "failed"
}
/**
* 形态趋势方向枚举
*/
declare enum PatternDirection {
Bullish = "bullish",// 看多形态
Bearish = "bearish",// 看空形态
Neutral = "neutral"
}
/**
* 峰谷点类型
*/
interface PeakValley {
index: number;
price: number;
date: Date;
type: 'peak' | 'valley';
}
/**
* 形态组成部分
*/
interface PatternComponent {
startIndex: number;
endIndex: number;
keyPoints: PeakValley[];
patternHeight: number;
breakoutLevel: number;
volumePattern: string;
}
/**
* 价格形态分析结果
*/
interface PatternAnalysisResult {
patternType: PatternType;
status: PatternStatus;
direction: PatternDirection;
reliability: number;
significance: number;
component: PatternComponent;
priceTarget?: number;
stopLoss?: number;
breakoutExpected?: boolean;
breakoutDirection?: PatternDirection;
probableBreakoutZone?: [number, number];
description: string;
tradingImplication: string;
keyDates: Date[];
keyPrices: number[];
}
/**
* 多时间周期形态分析结果
*/
interface AnalyzeMultiTimeframePatterns {
timeframe: 'weekly' | 'daily' | '1hour';
patterns: PatternAnalysisResult[];
dominantPattern?: PatternAnalysisResult;
patternSignal: PatternDirection;
}
/**
* 不同时间周期适合的形态说明:
*
* 1. 长期形态(更适合周线)
* - 头肩顶/底(Head and Shoulders):需要较长时间形成,在周线上更可靠
* - 双顶/底、三重顶/底:大型反转形态,在周线上信号更强
* - 杯柄形态(Cup and Handle):形成周期长,通常需要数月时间
* - 圆底/顶:大型反转形态,需要较长时间形成
*
* 2. 中长期形态(适合周线和日线)
* - 楔形(Wedges):可以在多个时间周期形成,但中长期更可靠
* - 三角形(Triangles):在各时间周期都有效,但形成时间较长
*
* 3. 中短期形态(适合日线和小时线)
* - 旗形和三角旗(Flags and Pennants):短期整理形态,在日线和小时线上常见
* - 矩形(Rectangles):短中期整理形态
*
* 4. 短期形态(主要适合小时线)
* - 买入/卖出高潮:短期市场情绪的爆发,在小时线上更容易识别
* - 小型楔形和三角形:短期整理形态
*/
/**
* 完整的价格形态分析结果,包含所有时间周期
*/
interface ComprehensivePatternAnalysis {
timeframeAnalyses: AnalyzeMultiTimeframePatterns[];
combinedSignal: PatternDirection;
signalStrength: number;
description: string;
}
/**
* 主函数:根据时间周期分析适合的形态,增强最近形态的重要性
*/
declare function analyzeAllPatterns(rawData: Candle[], timeframe: 'weekly' | 'daily' | '1hour'): AnalyzeMultiTimeframePatterns;
/**
* 综合多时间周期的形态分析,更注重最近形态
* @param timeframeAnalyses 各时间周期的形态分析结果
*/
declare function combinePatternAnalyses(timeframeAnalyses: AnalyzeMultiTimeframePatterns[]): ComprehensivePatternAnalysis;
/**
* 导出的API函数:多时间周期的价格形态分析
*/
declare function analyzeMultiTimeframePatterns(weeklyData: Candle[], dailyData: Candle[], hourlyData: Candle[]): ComprehensivePatternAnalysis;
/**
* 格式化并打印形态分析结果
* @param analysisResult 综合形态分析结果
* @param symbol 股票代码
*/
declare function formatAndPrintPatternAnalysis(analysisResult: ComprehensivePatternAnalysis, symbol?: string): void;
export { PatternType, PatternStatus, PatternDirection, PeakValley, PatternComponent, PatternAnalysisResult, AnalyzeMultiTimeframePatterns, ComprehensivePatternAnalysis, analyzeAllPatterns, combinePatternAnalyses, analyzeMultiTimeframePatterns, formatAndPrintPatternAnalysis, };