支持内联股票统计的数据帧。

stockstats的Python项目详细描述


https://travis-ci.org/jealous/stockstats.svghttps://coveralls.io/repos/jealous/stockstats/badge.svghttps://img.shields.io/pypi/v/stockstats.svg

版本:0.3.0

简介

提供基于pandas.DataFrame的包装StockDataFrame,其中 在线股票统计/指标支持。

支持的统计/指标有:

  • 变化(百分比)
  • 增量
  • 置换(基于零)
  • 日志返回
  • 最大范围
  • 最小范围
  • 中=(关闭+高+低)/3
  • 比较:le、ge、lt、gt、eq、ne
  • 计数:向后(C)和向前(FC)
  • SMA:简单移动平均值
  • ema:指数移动平均值
  • mstd:移动标准偏差
  • mvar:移动方差
  • rsv:原始随机值
  • 相对强度指数
  • kdj:随机振子
  • 系缆:包括上带和下带。
  • 移动平均收敛发散。包括信号和直方图。(参见注释)
  • CR:
  • wr:williams超买/超卖指数
  • cci:商品渠道指数
  • tr:真实范围
  • ATR:平均真实范围
  • 行交叉检查,向上或向下交叉。
  • dma:移动平均值(10,50)的不同
  • dmi:方向移动指数,包括
    • +DI:正方向指示灯
    • -DI:负方向指示灯
    • ADX:平均方向运动指数
    • adxr:adx的平滑移动平均值
  • trix:三指数移动平均值
  • tema:又一个三指数移动平均值
  • vr:波动率容积率

安装

pip install stockstats

许可证

BSD

教程

  • 使用retype函数初始化StockDataFrame,该函数 将pandas.DataFrame转换为StockDataFrame
stock=StockDataFrame.retype(pd.read_csv('stock.csv'))
  • 将数据形式化。这个包认为您的数据被排序是理所当然的 按时间戳并包含某些列。请将列名对齐。
    • open:区间的开放价格
    • close:区间的收盘价
    • high:区间的最高价格
    • low:区间的最低价格
    • volume:区间内股票交易量
    • amount:间隔期间的库存量
  • 常用的统计/指标有一些快捷方式,如 kdjkboll_hbmacd等。
  • 当访问指标/统计数据时,它们会动态生成。 如果您是通过Series访问的,它可能会返回not found错误。 修复方法是通过如下方式访问显式初始化它:
_=stock['macd']# orstock.get('macd')
  • 使用get item访问指标。项目名称位于 图案:{columnName_window_statistics}。 一些统计/指标有其捷径。参见下面的示例:
# volume delta against previous daystock['volume_delta']# open delta against next 2 daystock['open_2_d']# open price change (in percent) between today and the day before yesterday# 'r' stands for rate.stock['open_-2_r']# CR indicator, including 5, 10, 20 days moving averagestock['cr']stock['cr-ma1']stock['cr-ma2']stock['cr-ma3']# volume max of three days ago, yesterday and two days laterstock['volume_-3,2,-1_max']# volume min between 3 days ago and tomorrowstock['volume_-3~1_min']# KDJ, default to 9 daysstock['kdjk']stock['kdjd']stock['kdjj']# three days KDJK cross up 3 days KDJDstock['kdj_3_xu_kdjd_3']# 2 days simple moving average on open pricestock['open_2_sma']# MACDstock['macd']# MACD signal linestock['macds']# MACD histogramstock['macdh']# bolling, including upper band and lower bandstock['boll']stock['boll_ub']stock['boll_lb']# close price less than 10.0 in 5 days countstock['close_10.0_le_5_c']# CR MA2 cross up CR MA1 in 20 days countstock['cr-ma2_xu_cr-ma1_20_c']# count forward(future) where close prise is larger than 10stock['close_10.0_ge_5_fc']# 6 days RSIstock['rsi_6']# 12 days RSIstock['rsi_12']# 10 days WRstock['wr_10']# 6 days WRstock['wr_6']# CCI, default to 14 daysstock['cci']# 20 days CCIstock['cci_20']# TR (true range)stock['tr']# ATR (Average True Range)stock['atr']# DMA, difference of 10 and 50 moving averagestock['dma']# DMI# +DI, default to 14 daysstock['pdi']# -DI, default to 14 daysstock['mdi']# DX, default to 14 days of +DI and -DIstock['dx']# ADX, 6 days SMA of DX, same as stock['dx_6_ema']stock['adx']# ADXR, 6 days SMA of ADX, same as stock['adx_6_ema']stock['adxr']# TRIX, default to 12 daysstock['trix']# MATRIX is the simple moving average of TRIXstock['trix_9_sma']# TEMA, another implementation for triple emastock['tema']# VR, default to 26 daysstock['vr']# MAVR is the simple moving average of VRstock['vr_6_sma']
  • 以下选项可用于调谐。请注意,所有这些选项都是类级别选项,必须在进行任何计算之前进行更改。
    • kdj
      • kdj_窗口:默认为9
      • Boll_窗口:默认为20
      • 标准时间:默认为2
    • macd
      • macd_ema_short:默认为12
      • macd_ema_long:默认为26
      • macd_ema_信号:默认为9
    • PDI、MDI、DX和ADX
      • PDI_SMMA:默认为14
      • MDI_smma:默认为14
      • dx_smma:默认值为14
      • ADX_ema:默认为6
      • ADXR U EMA:默认为6
    • cr
      • Cr_Ma1:默认为5
      • Cr_Ma2:默认值为10
      • Cr_Ma3:默认值为20
    • 三重ema
      • Trix_Ema_窗口:默认为12
      • 特马埃马温道琼斯指数:默认为5
    • atr
      • atr_smma:默认为14

若要提交问题,请访问:

https://github.com/jealous/stockstats

macdh注:

2017年7月,macdh的代码被更改为在最终值上再减少2倍的乘数,以便更好地与cryptowatch、tradingview等工具中使用的计算方法保持一致。

联系作者:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java类。getResource和ClassLoader。getSystemResource:有没有理由选择其中一个而不是另一个?   在Java中以编程方式粘贴后恢复剪贴板   Java字符串到日期没有时间   JavaSpring注释:@Component起作用,@Repository不起作用   java“addScript”在HSQL中是否有最大记录计数?   java如何将值从JDialog框返回到父JFrame?   java我的模块库的用户有没有办法访问尚未导出的类?   java javac:未找到命令   java如何解决jsoup错误:无法找到请求目标的有效证书路径   类中的java作用域变量   Java中集合实现中的arraylist add()方法不起作用   java如何使用while循环和从用户接收输入来近似Pi?   java Spring安全CSRF培训模式   在安卓系统中,如何通过在警报框外单击来限制用户?