判断市场风向指标组合策略

核心指标组合 1. ATR(平均真实波幅) 定义:衡量市场波动性的指标,计算一定周期内的平均真实波幅。 计算方法:TR(True Range)是以下三者的最大值: 当日最高价 - 当日最低价 |当日最高价 - 昨日收盘价| |当日最低价 - 昨日收盘价| ATR对TR取指数移动平均(EMA)。 作用:衡量市场波动率,ATR值越大说明趋势越强,ATR值小且稳定说明处于震荡 用法:当ATR持续处于低位(如低于近期均值的30%),可判断为震荡市;当ATR快速放大,可能趋势启动 2. 布林带(Bollinger Bands) 作用:识别价格运行区间和突破信号 震荡市特征:价格在布林带上下轨之间来回震荡,布林带收窄 趋势市特征:价格沿布林带上轨或下轨运行,布林带开口扩张 用法: 震荡市:在布林带上轨卖出,下轨买入 趋势市:价格突破布林带后顺势跟进 布林带收窄+价格突破:趋势启动信号 布林带开口+价格沿上轨/下轨运行:趋势延续 布林带收窄+价格在通道内震荡:高抛低吸 3. ADX(平均方向指数) 定义:衡量趋势强度的指标,数值范围0-100; 不判断方向,指衡量强弱。 作用:量化趋势强度 用法: ADX < 20:市场处于震荡或无趋势状态,适合高抛低吸策略 ADX > 25:趋势确立,市场进入单边行情 ADX > 40:强势趋势,可能接近趋势尾声 ADX > 50:极端趋势,需警惕反转风险 4. RSI(相对强弱指标) 定义:通过比较一定周期内上涨幅度和下跌幅度的相对强度来反映市场超买超卖状态,反应多空的动能。 计算方法: $$ RSI = 100 - \frac{100}{1 + RS} $$ 其中,$RS$ 是平均上涨点数与平均下跌点数的比值。 作用:识别超买超卖区域 震荡市用法:在RSI 30-70区间内高抛低吸;突破70或跌破30可能预示趋势转换 实战组合策略 震荡市识别条件: ATR处于近期低位 ADX<20 布林带收窄,价格在上下轨间震荡 RSI在30-70区间运行 趋势市识别条件: ...

November 20, 2025 · 1 min · lexxu

ATR波动率突破策略:自适应止损的数学原理

ATR指标原理 真实波幅(True Range) 传统波动率计算(最高价-最低价)忽略了跳空缺口。ATR通过 真实波幅(TR) 解决这个问题: $$ TR_t = \max \begin{cases} H_t - L_t \ |H_t - C_{t-1}| \ |L_t - C_{t-1}| \end{cases} $$ 其中: $H_t$: 当前最高价 $L_t$: 当前最低价 $C_{t-1}$: 前一周期收盘价 物理意义: TR捕捉了三种波动来源: 日内波动 ($H_t - L_t$) 向上跳空 ($H_t - C_{t-1}$) 向下跳空 ($L_t - C_{t-1}$) 平均真实波幅(ATR) 对TR取指数移动平均(EMA): $$ ATR_t = \frac{(N-1) \times ATR_{t-1} + TR_t}{N} $$ 交互演示:ATR 参数的影响 为了更直观地理解 ATR,我制作了一个交互式工具。你可以拖动下面的滑块,改变周期 $N$,观察 ATR 曲线(下方蓝色区域)和基于 ATR 的通道(上方虚线)是如何变化的。 ATR 动态演示 Interactive Demo ATR 周期 (N): 14 💡拖动滑块观察:周期越大,ATR曲线越平滑,对价格波动的反应越迟钝(滞后性)。 ...

November 16, 2025 · 3 min · LexHsu

策略解析:BollChannelStrategy (布林带通道突破)

源码文件:vnpy_ctastrategy.strategies.boll_channel_strategy 1. 策略概述 BollChannelStrategy 是一个基于 布林带 (Bollinger Bands) 的通道突破策略。 它不仅仅依赖价格突破布林带上下轨,还引入了 CCI (Commodity Channel Index) 作为趋势过滤器,并使用 ATR (Average True Range) 来计算动态的移动止损位。 基类:CtaTemplate 周期:15分钟 K 线 (通过 BarGenerator 合成) 核心指标:Bollinger Bands, CCI, ATR 风控机制:ATR 倍数移动止损 2. 核心参数与变量 参数名 默认值 含义 boll_window 18 布林带均线周期 boll_dev 3.4 布林带标准差倍数(较宽,意味着只抓大趋势) cci_window 10 CCI 计算周期 atr_window 30 ATR 计算周期 sl_multiplier 5.2 止损距离的 ATR 倍数(非常宽的止损) 3. 策略逻辑详解 3.1 K 线合成 策略在 on_init 中初始化了一个 15 分钟的 K 线生成器: 1 self.bg = BarGenerator(self.on_bar, 15, self.on_15min_bar) 这意味着 on_tick 更新 1 分钟 bar,1 分钟 bar 累积满 15 个后触发 on_15min_bar,核心逻辑都在 on_15min_bar 中执行。 ...

May 4, 2025 · 1 min

策略解析:AtrRsiStrategy (ATR波动率结合RSI)

源码文件:vnpy_ctastrategy.strategies.atr_rsi_strategy 1. 策略概述 AtrRsiStrategy 是一个结合了 波动率 (ATR) 和 动量 (RSI) 的趋势突破策略。 它的核心思想是:只有在市场波动率足够大(ATR 处于高位)时,才去交易 RSI 的突破信号。这是一种典型的“过滤器”思想,旨在减少 RSI 在低波动震荡市中的假突破磨损。 基类:CtaTemplate 核心指标:ATR (Average True Range), RSI (Relative Strength Index) 风控机制:百分比移动止损 (Trailing Stop) 2. 核心参数与变量 参数名 默认值 含义 atr_length 22 计算 ATR 的窗口周期 atr_ma_length 10 计算 ATR 均线的窗口周期 rsi_length 5 计算 RSI 的窗口周期(非常灵敏) rsi_entry 16 RSI 入场阈值偏移量 (50 ± 16) trailing_percent 0.8 移动止损百分比 (0.8%) 3. 策略逻辑详解 3.1 过滤器:ATR 波动率判断 策略首先计算 ATR 值及其移动平均线 (MA)。 1 2 3 atr_array = am.atr(self.atr_length, array=True) self.atr_value = atr_array[-1] self.atr_ma = atr_array[-self.atr_ma_length:].mean() 入场前提:self.atr_value > self.atr_ma ...

May 3, 2025 · 2 min