Tushare 数据准确性

Tushare ID:491356

        对于写一个策略,策略成功与否在于以下三点:

        1.策略的数据是否正确

        2.策略是否可行

        3.代码能否运行成功

        我尤其看重数据来源,以保证数据的准确性,数据是整个策略的基石,我使用过许多平台的股票数据,但我个人觉得Tushare平台的股票数据是相当nice,数据非常精确,为我的策略提供了精确的数据,使策略能够完美实现。我自己使用Tushare的股票数据写了一个关于RSI的策略。

import tushare as ts
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ts.set_token('')
pro = ts.pro_api()

def get_data(ts_code,start_date,end_date): #获取股票数据
    df = pro.daily(ts_code=ts_code,start_date=start_date,end_date=end_date)
    df['trade_date'] = pd.to_datetime(df['trade_date'])
    df.set_index('trade_date',inplace=True)
    df = df.sort_index()
    return df

def rsi(price,period):  #编写rsi函数
    change = price - price.shift(1)
    change = change.dropna()
    indexprc = change.index
    upPrc = pd.Series(0,index=indexprc)
    upPrc[change>0] = change[change > 0]
    downPrc = pd.Series(0, index=indexprc)
    downPrc[change < 0] = -change[change < 0]
    SMUP = []
    SMDOWN = []
    for i in range(period, len(upPrc) + 1):
        SMUP.append(np.mean(upPrc.values[(i - period): i], dtype=np.float32)*period/float((upPrc.values[(i - period): i]>0).sum()))
        SMDOWN.append(np.mean(downPrc.values[(i - period): i], dtype=np.float32)*period/float((downPrc.values[(i - period): i]>0).sum()))
        rsi = [100 * SMUP[i] / (SMUP[i] + SMDOWN[i]) for i in range(0, len(SMUP))]
    indexRsi = indexprc[(period - 1):]
    rsi = pd.DataFrame(rsi,columns=['rsi'],index=indexRsi)
    print(rsi)
    rsi.plot()
    plt.grid(True)
    plt.show()

def main(): #执行
    ts_code='002761.SZ' 
    start_date='20220301'
    end_date='20220430'
    period = 14
    get_data(ts_code,start_date,end_date)
    df = get_data(ts_code,start_date,end_date)
    rsi(df.close,period)
main()

运行结果:

但网上流传的计算公式是不准确的,导致出现了一定的误差,但通过手工计算,结果是正确的,足以说明Tushare平台的数据准确性。在此,我非常感谢Tushare这个平台,为我提供了非常准确的股票数据,有需要准确股票数据的人,你将可以通过Tushare 平台获得。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值