MACD的基本概念,可以参考 https://www.joinquant.com/post/7095?f=18newyearjx ,感谢 Quant中找米吃的阿鼠 和 聚宽小秘书 Thanks♪(・ω・)ノ
我认为MACD不适合采用轮动策略,经过回测,我将策略改成以下模式:?
- 选出基本面较好的股票
- 剔除ST、停牌、退市的股票
- 在DIF和DEA在0轴上形成金叉时买入
- 在DIF他DEA的0轴下形成死叉时卖出
- 加入止损:这次的止损买有根据股票的盈亏来判断,而是:
- 记录持仓股票的每天的盈利,如果当天盈利比之前的盈利小,则不记录
- 如果当天判断的盈利已经比记录的最大盈利小20%,则止损卖出
下面?是回测结果和源代码
import numpy as np
import pandas as pd
# 导入技术分析库
import talib as tb
def initialize(context):
"""初始化函数"""
# 记录股票的收益率
g.retio = {
}
# 设置中证500为参考基准
set_benchmark('000905.XSHG')
# 使用真实价格交易
set_option('use_real_price', True)
# 设定日志级别
log.set_level('order', 'error')
# 指定周期性交易函数
run_daily(trade, 'every_bar')
def before_trading_start(context):
"""开盘前设置交易费用"""
# 设定所有类型的交易品种的交易滑点为0.02
set_slippage(FixedSlippage(0.02))
# 设定2013年前与2013年后的交易费用
dt = context.current_dt
if dt>datetime.datetime(2013,1, 1):
set_order_cost(OrderCost(
open_tax=0,
close_tax=0.001,
open_commission=0.0003,
close_commission