显然,股票的OHCL为高相关性的数据(Open,High,Close,Low),喂给神经网络时会带来较少的信息,本文介绍了两种将OHCLV转化为金融技术指标的办法,从而减少相关性,更好的描述动态,复杂的,非线性的,充满噪音的股票市场。

首先本文使用调用tushare库提取股票历史数据。

pip  install tushare
#获取使用接口
def get_token():ts.set_token("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")pro=ts.pro_api()return pro
##获取数据列表
def get_data_list(cursor,sql,conn):cursor.execute(sql)res=cursor.fetchall()conn.commit()ts_codes_list=list(res)ts_codes_list=[",".join(list(x)) for x in ts_codes_list]return ts_codes_list
##获取数据
def get_data(ts_codes_list,pro):daily=pd.DataFrame(columns=["ts_code","trade_date","open","close","high","low","volume"]) ##获取相应的列信息for i in range(0,len(ts_codes_list),100):  j=i+100if(j>=len(ts_codes_list)):j=len(ts_codes_list)name=",".join(ts_codes_list[i:j])part= pro.daily(ts_code=name, trade_date=get_date())[["ts_code","trade_date","open","close","high","low","volume"]]daily=pd.concat([daily,part],ignore_index=True) daily["trade_date"]=daily["trade_date"].apply(get_date_format)return daily

其次,第一种办法是使用TA库

pip  install TA

data = add_all_ta_features(df, "open", "high", "low", "close", "volume", fillna=True) print("Added TA Features...")data = data.reset_index(drop=True)
data.columns
Index(['date', 'open', 'high', 'low', 'close', 'volume', 'tic', 'day','volume_adi', 'volume_obv', 'volume_cmf', 'volume_fi', 'volume_mfi','volume_em', 'volume_sma_em', 'volume_vpt', 'volume_nvi', 'volume_vwap','volatility_atr', 'volatility_bbm', 'volatility_bbh', 'volatility_bbl','volatility_bbw', 'volatility_bbp', 'volatility_bbhi','volatility_bbli', 'volatility_kcc', 'volatility_kch', 'volatility_kcl','volatility_kcw', 'volatility_kcp', 'volatility_kchi','volatility_kcli', 'volatility_dcl', 'volatility_dch', 'volatility_dcm','volatility_dcw', 'volatility_dcp', 'volatility_ui', 'trend_macd','trend_macd_signal', 'trend_macd_diff', 'trend_sma_fast','trend_sma_slow', 'trend_ema_fast', 'trend_ema_slow', 'trend_adx','trend_adx_pos', 'trend_adx_neg', 'trend_vortex_ind_pos','trend_vortex_ind_neg', 'trend_vortex_ind_diff', 'trend_trix','trend_mass_index', 'trend_cci', 'trend_dpo', 'trend_kst','trend_kst_sig', 'trend_kst_diff', 'trend_ichimoku_conv','trend_ichimoku_base', 'trend_ichimoku_a', 'trend_ichimoku_b','trend_visual_ichimoku_a', 'trend_visual_ichimoku_b', 'trend_aroon_up','trend_aroon_down', 'trend_aroon_ind', 'trend_psar_up','trend_psar_down', 'trend_psar_up_indicator','trend_psar_down_indicator', 'trend_stc', 'momentum_rsi','momentum_stoch_rsi', 'momentum_stoch_rsi_k', 'momentum_stoch_rsi_d','momentum_tsi', 'momentum_uo', 'momentum_stoch','momentum_stoch_signal', 'momentum_wr', 'momentum_ao', 'momentum_kama','momentum_roc', 'momentum_ppo', 'momentum_ppo_signal','momentum_ppo_hist', 'others_dr', 'others_dlr', 'others_cr'],dtype='object')

第二种使用stockstats库进行对OHCLV的转换。

from stockstats import StockDataFrame as Sdf
df = data.copy()
df = df.sort_values(by=['tic','date'])
stock = Sdf.retype(df.copy())
unique_ticker = stock.tic.unique()
for indicator in self.tech_indicator_list:indicator_df = pd.DataFrame()for i in range(len(unique_ticker)):try:temp_indicator = stock[stock.tic == unique_ticker[i]][indicator]temp_indicator = pd.DataFrame(temp_indicator)temp_indicator['tic'] = unique_ticker[i]temp_indicator['date'] = df[df.tic == unique_ticker[i]]['date'].to_list()indicator_df = indicator_df.append(temp_indicator, ignore_index=True)except Exception as e:print(e)df =df.merge(indicator_df[['tic','date',indicator]],on=['tic','date'],how='left')
df = df.sort_values(by=['date','tic'])

对股票历史数据OHCLV转换为金融技术指标相关推荐

  1. 基于macd、kdj、ma技术指标分析股票多空方向——应用开发2 获取股票历史数据

    这里选用tushare平台获取股票历史数据 所用包 tushare .pandas.datetime import tushare as ts import pandas as pd import d ...

  2. 量化经济学:手把手教你如何使用EXCEL分析股票历史数据

    1.数据来源获取 数据集的下载来源为Yahoo Finance.Yahoo Finance是雅虎公司金融媒体领域的一个相关网站.它提供财经新闻.数据和评论,包括股票报价.新闻稿.财务报告和原创内容.它 ...

  3. 新浪股票java接口,「股票历史数据接口」搜狐股票历史数据接口

    搜狐股票历史数据接口 public class StockConnection { public static void main(String[] args) { URL ur = null; tr ...

  4. python量化分析系列之---使用python获取股票历史数据和实时分笔数据

    财经数据接口包tushare的使用(一) Tushare是一款开源免费的金融数据接口包,可以用于获取股票的历史数据.年度季度报表数据.实时分笔数据.历史分笔数据,本文对tushare的用法,已经存在的 ...

  5. 获取页眉值vba_VBA抓取股票历史数据的整体表处理

    大家好,我们今日讲解"VBA抓取股票历史数据的整体表处理",这节内容是"VBA信息获取与处理"教程中第六个专题"VBA中利用XMLHTTP完成网抓数据 ...

  6. tushare pro 版本获取股票历史数据

    最近研究程序化交易,需要使用股票历史数据.由于保存了所有股票历史数据,但是是截至到2018-12-28日,所以开始研究时对数据实时性要求不高,能实现功能即可. 经过近一个月的研究后, 即在 最基础表( ...

  7. 上证指数(000001)股票历史数据,下载上证指数(000001历史数据

    共享一个可以下载上证指数(000001)股票历史数据的工具,亲测可以下载500+个主流指数的历史数据,历史数据是从指数建立那天一直到今天的所有历史交易数据,还是很全的 最主要是免费-在线即可查询.下载 ...

  8. 用AkShare获取沪深京A股所有股票历史数据

    前面章节已经介绍了如何用AkShare调用A股实时的数据,但是在我们量化投资过程中,经常会需要用到全量数据(即所有A股的历史数据).接下来我们讲讲用AkShare获取A股所有股票历史数据. 首先,我们 ...

  9. 使用Backtrader对股票历史数据进行指标回测

    本次使用tushare接口,股票为600018,时间是20200101--20211231. 使用的指标是:收盘价大于简单移动平均价. 佣金为0.001. 英文代码的英文原文:Quickstart G ...

最新文章

  1. 深度学习问题解决:Check failed: stream-parent()-GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogra
  2. java getIV_Java SAP CRM get_children 方法里面参数 iv_as_copy 有什么用? _好机友
  3. php框架控制器是什么意思,控制器定义
  4. clientHeight、offsetHeight、scrollHeight问题
  5. 基于JAVA+Servlet+JSP+MYSQL的企业车库管理系统
  6. 机器学习实战(2)—— k-近邻算法
  7. Atitit.软件按钮与仪表盘(13)--全文索引操作--db数据库子系统mssql2008
  8. cboard使用方法以及用户交互的两种方式
  9. linux cp omitting 复制,Linux中复制目录报错cp:omitting directory的解决办法
  10. win10 开 5g 热点
  11. 任天堂服务器维护11.2,switch11.0.0版本更新内容汇总 NS11.0.0更新维护公告
  12. [经验分享] 覃超直播课学习笔记
  13. Druid数据库连接池监控的使用
  14. 分布式数据库——分片透明、复制透明、位置透明、逻辑透明
  15. 一例较成功的国产PHP问卷调查系统
  16. 陪伴是最长情的告白,民生保险“链”接万家告白征集
  17. 串口通信实验——RS-232
  18. 【vn.py学习笔记(二)】vn.py底层接口 学习笔记
  19. 【毕业设计】基于stm32的智能水杯 - 恒温控制 饮水杯 单片机 物联网 嵌入式
  20. druid数据库连接池监控页面

热门文章

  1. COMODO杀毒软件Mac版下载
  2. LaneCat网猫总中心分中心方案
  3. 医药erp系统服务器,医药ERP管理系统的解决方案
  4. 4399大数据笔试题
  5. note_2020_3
  6. 什么是工作流,flowable 与 Activiti对比
  7. Visio 自定义组合形状、颜色填充
  8. linux 文件扫描程序 性能,CentOS服务程序性能评估文档详解
  9. 小狼毫 Rime 输入方案 设置
  10. Gables: A Roofline Model for Mobile SoCs