量化策略初探——使用tushare进行沪深300ETF双均线策略

本文介绍了使用tushare获取沪深300ETF数据,并基于此实施双均线策略,包括简单移动平均(SMA)和指数移动平均(EMA)。通过backtrader进行回测,结果显示EMA在捕捉短期价格变化上更敏感,利润波动和最大回撤也相应增大。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用tushare采集沪深300ETF数据,并对沪深300ETF采用简单移动平均、指数移动平均、进行双均线策略,最后使用backtrader进行回测。

一、基本概念

双均线策略:运用两条不同周期的移动平均线,即短周期移动平均线和长周期移动平均线的相对大小,研判买进与卖出时机的策略。由短周期均线自下向上穿越长周期均线,所形成的交点,称为金叉。当短周期均线自上而下穿越长周期均线,所形成的交点,称为死叉。

简单移动平均法:对指定期间内的数据做算术平均,新旧数据的权重一样。
指数移动平均法:对指定期间的数据赋予不同的权重,每天数据的权重系数以指数等比形式缩小。

从tushare获取沪深300ETF数据

import pandas as pd
import numpy as np
import backtrader as bt
import datetime,time
import tushare as ts

def get_data(ts_code):
    #获取沪深300ETF数据
    pro = ts.pro_api('your token')
    try :
        df = pro.fund_daily(ts_code=ts_code)
    except : 
        time.sleep(0.5)
        print('获取数据失败')
    else :
        print('获取数据成功')
        
    #对数据进行处理符合backtrader格式
    columns = ['trade_date','open','high','low','close','vol']
    df = df[columns]
    #转换日期格式
    df['trade_date'] = df['trade_date'].apply(lambda x: pd.to_datetime(str(x)))
    bt_col_dict = {
   'vol':'volume','trade_date':
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值