python :talib 计算 ATR

[量化学院]借助talib使用技术分析指标来炒股 什么是技术分析 所谓股票的技术分析,是相对于基本面分析而言的。基本分析法着重于对一般经济情况以及各个公司的经营管理状况、行业动态等因素进行分析,以此来研究股票的价值,衡量股价的高低。而技术分析则是透过图表或技术指标的记录,研究市场过去及现在的行为反应,以推测未来价格的变动趋势。其依据的技术指标的主要内容是由股价、成交量或涨跌指数等数据计算而得的,技术分析只关心证券市场本身的变化,而不考虑会对其产生... 阅读详情
AI摘要

本文介绍如何使用Python和TA-Lib库计算股票的真实波动幅度(ATR)指标,包括安装TA-Lib库的过程和使用示例代码。通过分析历史股票价格数据,可以计算出ATR值,进一步帮助投资者理解市场波动性和制定交易策略。

ATR指标:Average True Range 真实波动幅度的移动平均值

python安装使用 talib 
安装主要在 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 
这个网站找到
TA_Lib‑0.4.17‑cp37‑cp37m‑win32.whl
TA_Lib‑0.4.17‑cp37‑cp37m‑win_amd64.whl

cd \Anaconda3\Scripts
pip install \Talib\TA_Lib-0.4.17-cp37-cp37m-win_amd64.whl

get_atr.py

# coding: utf-8
import os, sys
import numpy as np
import pandas as pd
import tushare as ts
import talib
import math

if len(sys.argv) ==2:
    code = sys.argv[1]
else:
    print('usage: python get_atr.py stockcode ')
    sys.exit(1)

if len(code) !=6:
    print('stock code length: 6')
    sys.exit(2)

df = ts.get_k_data(code)
if df.empty ==True:
    print(" df is empty ")
    sys.exit(2)
df = df[ df['date'] > '2019-01-01']
if len(df) <15:
    print(" len(df) <15 ")
    sys.exit(2)

# 收盘价
close = np.array(df['close'])
# 最高价
high = np.array(df['high'])
# 最低价
low = np.array(df['low'])
# 获取最新的ATR值
atr = talib.ATR(high, low, close, timeperiod=14)
print('len(atr)=',len(atr))
print(atr[-5:])
per = 1000
price = close[-1]
print("price={0} , rate: {1:.4f}%".format(price, atr[-1]*100/price))
share = math.floor(per /atr[-1]/100)*100
print('share=',share)
print(code,':',price,'*',share,'=',price*share)

运行 python get_atr.py 600030

参考:https://www.programcreek.com/python/example/92324/talib.ATR

talib技术指标分析:指标 talib技术指标分析,原理解析,计算公式,适应行情和不适应行情 阅读详情

相关推荐

【原生代码】Python3 实现ATR、MA、EMA、SMMA、RMA、TEMA指标的计算

1. 参数说明 r:K线数据,字典或者数组 days:指标长度 name:使用哪一个字段,填’Close’即可,如果不填则代表r是数组而不是字典 变量r 字典结构图如下: { { 'Time': 0, 'Close': 0, 'Open': 0, 'High': 0, 'Low': 0, 'Volume': 0, } } 2. ATR 真实波动幅度 (需配合下面的指标) def A

sumubaiblog的博客 7177

talib atr 函数 相同数据、相同周期。不同数据长度结果不一样原因

【代码】talib atr 函数 不同相同数据 不同数据长度结果不一样。

bthuntergg的博客 763

talib python文档_TALib中文文档代码实现

# overlap studies重叠的指标# BBANDS Bollinger Bands# 函数名:BBANDS# 名称: 布林线指标# 简介:其利用统计原理,求出股价的标准差及其信赖区间,从而确定股价的波动范围及未来走势,利用波带显示股价的安全高低价位,因而也被称为布林带。# 分析和应用: 百度百科 同花顺学院# upperband, middleband, lo...

weixin_39789094的博客 1294

TALIB 中文文档 Volatility Indicator Functions 波动率指标函数

TALIB 中文文档 Volatility Indicator Functions 波动率指标函数

weixin_43493359的博客 1406

量化交易新手必看:5个最实用的技术指标解析(附Python代码示例)

本文为量化交易新手详细解析了五个最实用的技术指标:移动平均线(MA)、MACD、平均真实波幅(ATR)、RSI和布林带。文章不仅阐述了各指标的核心原理,还提供了完整的Python代码示例,指导读者从环境搭建、数据获取到指标计算、可视化及策略组合的完整流程,帮助初学者快速构建可运行的技术分析框架。

wind6的博客 1009

Python量化交易实战:用TA-Lib的ATR指标优化你的止损策略(附完整代码)

本文详细介绍了如何利用TA-Lib的ATR指标优化Python量化交易中的止损策略。通过动态调整止损距离和仓位管理,ATR指标能有效适应市场波动,提升交易系统的稳定性和收益。文章包含完整的代码实现和实战技巧,适合量化交易新手和资深开发者参考。

s1t2u3的博客 1043

如何用Pandas_talib轻松实现股票、期货和加密货币的技术分析

Pandas_talib是一个基于Python Pandas的技术分析指标实现库,它提供了丰富的金融市场分析工具,帮助投资者和交易者快速计算各类技术指标。无论是股票、期货还是加密货币市场,Pandas_talib都能为你提供专业的技术分析支持。 ## 📊 什么是Pandas_talib Pandas_talib是一个专为金融数据处理设计的Python库,它将技术分析指标(Technical

gitblog_01035的博客 866

用Python量化海龟交易法则!

1 引言 对于纯多头或空头的方向性策略而言, 只有当证券价格是均值回归或趋势的,交易策略才能盈利 。否则,如果价格是随机游走的,交易将无利可图(法玛有效市场假说)。换句话说,目前各种纷繁复杂的所谓量化策略大都可以归结为均值回归或趋势追踪策略。 趋势追踪策略 认为价格会沿着一定的趋势继续走,也常称为“惯性”或“动量”策略,很多技术指标就是基于动量的思想来设定的。今天为大家介绍著名的趋势交易策略—...

Pythoncxy的博客 4898

Pandas_talib高级应用:MACD、布林带和ATR指标组合策略

Pandas_talib是一个基于Python Pandas的技术分析指标实现库,它提供了包括MACD、布林带(BBANDS)和ATR在内的多种技术分析工具。本文将详细介绍如何组合使用这三个强大指标构建有效的交易策略,帮助投资者提升市场分析能力。 ## 核心指标解析:MACD、布林带与ATR的功能与应用 ### MACD指标:捕捉趋势变化的动态信号 MACD(移动平均收敛散度)是由快速EMA

gitblog_00544的博客 724

Mplus—验证性因素分析(Confirmatory Factor Analysis, CFA)

介绍一阶和二阶验证性因素分析概况及在Mplus中的操作方法。

m0_54401011的博客 1万+

用STM32的SPI模式2搞定SSI绝对值编码器通信(附完整代码与避坑点)

本文详细解析了如何使用STM32的SPI模式2实现SSI绝对值编码器通信,包括硬件设计、SPI配置、数据处理算法及稳定性优化技巧。通过完整的代码示例和避坑指南,帮助工程师解决时序匹配、数据解析等常见问题,提升工业自动化系统中的编码器通信可靠性。

weixin_27252001的博客 265

python量化指标talib库函数功能

参数说明:high:最高价;fastk_period:N参数, slowk_period:M1参数, slowk_matype:M1类型, slowd_period:M2参数, slowd_matype:M2类型。# 参数说明:close:收盘价;# 参数说明:high:最高价;# 参数说明:high:最高价;# 参数说明:close:收盘价;timeperiod:时间周期,fastperiod:快周期;# 参数说明:high:最高价;# 参数说明:high:最高价;# 参数说明:high:最高价;

weixin_69153932的博客 2012

Linux CentOS 8系统离线升级内核版本

CentOS 8操作系统离线场景下升级内核版本

WQwinter的博客 3237

【维克】用Python计算技术指标:talib使用指南与避坑要点

这意味着:你在第100根K线时看到的DIF是0.38,到了第101根K线时,第99根的DIF可能变成了0.40。但它不好用,因为如果你对底层计算方式不了解,你会发现它算出来的结果跟行情软件对不上,跟你的预期对不上,甚至在实盘中给出错误信号。talib默认用的是标准EMA递归公式,同花顺可能用了SMA作为EMA的种子值,也可能用了不同的种子值初始化方式。它只负责"给我数据,我算指标"。它的劣势在于黑盒和数据敏感——如果你不理解底层的计算方式,不处理NaN、数据顺序、停牌除权等问题,它给你的结果可能完全错误。

weixin_42332217的博客 455

6.Burp Suite 入门篇 —— Burp Scanner 漏洞扫描

Burp Scanner 既可以是独立的全自动扫描器,也可以在手动测试中当作强大的辅助手段,而且随着技术改进,Burp Scanner 能检测到的漏洞数量也在不断增加。Burp Scanner 功能只在 burpsuite 专业版和企业版中里有,本篇教程讲的是专业版的 Burp Scanner 用法。

YouTheFreedom的博客 1万+

2026必学:LangChain+Playwright爬虫,赋能RAG智能问答系统

RAG(检索增强生成)智能问答系统的效果,80%取决于数据源的质量。2026年,LangChain与Playwright的组合成为企业级RAG数据采集的黄金搭档:LangChain提供标准化的RAG数据处理链路,Playwright解决动态网页渲染的核心痛点,两者结合能高效采集、结构化处理各类网页数据(动态渲染页、复杂交互页、反爬页),为RAG系统提供高质量语料。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1705

Pandas_talib终极教程:从零开始构建量化交易策略

Pandas_talib是一个基于Python Pandas实现的技术分析指标库,它将强大的Pandas数据处理能力与TA-Lib的技术分析功能完美结合,为量化交易策略开发提供了便捷工具。本文将带您从零开始,掌握使用Pandas_talib构建专业量化交易策略的核心技能。 ## 📊 为什么选择Pandas_talib进行量化分析 在量化交易领域,技术指标是预测市场走势的重要工具。Pandas

gitblog_01176的博客 1069

SAP HANA CDS View Syntax Options 全解:从语法到工程实践

本文面向SAP HANA工程师,深入解析CDS视图的语法与应用场景。文章涵盖XS Advanced环境下的CDS视图设计要点,包括SELECT基础语法、聚合函数与分组约束、参数化视图实现以及常见连接操作。特别强调工程实践中的注意事项:GROUP BY禁用表达式、原生表名大小写规范、结果集裁剪方式选择等。通过两个真实案例(办公室占用率统计和客户画像分析)展示CDS视图在实际业务中的应用,并提供性能优化建议。全文采用中英文混排规范,技术术语使用反引号标注,旨在为开发者提供清晰的CDS视图开发指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 212

Pandas_talib:Python量化交易技术分析指标库完整指南

想要在Python中进行量化交易分析却苦于复杂的指标计算?Pandas_talib是你的终极解决方案!这个强大的Python技术分析指标库基于Pandas框架,为金融数据分析师和量化交易者提供了简单、高效的技术指标计算功能。无论你是量化交易新手还是经验丰富的开发者,Pandas_talib都能帮助你快速实现专业级的技术分析。 ## 📊 什么是Pandas_talib? Pandas_tali

gitblog_00337的博客 851

rk3588 适配以太网(百兆)

虽然 RK3588 的 GMAC 控制器原生支持千兆速率(10/100/1000 Mbps),但在某些工业控制、物联网网关或成本敏感型硬件设计中,开发者会选择将其配置为 百兆以太网(Fast Ethernet) 模式。

weixin_35723192的博客 218

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

二十、区块量化 TA-Lib 的一些常用指标

#!/usr/bin/env python# -*- coding: utf-8 -*-import cross_order as orderimport talibsymbol = 'BTC-USDT-SWAP' # okx# symbol = 'BTCUSDT' # binance# symbol = 'BTC_USDT' # gate.io# 取个数据验证一下data = order...

nbjjy的专栏 502

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Python量化交易实战:用TA-Lib计算ATR指标优化止损策略(附完整代码)

本文详细介绍了如何利用Python和TA-Lib技术分析库计算ATR指标,并基于此构建动态止损策略以优化量化交易系统。通过实战代码演示了吊灯止损和ATR移动止损两种经典方法,并利用Backtrader框架进行策略回测与参数优化,为交易者提供了完整的风险控制解决方案。

grape的博客 857

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怎么安装talib包_Ta-Lib安装及使用教程

首先,TqLib安装是相对较繁琐的,我们觉得在天勤量化(TqSdk)内使用技术指标计算函数即可达到同样功能,并且只需简单一行即可导入,如果感兴趣可以点击查看 天勤量化(TqSdk)TaLib官网:http://ta-lib.org/Python wrapper for TA-Lib:http://mrjbq7.github.io/ta-lib/doc_index.html一、TaLib简介TaLi...

weixin_35715118的博客 1万+

talib函数功能一览表

1.简介 Talib是一款非常强大的技术分析指标计算第三方包,于1999年由Mario Fortier最早上传。由于底层框架是用C语言搭建的,所以python在使用时的帮助文档较少。为了方便使用,参考HuaRongSAO在github上的发布的内容整理出以下文档。 (原文地址:https://github.com/HuaRongSAO/talib-document) 2.安装和导入 一般情况下直接用pip安装Talib会出现各种各样的问题,所以推荐用whl的方式安装。安装流程如下: Whl下载地址:h

小壁虎的春天 6663

python 股票指标库talib_talib金融库怎么用?

Talib一直缺乏有效的中文文档,我在[TA-Lib]学习笔记-K线模式识别发动了中文文档补齐计划,大家可以在网站上看到。使用方式你只需要import talib就可以是用talib计算各种技术分析指标啦~在Rceiquant上你也可以看到一些示例代码与策略:顺势指标(CCI)的应用波动率指标ATR【学习】Talib的Bollinger Bands应用【技术指标量化】平均趋向指数ADX和动向指数D...

weixin_39948277的博客 1354
上一篇: R语言:quantmod 画股票K线图
下一篇: python:jinja2 模板 实例
belldeep
博客等级 码龄20年 1820粉丝 584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值