1. 策略概述
1.1 基本概念
分时盘内做T是指在当日交易时间内,通过分析分时图的技术指标,进行低买高卖的短线交易策略。
核心特点:
- 时间周期:当日分时级别(1分钟、5分钟)
- 交易频率:高频短线操作
- 持仓时间:几分钟到几小时
- 盈利目标:获取短期价差收益
1.2 做T原理
做T基本原理:
1. 低位买入 → 高位卖出(正T)
2. 高位卖出 → 低位买回(反T)
3. 通过价差获取收益,降低持仓成本
正T操作:
- 在分时低点买入,高点卖出
- 适合震荡上涨行情
- 风险相对较低
反T操作:
- 在分时高点卖出,低点买回
- 适合震荡下跌行情
- 需要较高技术分析能力
1.3 适用场景
- 震荡行情:股价在一定区间内波动
- 活跃股票:成交量较大,波动性较强
- 技术面良好:有明确的技术支撑和阻力位
- 市场情绪稳定:避免极端行情
2. 核心策略
2.1 分时均价策略
2.1.1 策略原理
根据当前价格与分时均价的偏离程度判断买卖时机:
- 价格偏离度 = (当前价格 - 分时均价) / 分时均价
- 离散系数 = 标准差 / 均价 (衡量价格波动程度)
- 综合判断:结合偏离度和离散系数确定买卖强度
2.1.2 离散系数计算
pub struct PriceDeviationStrategy {
pub buy_threshold: f64, // 买入阈值,如-0.02 (低于均价2%)
pub sell_threshold: f64, // 卖出阈值,如+0.02 (高于均价2%)
pub strong_buy: f64, // 强烈买入,如-0.05 (低于均价5%)
pub strong_sell: f64, // 强烈卖出,如+0.05 (高于均价5%)
pub dispersion_threshold: f64, // 离散系数阈值,如0.03 (3%)
}
impl PriceDeviationStrategy {
// 计算价格偏离度
pub fn calculate_deviation(&self, current_price: f64, avg_price: f64) -> f64 {
(current_price - avg_price) / avg_price
}
// 计算离散系数
pub fn calculate_dispersion(&self, prices: &[f64], avg_price: f64) -> f64 {
if prices.is_empty() {
return 0.0;
}
let variance = prices.iter()
.map(|&price| (price - avg_price).powi(2))
.sum::<f64>() / prices.len() as f64;
let std_dev = variance.sqrt();
std_dev / avg_price
}
// 综合判断交易信号
pub fn get_signal(&self, current_price: f64, avg_price: f64, price_history: &[f64]) -> TradingSignal {
let deviation = self.calculate_deviation(current_price, avg_price);
let dispersion = self.calculate_dispersion(price_history, avg_price);
// 考虑离散系数的动态调整
let adjusted_buy_threshold = self.buy_threshold * (1.0 + dispersion);
let adjusted_sell_threshold = self.sell_threshold * (1.0 + dispersion);
let adjusted_strong_buy = self.strong_buy * (1.0 + dispersion);
let adjusted_strong_sell = self.strong_sell * (1.0 + dispersion);
if deviation <= adjusted_strong_buy {
TradingSignal::StrongBuy
} else if deviation <= adjusted_buy_threshold {
TradingSignal::Buy
} else if deviation >= adjusted_strong_sell {
TradingSignal::StrongSell
} else if deviation >= adjusted_sell_threshold {
TradingSignal::Sell
} else {
TradingSignal::Hold
}
}
// 获取偏离强度
pub fn get_deviation_strength(&self, deviation: f64, dispersion: f64) -> DeviationStrength {
let abs_deviation = deviation.abs();
let dispersion_factor = 1.0 + dispersion;
if abs_deviation >= 0.05 * dispersion_factor {
DeviationStrength::VeryStrong
} else if abs_deviation >= 0.03 * dispersion_factor {
DeviationStrength::Strong
} else if abs_deviation >= 0.02 * dispersion_factor {
DeviationStrength::Moderate
} else if abs_deviation >= 0.01 * dispersion_factor {
DeviationStrength::Weak
} else {
DeviationStrength::VeryWeak
}
}
}
#[derive(Debug, Clone)]
pub enum DeviationStrength {
VeryWeak, // 偏离很弱
Weak, // 偏离较弱
Moderate, // 偏离中等
Strong, // 偏离较强
VeryStrong, // 偏离很强
}
2.1.3 实际应用示例
// 示例:均价5.5,当前价5.8的情况
let avg_price = 5.5;
let current_price = 5.8;
let price_history = vec![5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8];
let strategy = PriceDeviationStrategy {
buy_threshold: -0.02, // -2%
sell_threshold: 0.02, // +2%
strong_buy: -0.05, // -5%
strong_sell: 0.05, // +5%
dispersion_threshold: 0.03, // 3%
};
// 计算偏离度
let deviation = strategy.calculate_deviation(current_price, avg_price);
// deviation = (5.8 - 5.5) / 5.5 = 0.0545 (5.45%)
// 计算离散系数
let dispersion = strategy.calculate_dispersion(&price_history, avg_price);
// dispersion = 标准差 / 均价
// 获取交易信号
let signal = strategy.get_signal(current_price, avg_price, &price_history);
// 由于偏离度5.45% > 5%,会触发StrongSell信号
// 获取偏离强度
let strength = strategy.get_deviation_strength(deviation, dispersion);
// 根据离散系数调整后的强度判断
2.1.4 动态调整策略
- 离散系数调整:根据价格波动性动态调整阈值
- 市场情绪:根据大盘走势调整阈值
- 个股特性:根据股票波动性调整参数
- 时间因素:开盘、收盘时段调整策略
2.2 量价背离策略
2.2.1 背离识别
量价背离类型:
- 正背离:价格上涨,成交量萎缩(卖出信号)
- 负背离:价格下跌,成交量放大(买入信号)
2.2.2 判断标准
pub struct VolumePriceDivergence {
pub price_change: f64, // 价格变化幅度
pub volume_change: f64, // 成交量变化幅度
pub time_window: usize, // 时间窗口(分钟)
}
impl VolumePriceDivergence {
pub fn detect_divergence(&self, price_data: &[f64], volume_data: &[f64]) -> Option<DivergenceType> {
let price_trend = self.calculate_trend(price_data);
let volume_trend = self.calculate_trend(volume_data);
// 正背离:价格上涨但成交量下降
if price_trend > 0.0 && volume_trend < 0.0 {
Some(DivergenceType::Positive)
}
// 负背离:价格下跌但成交量上升
else if price_trend < 0.0 && volume_trend > 0.0 {
Some(DivergenceType::Negative)
}
else {
None
}
}
}
2.2.3 操作建议
- 正背离:考虑减仓或卖出
- 负背离:考虑加仓或买入
- 结合其他指标:与MACD、均线等指标结合判断
2.3 分时MACD背离策略
2.3.1 MACD参数设置
pub struct IntradayMACD {
pub fast_period: usize, // 快线周期,如12
pub slow_period: usize, // 慢线周期,如26
pub signal_period: usize, // 信号线周期,如9
pub timeframe: usize, // 时间周期,如5分钟
}
2.3.2 背离判断
impl IntradayMACD {
pub fn detect_divergence(&self, price_data: &[f64], macd_data: &[f64]) -> Option<MACDDivergence> {
// 寻找价格极值点
let price_peaks = self.find_peaks(price_data);
let price_troughs = self.find_troughs(price_data);
// 寻找MACD极值点
let macd_peaks = self.find_peaks(macd_data);
let macd_troughs = self.find_troughs(macd_data);
// 检查底背离
if let Some(divergence) = self.check_bullish_divergence(&price_troughs, &macd_troughs) {
return Some(divergence);
}
// 检查顶背离
if let Some(divergence) = self.check_bearish_divergence(&price_peaks, &macd_peaks) {
return Some(divergence);
}
None
}
}
2.3.3 操作信号
- 底背离:MACD指标不创新低,价格创新低(买入信号)
- 顶背离:MACD指标不创新高,价格创新高(卖出信号)
3. 技术指标
3.1 分时均价线
3.1.1 计算方法
分时均价 = 累计成交金额 / 累计成交量
3.1.2 技术意义
- 支撑阻力:均价线往往成为重要支撑或阻力位
- 趋势判断:价格与均价线的关系反映短期趋势
- 买卖参考:偏离均价线过远时考虑反向操作
3.1.3 实战应用
pub struct IntradayAverage {
pub current_price: f64,
pub avg_price: f64,
pub deviation: f64, // 偏离度
pub trend: TrendDirection, // 趋势方向
}
impl IntradayAverage {
pub fn calculate_deviation(&self) -> f64 {
(self.current_price - self.avg_price) / self.avg_price
}
pub fn get_trading_signal(&self) -> TradingSignal {
let deviation = self.calculate_deviation();
if deviation > 0.03 { // 高于均价3%
TradingSignal::Sell
} else if deviation < -0.03 { // 低于均价3%
TradingSignal::Buy
} else {
TradingSignal::Hold
}
}
}
3.2 分时成交量
3.2.1 成交量分析
- 放量上涨:成交量放大,价格上涨(强势信号)
- 缩量上涨:成交量萎缩,价格上涨(谨慎信号)
- 放量下跌:成交量放大,价格下跌(弱势信号)
- 缩量下跌:成交量萎缩,价格下跌(观望信号)
3.2.2 量能指标
pub struct VolumeAnalysis {
pub current_volume: f64,
pub avg_volume: f64,
pub volume_ratio: f64, // 量比
pub volume_trend: TrendDirection,
}
impl VolumeAnalysis {
pub fn calculate_volume_ratio(&self) -> f64 {
self.current_volume / self.avg_volume
}
pub fn get_volume_signal(&self) -> VolumeSignal {
let ratio = self.calculate_volume_ratio();
if ratio > 2.0 {
VolumeSignal::HeavyVolume
} else if ratio > 1.5 {
VolumeSignal::ActiveVolume
} else if ratio < 0.5 {
VolumeSignal::LightVolume
} else {
VolumeSignal::NormalVolume
}
}
}
3.3 分时MACD
3.3.1 参数优化
- 快线周期:8-12(分时级别)
- 慢线周期:21-26(分时级别)
- 信号线周期:6-9(分时级别)
3.3.2 信号识别
pub struct IntradayMACDSignal {
pub dif: f64,
pub dea: f64,
pub macd: f64,
pub golden_cross: bool, // 金叉
pub death_cross: bool, // 死叉
}
impl IntradayMACDSignal {
pub fn detect_cross(&self, prev_dif: f64, prev_dea: f64) -> CrossSignal {
// 金叉:DIF上穿DEA
if self.dif > self.dea && prev_dif <= prev_dea {
CrossSignal::GoldenCross
}
// 死叉:DIF下穿DEA
else if self.dif < self.dea && prev_dif >= prev_dea {
CrossSignal::DeathCross
}
else {
CrossSignal::NoCross
}
}
}
4. 操作策略
4.1 买入时机
4.1.1 技术条件
- 价格条件:当前价格低于分时均价2%以上
- 量能条件:成交量放大或维持活跃
- 指标条件:MACD出现金叉或底背离
- 支撑条件:价格触及重要支撑位
4.1.2 买入策略
pub struct BuyStrategy {
pub price_threshold: f64, // 价格阈值
pub volume_threshold: f64, // 量能阈值
pub macd_signal: bool, // MACD信号
pub support_level: f64, // 支撑位
}
impl BuyStrategy {
pub fn should_buy(&self, market_data: &MarketData) -> bool {
let price_ok = market_data.current_price <= self.price_threshold;
let volume_ok = market_data.volume_ratio >= self.volume_threshold;
let macd_ok = self.macd_signal;
let support_ok = market_data.current_price >= self.support_level;
price_ok && volume_ok && macd_ok && support_ok
}
}
4.2 卖出时机
4.2.1 技术条件
- 价格条件:当前价格高于分时均价2%以上
- 量能条件:成交量萎缩或出现量价背离
- 指标条件:MACD出现死叉或顶背离
- 阻力条件:价格触及重要阻力位
4.2.2 卖出策略
pub struct SellStrategy {
pub price_threshold: f64, // 价格阈值
pub volume_threshold: f64, // 量能阈值
pub macd_signal: bool, // MACD信号
pub resistance_level: f64, // 阻力位
}
impl SellStrategy {
pub fn should_sell(&self, market_data: &MarketData) -> bool {
let price_ok = market_data.current_price >= self.price_threshold;
let volume_ok = market_data.volume_ratio <= self.volume_threshold;
let macd_ok = self.macd_signal;
let resistance_ok = market_data.current_price <= self.resistance_level;
price_ok && volume_ok && macd_ok && resistance_ok
}
}
4.3 风险控制
4.3.1 止损设置
- 固定止损:买入价下方1-2%
- 技术止损:跌破重要支撑位
- 时间止损:持仓超过2小时无盈利
4.3.2 仓位管理
- 单次仓位:不超过总仓位的20%
- 分批操作:避免一次性重仓
- 动态调整:根据市场情况调整仓位
5. 实战技巧
5.1 盘口分析
5.1.1 买卖盘分析
- 买盘强度:大单买入比例
- 卖盘压力:大单卖出比例
- 盘口变化:买卖盘力量对比
5.1.2 挂单分析
pub struct OrderBookAnalysis {
pub bid_volume: f64, // 买盘量
pub ask_volume: f64, // 卖盘量
pub bid_ask_ratio: f64, // 买卖盘比例
pub large_orders: f64, // 大单比例
}
impl OrderBookAnalysis {
pub fn analyze_market_sentiment(&self) -> MarketSentiment {
if self.bid_ask_ratio > 1.5 {
MarketSentiment::Bullish
} else if self.bid_ask_ratio < 0.7 {
MarketSentiment::Bearish
} else {
MarketSentiment::Neutral
}
}
}
5.2 情绪判断
5.2.1 市场情绪指标
- 恐慌指数:VIX等波动率指标
- 资金流向:主力资金净流入/流出
- 板块轮动:热点板块变化
5.2.2 个股情绪
- 消息面:重大利好/利空消息
- 技术面:突破/跌破重要位置
- 资金面:主力资金动向
5.3 时机把握
5.3.1 最佳交易时间
- 开盘后30分钟:市场情绪稳定后
- 午盘前30分钟:上午交易活跃期
- 收盘前30分钟:尾盘交易机会
5.3.2 避免交易时间
- 开盘前5分钟:价格波动剧烈
- 午休时间:流动性不足
- 收盘前5分钟:价格操纵风险
6. 系统实现
6.1 数据结构
6.1.1 分时数据结构
pub struct IntradayData {
pub timestamp: String, // 时间戳
pub price: f64, // 当前价格
pub volume: f64, // 成交量
pub amount: f64, // 成交额
pub avg_price: f64, // 分时均价
pub macd: MACDData, // MACD数据
pub order_book: OrderBook, // 盘口数据
}
6.1.2 交易信号结构
pub struct TradingSignal {
pub signal_type: SignalType,
pub confidence: f64, // 信号强度
pub target_price: f64, // 目标价格
pub stop_loss: f64, // 止损价格
pub position_size: f64, // 建议仓位
pub reason: String, // 信号原因
}
6.2 算法设计
6.2.1 信号生成算法
pub struct IntradayTradingSystem {
pub price_strategy: PriceRatioStrategy,
pub volume_strategy: VolumePriceDivergence,
pub macd_strategy: IntradayMACD,
}
impl IntradayTradingSystem {
pub fn generate_signal(&self, data: &IntradayData) -> Option<TradingSignal> {
let mut signals = Vec::new();
// 价格信号
if let Some(signal) = self.price_strategy.get_signal(data.price, data.avg_price) {
signals.push(signal);
}
// 量价背离信号
if let Some(signal) = self.volume_strategy.detect_divergence(&[data.price], &[data.volume]) {
signals.push(signal);
}
// MACD信号
if let Some(signal) = self.macd_strategy.detect_divergence(&[data.price], &[data.macd.dif]) {
signals.push(signal);
}
// 综合判断
self.combine_signals(&signals)
}
}
6.3 实时监控
6.3.1 数据更新频率
- 价格数据:每秒更新
- 成交量数据:每分钟更新
- 技术指标:每5分钟计算
6.3.2 监控指标
pub struct MonitoringMetrics {
pub price_deviation: f64, // 价格偏离度
pub volume_ratio: f64, // 量比
pub macd_signal: bool, // MACD信号
pub market_sentiment: MarketSentiment,
pub risk_level: RiskLevel,
}
7. 注意事项
7.1 风险提示
- 高频交易风险:频繁操作增加交易成本
- 技术分析局限:技术指标可能失效
- 市场情绪影响:极端行情下策略失效
- 资金管理:严格控制仓位和止损
7.2 适用条件
- 市场环境:震荡行情,避免单边行情
- 个股选择:选择活跃度高、流动性好的股票
- 技术能力:需要较强的技术分析能力
- 心理素质:能够承受短期波动
7.3 优化建议
- 参数调优:根据个股特性调整参数
- 策略组合:结合多种策略提高成功率
- 风险控制:严格执行止损和仓位管理
- 持续学习:不断总结经验,优化策略
7.4 实战提醒
⚠️ 重要提醒:
- 分时做T需要较强的技术分析能力
- 严格控制仓位,避免重仓操作
- 设置合理的止损位,控制风险
- 关注市场情绪,避免极端行情
- 持续学习,不断优化策略
8. 策略流程图
8.1 分时做T决策流程
flowchart TD
A[开始监控] --> B[获取分时数据]
B --> C[计算技术指标]
C --> D[价格与均价比较]
D --> E{价格偏离度}
E -->|>2%| F[考虑卖出]
E -->|<-2%| G[考虑买入]
E -->|±2%内| H[观望]
F --> I[检查量价背离]
G --> I
H --> I
I --> J{量价关系}
J -->|正背离| K[卖出信号]
J -->|负背离| L[买入信号]
J -->|正常| M[检查MACD]
M --> N{MACD信号}
N -->|金叉/底背离| O[买入确认]
N -->|死叉/顶背离| P[卖出确认]
N -->|无信号| Q[继续观望]
O --> R[执行买入]
P --> S[执行卖出]
Q --> T[等待下次信号]
R --> U[设置止损]
S --> U
U --> V[监控持仓]
V --> W{达到目标?}
W -->|是| X[平仓获利]
W -->|否| Y{触发止损?}
Y -->|是| Z[止损出局]
Y -->|否| V
X --> AA[记录交易]
Z --> AA
T --> B
AA --> B
8.2 风险控制流程
flowchart TD
A[开仓] --> B[设置止损位]
B --> C[监控价格变化]
C --> D{价格变化}
D -->|有利| E[调整止损位]
D -->|不利| F{触及止损?}
F -->|是| G[立即止损]
F -->|否| H[继续监控]
E --> I{达到目标位?}
I -->|是| J[获利了结]
I -->|否| C
H --> J
G --> K[记录损失]
J --> L[记录盈利]
K --> M[分析总结]
L --> M
M --> N[优化策略]
N --> A
8.3 最佳交易时间
gantt
title 分时做T最佳时间窗口
dateFormat HH:mm
axisFormat %H:%M
section 交易时间
开盘准备 :09:25, 09:30
最佳买入 :09:30, 10:00
观望期 :10:00, 10:30
午盘前机会 :10:30, 11:30
午休 :11:30, 13:00
下午机会 :13:00, 14:30
尾盘机会 :14:30, 15:00
收盘准备 :15:00, 15:05
9. 快速参考表
| 指标类型 | 买入信号 | 卖出信号 | 权重 | 离散系数调整 |
|---|---|---|---|---|
| 价格偏离 | 低于均价2%+ | 高于均价2%+ | 30% | 根据波动性动态调整阈值 |
| 量价关系 | 负背离 | 正背离 | 25% | 结合成交量离散度 |
| MACD | 金叉/底背离 | 死叉/顶背离 | 25% | 考虑指标波动性 |
| 盘口分析 | 买盘强势 | 卖盘强势 | 20% | 结合挂单离散度 |
9.1 离散系数判断标准
| 离散系数范围 | 波动程度 | 阈值调整 | 操作建议 |
|---|---|---|---|
| < 1% | 低波动 | 标准阈值 | 正常操作 |
| 1-3% | 中等波动 | 阈值×1.2 | 谨慎操作 |
| 3-5% | 高波动 | 阈值×1.5 | 减少仓位 |
| > 5% | 极高波动 | 阈值×2.0 | 暂停操作 |
10. 关键判断标准
10.1 买入条件(需同时满足)
- ✅ 价格偏离:当前价格低于分时均价2%以上
- ✅ 离散系数:价格离散系数在合理范围内(<5%)
- ✅ 成交量:成交量放大或维持活跃
- ✅ MACD信号:出现金叉或底背离
- ✅ 支撑位:价格触及重要支撑位
- ✅ 盘口:买盘力量强于卖盘
10.2 卖出条件(满足任一即可)
- ⚠️ 价格偏离:当前价格高于分时均价2%以上
- ⚠️ 离散系数:价格离散系数过高(>5%)
- ⚠️ 量价背离:出现量价正背离
- ⚠️ MACD信号:出现死叉或顶背离
- ⚠️ 阻力位:价格触及重要阻力位
- ⚠️ 盘口压力:卖盘压力明显增大
10.3 离散系数应用示例
示例1:均价5.5,当前价5.8
- 偏离度:(5.8-5.5)/5.5 = 5.45%
- 如果离散系数<3%:触发强烈卖出信号
- 如果离散系数3-5%:触发卖出信号
- 如果离散系数>5%:暂停操作
示例2:均价5.5,当前价5.3
- 偏离度:(5.3-5.5)/5.5 = -3.64%
- 如果离散系数<3%:触发买入信号
- 如果离散系数3-5%:触发强烈买入信号
- 如果离散系数>5%:谨慎操作
10.4 实战提醒
- 🎯 严格止损:单笔损失不超过2%
- 🎯 仓位控制:单次不超过总仓位20%
- 🎯 时间管理:持仓不超过2小时
- 🎯 离散系数监控:实时监控价格波动性
- 🎯 动态调整:根据离散系数调整操作策略
- 🎯 情绪控制:避免频繁操作
- 🎯 持续学习:记录每笔交易得失