聚宽源码04

动量策略

# 导入函数库
from jqdata import * 
import talib

def initialize(context):
    # 设置参数
    set_parameter(context)
    # 设定基准银华日利,在多品种的回测当中基准没有参考意义
    set_benchmark('511880.XSHG')
    # 开启动态复权模式(真实价格)
    set_option('use_real_price', True)
    # 过滤掉order系列API产生的比error级别低的log
    log.set_level('order', 'error')
    ### 期货相关设定 ###
    # 设定账户为金融账户
    set_subportfolios([SubPortfolioConfig(cash=context.portfolio.starting_cash, type='futures')])
    # 期货类每笔交易时的手续费是:买入时万分之0.5,卖出时万分之0.5,平今仓为万分之5
    set_order_cost(OrderCost(open_commission=0.00005, close_commission=0.00005,close_today_commission=0.00005), type='index_futures')
    # 设定保证金比例
    set_option('futures_margin_rate', 0.15)
    # 设置滑点(单边万5,双边千1)
    set_slippage(PriceRelatedSlippage(0.001),type='future')
    # 开盘前运行
    run_daily( before_market_open, time='before_open', reference_security=get_future_code('RB'))
    # 开盘时运行
    run_weekly( market_open, 1,time='open', reference_security=get_future_code('RB'))
    # 交易运行 
    run_weekly(Trade, 1, time='open', reference_security=get_future_code('RB'))
    # 收盘后运行
    run_daily( after_market_close, time='after_close', reference_security=get_future_code('RB'))
    
    
    

   # 参数设置函数
def set_parameter(context):
    
    #######变量设置########
    g.LastRealPrice = {} # 最新真实合约价格字典(用于吊灯止损)
    g.HighPrice = {} # 各品种最高价字典(用于吊灯止损)
    g.LowPrice = {} # 各品种最低价字典(用于吊灯止损)
    g.future_list = []  # 设置期货品种列表
    g.TradeLots = {}  # 各品种的交易手数信息
    g.PriceArray = {} # 信号计算价格字典
    g.Price_dict = {} # 各品种价格列表字典
    g.Times = {} # 计数器(用于防止止损重入)
    g.Reentry_long = False # 止损后重入标记
    g.Reentry_short = False # 止损后重入标记
    g.MappingReal = {} # 真实合约映射(key为symbol,value为主力合约)
    g.MappingIndex = {} # 指数合约映射 (key为 symbol,value为指数合约
    g.StatusTimer = {} # 当前状态计数器
    g.ATR = {}
    g.CurrentPrice = {}
    g.Price_DaysAgo = {}
    g.Momentum = {}
    g.Signal = {}
    g.ClosePrice = {}

    #######参数设置########
    g.HoldingWeek = 1 # 持有窗口长度
    g.Timer = 0
    g.BackWindow = 10 # 回溯窗口长度
    g.Cross = 0 # 均线交叉判定信号
    g.MarginRate = 0.15 
    # 交易的期货品种信息
    g.instruments = ['AL','NI','CU','AG','RU','MA','PP','TA','L','V','M','A','P','Y','OI','C','CS','JD','SR','HC','J','I','SF','RB','ZC','FG']
    # 价格列表初始化
    set_future_list(context)


def set_future_list(context):
    for ins in g.instruments:
        idx = get_future_code(ins)
        dom = get_dominant_future(ins)
        # 填充映射字典
        g.MappingIndex[ins] = idx
        g.MappingReal[ins] = dom
        g.StatusTimer[ins] = 0
        #设置主力合约已上市的品种基本参数
        if dom == '':
            pass
        else:

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值