无脑基金定投策略
- 定投目标:159912.XSHE(深300ETF)
- 参照基准:159912.XSHE(参照自身)
- 定投期限:2014年1月1日-2019年12月31日(72期)
- 定投频率:每月第一个交易日,买入3000元
- 回测平台:聚宽
回测代码如下
# 导入函数库
from jqdata import *
# 初始化函数,设定基准等等
def initialize(context):
# 设定沪深300作为基准
set_benchmark('159912.XSHE')
# 开启动态复权模式(真实价格)
set_option('use_real_price', True)
# 输出内容到日志 log.info()
log.info('初始函数开始运行且全局只运行一次')
# 过滤掉order系列API产生的比error级别低的log
# log.set_level('order', 'error')
# 每期定投金额
g.cash = 3000
# 初始化绝对净值变化
g.profit_percent = 0
### 股票相关设定 ###
# 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
## 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG'或'510300.XSHG'是一样的)
# 开盘前运行
run_monthly(before_market_open, monthday=1, time='before_open', reference_security='159912.XSHE')
# 开盘时运行
run_monthly(market_open, monthday=1, time='open', reference_security='159912.XSHE')
# 收盘后运行
run_monthly(after_market_close, monthday=1, time='after_close', reference_security='159912.XSHE')
## 开盘前运行函数
def before_market_open(context):
# 输出运行时间
log.info('函数运行时间(before_market_open):'+str(context.current_dt.time()))
# 给微信发送消息(添加模拟交易,并绑定微信生效)
# send_message('美好的一天~')
# 要操作的股票:(g.为全局变量)
g.security = '159912.XSHE'
## 开盘时运行函数
def market_open(context):
log.info('函数运行时间(market_open):'+str(context.current_dt.time()))
order_value(g.security, g.cash)
## 收盘后运行函数
def after_market_close(context):
log.info(str('函数运行时间(after_market_close):'+str(context.current_dt.time())))
#得到当天所有成交记录
trades = get_trades()
for _trade in trades.values():
log.info('成交记录:'+str(_trade))
# 日志输出运行时间
log.info(str('【收盘后】(after_market_close):'+str(context.current_dt.time())))
log.info('持仓价值:%s元' % context.portfolio.positions_value)
log.info('可用资金:%s元' % context.portfolio.available_cash)
log.info('持仓成本:%s元' % context.portfolio.inout_cash)
log.info('一天结束')
log.info('##############################################################')
定投回测效果如下
本次回测结论
根据本次回测结果发现,无脑定投并不一定会获得较高的投资回报率,最大回撤达到41.5%,基准回撤也仅仅50.80%,收益也远远赶不上基准收益。可以看出,无脑定投并不可靠,并没有专家鼓吹的这么神奇。
改进方向
- 加大回测标的(回测市场上所有etf基金)
- 根据微笑曲线原理,优化定投策略,如埃德尔森的价值平均策略
欢迎大家批评指正