量化交易系统之python+mysql(三)

经过前面三篇文章的铺垫,实现了:

1.股票数据来源:tushare之“前复权”

2.从tushare获取股票数据以后,如何写入mysql:python dataframe类型转换后存入mysql

3.如何从mysql读取股票数据,还原成dataframe,进行后续数据处理:python mysql查询结果tuple类型,转换成dataframe类型

那么,这篇文章,就是终结篇,处理来自mysql的数据

1. 计算各种均线值:ma5,ma10,ma20,ma30,ma60

2.计算各种成交量均线值:ma5_vol,ma10_vol,ma20_vol,ma30vol

 

talib库

计算均值,用到talib库,下载方法参考《量化交易系统之python+mysql(一)

import talib
#生成ma5,ma10,ma20,ma30,ma60
    def DataProcess(self, list_code):
        for code in list_code['ts_code']:
            print("DataProcess.... code=", code)
            #mysql数据转换成dataframe
            df = self.Mysql2DataFrame(code)
            all_vol = df['vol']
            all_close = df['close']
            all_trade_day = df['trade_day']

            try:
                #计算收盘价、成交量的平均值
                close_all = all_close
                ma5 = talib.SMA(close_all, timeperiod=5)
                ma10 = talib.SMA(close_all, timeperiod=10)
                ma20 = talib.SMA(close_all, timeperiod=20)
                ma30 = talib.SMA(close_all, timeperiod=30)
                ma60 = talib.SMA(close_all, timeperiod=60)
    
                vol_all = all_vol
                ma5_vol = talib.SMA(vol_all, timeperiod=5)
                ma10_vol = talib.SMA(vol_all, timeperiod=10)
                ma20_vol = talib.SMA(vol_all, timeperiod=20)
                ma30_vol = talib.SMA(vol_all, timeperiod=30)
    
                #写入mysql
                len_record = len(all_trade_day)
                for i in range(len_record):
                    self.db.update_kdata(code, all_trade_day[i],
                                         ma5[i], ma10[i], ma20[i], ma30[i], ma60[i],
                                         ma5_vol[i], ma10_vol[i], ma20_vol[i], ma30_vol[i])
                    #print(code," trade_day=",all_trade_day[i],"  ma5=",ma5[i])
    
            except Exception as e:
                print('DataProcess  error,e=', e, 'code=', code)

效果:

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值