同花顺Supermind量化交易 风险控制建模--二八轮动择时策略

作为策略锦集第二篇,我们以沪深A股市场出了名的“二八轮动”现象为基础,向大家介绍经典择时策略:二八轮动策略。

import pandas as pd 
import numpy as np 
# 初始化函数,全局只运行一次
def init(context):
    context.day = 20 #设置数据获取长度为20
    context.security = ['000300.SH','000905.SH']#设沪深300指数,中证500指数
    context.ETF300 = '510300.OF' #沪深300ETF基金
    context.ETF500 = '510500.OF' #中证500ETF基金
    run_weekly(handle_bar,date_rule=1)

## 开盘时运行函数
def handle_bar(context, bar_dict):
    #获取信号值
    signal=get_signal(context,bar_dict)
    hs300=signal[0]
    zz500=signal[1]
    #根据信号值,来调整至相应仓位
    #空仓
    if hs300 <= 0 and zz500 <= 0:
        if len(context.portfolio.stock_account.positions) > 0:
            for stock in list(context.portfolio.stock_account.positions):
                order_target(stock, 0)
    #沪深300
    elif hs300 > zz500:
        if context.ETF500 in list(context.portfolio.stock_account.positions):
            order_target(context.ETF500, 0)
        if len(context.portfolio.stock_account.positions) < 1:
            order_target_value(context.ETF300, context.portfolio.available_cash)
    #中证500
    elif hs300 < zz500:
        if context.ETF300 in list(context.portfolio.stock_account.positions):
            order_target(context.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值