首页/新闻资讯/正文详情

ta-lib-python 算 ATR/NATR:5 分钟画好波动率止损线

发布时间:2026/11/4 11:55:41 来源:云帆数科 栏目:资讯中心
ta-lib-python 算 ATR/NATR:5 分钟画好波动率止损线
ta-lib-python 算 ATR/NATR:5 分钟画好波动率止损线【免费下载链接】ta-lib-pythonPython wrapper for TA-Lib (http://ta-lib.org/).项目地址: https://gitcode.com/gh_mirrors/ta/ta-lib-python止损线为什么总被扫:先让波动率说话上周复盘时你发现:止损线设得近,一根普通阴烛就把你扫出去;设得远,又扛着浮亏过夜。病根在于固定百分比止损没考虑每天的波动差异。用 ta-lib-python 算 ATR(平均真实波幅)来动态定止损线,波动大的日子自动放宽、波动小的日子自动收紧,5 分钟就能跑通。读完你能独立做完这几件事用 3 条命令装好 ta-lib-python 环境对任意 high/low/close 序列算出 ATR 和 NATR(归一化平均真实波幅),并解释前面那些 NaN画出收盘价 2 倍 ATR 止损线的组合图,再改出一个追踪止损变体ATR 和 NATR 到底怎么算的一句话:ATR 就是最近 N 天每天颠簸程度的加权平均,NATR 把它换算成相对收盘价的百分比。TR max(high - low, |high - 昨close|, |low - 昨close|) # 当日真实波幅 ATR[14] mean(TR[1..14]) # 第 14 根K线:算术平均 ATR[t] (ATR[t-1] * 13 TR[t]) / 14 # 之后:加权滚动平滑 NATR ATR / close * 100 # 转成百分比相当于给最近 14 天的颠簸程度做个昨天的分量略大的均值,所以它对最近几天的异动特别敏感。周期怎么选,看这张小表:周期特点适合5~10反应快、噪音多日内 / 超短14(默认)敏感与平滑平衡日线短线50很稳、反应慢趋势跟踪函数签名一行就能看全,仓库里 docs/func_groups/volatility_indicators.md 就是波动率指标(含 ATR、NATR、TRANGE)的签名一览:real ATR(high, low, close, timeperiod14)。跟着做:ta-lib-python 从零算出 ATR 止损线装环境只需 3 条命令ta-lib-python 0.6.5 的 PyPI 轮子自带 TA-Lib C 库,不用自己编译:python -m pip install -U TA-Lib python -m pip install pandas matplotlib python -c import talib; print(talib.__version__)第三条会打印版本号,能打印出来就算装好了 ✅造 120 根模拟 K 线真实数据源随便接,这里用随机游走模拟 120 根日 K 线,并保证 high ≥ close ≥ low:import numpy as np, pandas as pd rng np.random.default_rng(42) close 100 np.cumsum(rng.normal(0, 1, 120)) # 收盘价:随机游走 df pd.DataFrame({high: close np.abs(rng.normal(0, .8, 120)), low: close - np.abs(rng.normal(0, .8, 120)), close: close})核心计算:两行指标 一条止损线Function API 直接吃 pandas.Series,不用转.values。前 13 个 NaN 是回看期,第 14 根 K 线才开始出值:import talib df[atr] talib.ATR(df[high], df[low], df[close], timeperiod14) # 平均真实波幅 df[natr] talib.NATR(df[high], df[low], df[close], timeperiod14) # ATR/收盘*100 df[stop] df[close] - df[atr] * 2 # 2 倍 ATR 止损线 df[[atr, natr, stop]].dropna().head()画出来:价格、止损线、波动率一张图上下两个子图:上面看价格 vs 止损线的相对关系,下面看波动率什么时候被放大:import matplotlib.pyplot as plt fig, (ax1, ax2) plt.subplots(2, 1, figsize(10, 6), sharexTrue) ax1.plot(df[close], label收盘价) ax1.plot(df[stop], --, label2倍ATR止损) ax1.legend() ax2.plot(df[atr], labelATR(14)) ax2.plot(df[natr], --, labelNATR(14)) ax2.set_title(ta-lib-python ATR 波动率曲线) ax2.legend() fig.tight_layout(); plt.show()你会看到:价格走得猛的区段 ATR 同步抬升,止损线自动离收盘价远一点;平静区段止损线又贴回来。这就是动态的含义。换个场景试试 ATR追踪止损:只抬升、不回落持有趋势单时不能每根 K 线重算止损,要让累计最高价减 2 倍 ATR只向上走:trail df[close].cummax() - df[atr] * 2 # 累计最高价 - 2 倍 ATR exit_sig (df[close] trail).diff().fillna(0) 1 # 首次跌破追踪止损的位置 print(df.loc[exit_sig].index.tolist())适合持有趋势单的场景:止损线随价格新高不断上移,只在价格真正回头时才离场。波动率过滤:先判断能不能打有些策略只在低波动环境成立,用 NATR 当闸门最直接:can_trade df[natr] 3 # NATR 低于 3% 视为低波动,允许入场 too_hot df[natr] 6 # 高于 6% 先观望 print(can_trade.mean()) # 低波动窗口占全部时间的比例回测前先用它过滤入场K线,免得策略表现被少数极端波动日稀释。跨品种对比:谁的 NATR 高谁更颠簸ATR 带绝对量纲,100 元的股票和 5 元的股票没法直接比;NATR 是百分比,横排就出来了(df2 是另一品种的同样结构):a df[natr].rolling(20).mean() # 品种 A:20 日 NATR 均值 b df2[natr].rolling(20).mean() # 品种 B pd.DataFrame({A: a, B: b}).dropna().tail()做多品种组合时用它比较相对波动,把仓位往颠簸程度匹配的品种上分。踩坑 自检清单Q: 前 13 个值全是 NaN,是不是算错了?不是,ATR 需要 14 根 K 线的回看期,第 14 根才出第一个值:df[atr].head(13).isna().all() # 返回 True 就是正常行为Q: 行情数据中间缺了一根,ATR 会怎样?TA-Lib 会把 NaN 一直传导到序列末尾,所以先清洗再算,别带着空洞进函数:df[[high, low, close]] df[[high, low, close]].ffill()Q: 几十万根 K 线算一次太慢?一次性全量算本身就是 C 实现,很快;真正慢的是每来一根 K 线就重算全量,这时换 Streaming API,每根 O(1) 更新:from talib import stream s stream.ATR(df[high], df[low], df[close], timeperiod14)Q: 止损倍数固定 2 倍够用吗?不固定。高波动品种(期货、成长股)可以试 3 倍,或者先用 NATR 阈值滤掉极端波动段,再回到 2 倍。上线前自检:high / low / close 等长、无 NaNATR 前 13 个 NaN 没被强行填 0止损倍数在自己的品种上回测过timeperiod 与交易周期匹配(日线常用 14)图上看一眼:波动放大段止损线确实放宽了速查卡:ATR / NATR 参数一览参数类型默认值一句话说明high / low / closendarray 或 pandas.Series必填高、低、收盘价,三者长度必须一致timeperiodint14平滑周期,NaN 回看期约为 timeperiod - 1返回值ndarray—与输入等长,NATR 已是百分比不用再乘 100变体——只要原始真实波幅用talib.TRANGE(high, low, close)下一步:把 mock 数据换成你的真实行情源,或者给入场信号加上 RSI 过滤,让 ATR 只管止在哪、RSI 管何时进。【免费下载链接】ta-lib-pythonPython wrapper for TA-Lib (http://ta-lib.org/).项目地址: https://gitcode.com/gh_mirrors/ta/ta-lib-python创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Jasna 视频修复 GUI 实操指南:从首次启动到批量修复出片
Jasna 视频修复 GUI 实操指南:从首次启动到批量修复出片

Jasna 视频修复 GUI 实操指南:从首次启动到批量修复出片 【免费下载链接】jasna Video restoration tool 项目地址: https://gitcode.com/GitHub_Trending/ja/jasna Jasna 是一款开源视频修复工具,自动定位视频里的马赛克区域并在 GPU 上修复&… · 2026/11/4 11:55:41

Wan2.2-TI2V-5B本地部署完整教程:单卡 24GB 如何跑通 720P 视频生成
Wan2.2-TI2V-5B本地部署完整教程:单卡 24GB 如何跑通 720P 视频生成

Wan2.2-TI2V-5B本地部署完整教程:单卡 24GB 如何跑通 720P 视频生成 【免费下载链接】Wan2.2-TI2V-5B Wan2.2-TI2V-5B是一款开源的先进视频生成模型,基于创新的混合专家架构(MoE)设计,显著提升了视频生成的质量与效率。… · 2026/11/4 11:55:41

给AI主播做跳舞片、MV和新造型:open-yoki Studio素材工厂全解析
给AI主播做跳舞片、MV和新造型:open-yoki Studio素材工厂全解析

【免费下载链接】open-yoki An AI live-stream host that runs on one server: voice, face, chat, memory, posts. The base yoki runs on. By Jacke_pp contact: DM Jacke_pp on X 项目地址: https://gitcode.com/gh_mirrors/op/open-yoki 点击查看 免费下载 给… · 2026/11/4 11:54:41

高效自习室选择与使用全攻略
高效自习室选择与使用全攻略

1. 自习室选择的核心考量因素 作为一名经历过高中三年自习室踩坑的老司机,我深刻理解选择一个优质自习室对学习效率的影响。好的自习室环境能提升30%以上的学习专注度,而糟糕的环境则可能让你白白浪费宝贵的时间。经过实地考察和长期体验,我总… · 2026/11/4 13:20:00

AAAI学术会议筹备与AI技术趋势解析
AAAI学术会议筹备与AI技术趋势解析

1. 学术会议的价值与筹备要点学术会议作为领域内最新研究成果的集中展示平台,其价值不仅在于成果发表,更在于构建学术共同体、促进思想碰撞。以AAAI(人工智能促进协会年会)为例,作为人工智能领域的顶级会议&#xff0c… · 2026/11/4 13:20:00

AI生成代码敢上生产吗?四道上线检查流程全拆解
AI生成代码敢上生产吗?四道上线检查流程全拆解

先说明一下背景:我刚把一个用 AI 辅助写的功能模块推到生产环境,前后花了差不多一个下午做上线前检查。身边很多人问我“AI 生成的代码敢直接上生产吗”,我的回答是:敢,但绝不敢直接上。AI 写代码的速度确实快&#xf… · 2026/11/4 13:20:00

NetWorker 18.2.0.1 备份服务器部署与客户端接入实战
NetWorker 18.2.0.1 备份服务器部署与客户端接入实战

简介:面向初次接触企业级备份还原的运维人员与初学者,这份 DELL EMC NetWorker 18.2.0.1 部署指南围绕 Windows 与 Linux 两类环境展开,重点说明备份服务器、Windows 客户端和 Linux 客户端的安装配置,并交代 DNS 解析、Hosts 文件… · 2026/11/4 13:20:00

室内毫米级定位技术RoomAPS解析与应用
室内毫米级定位技术RoomAPS解析与应用

1. 室内毫米级定位技术概述 在机器人导航领域,定位精度直接决定了系统的可靠性和应用范围。室外环境中,GPS系统能够提供米级定位服务,但当机器人进入室内环境后,GPS信号衰减严重,传统卫星定位技术完全失效。这就催生了… · 2026/11/4 13:19:59

工业锅炉燃烧计算:空燃比与当量比实战解析
工业锅炉燃烧计算:空燃比与当量比实战解析

1. 燃烧工程中的化学计量问题 燃烧作为能源转化与利用的核心过程,在工业锅炉、内燃机、燃气轮机等热能动力装置中扮演着关键角色。作为一名在能源行业工作多年的工程师,我经常需要处理各种燃烧系统的设计和优化问题。今天我想分享一个实际工程案例&#… · 2026/11/4 13:18:58

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码