- 精华
- 0
- 在线时间
- 21 小时
- UID
- 281621
- 积分
- 13
- 帖子
- 8
- 阅读权限
- 10
- 注册时间
- 2019-7-19
- 最后登录
- 2021-9-19
- 精华
- 0
- UID
- 281621
- 积分
- 13
- 帖子
- 8
- 主题
- 5
- 阅读权限
- 10
- 注册时间
- 2019-7-19
- 最后登录
- 2021-9-19
|
发表于 2020-10-8 11:14:35
来自手机
|显示全部楼层
import talib
fast = 12 # 快周期
slow = 26 # 慢周期
back = 9 # dea周期
qty = 10 # 下单量
macd_dx = 0.01 #macd阀值
def initialize(context):
SetOrderWay(2)
def handle_data(context):
# 等待数据就绪,否则计算果结为异常值
if len(Close()) < slow + back - 1:
return
# 计算MACD
diff, dea, macd = talib.MACD(Close(), fast, slow, back)
# 突破下单
if MarketPosition() != 1 and macd[-1] > macd_dx:
Buy(qty, Open()[-1])
elif MarketPosition() != -1 and macd[-1] < -macd_dx:
SellShort(qty, Open()[-1])
# 绘制MACD曲线
PlotStickLine('macd', 0, macd[-1], RGB_Red() if macd[-1] > 0 else RGB_Blue(), False, False)
PlotNumeric('diff', diff[-1], RGB_Red(), False, False)
PlotNumeric('dea', dea[-1], RGB_Blue(), False, False)
# 绘制盈亏曲线
PlotNumeric("profit", NetProfit() + FloatProfit() - TradeCost(), 0xcccccc, False, True)
|
|