BigQuant使用文档

141-基于移仓换月实盘情形下的布林带期货通道突破策略

由qxiao创建,最终由qxiao 被浏览 90 用户

回测绩效

\

策略简介

我们在《127-期货布林带通道突破策略-日频》介绍了一种常见的期货CTA策略,该策略是非常经典的一个策略,常年在实盘策略排前。那篇文章里,我们交易的是某个期货品种的主力合约(8888)合约,但做个实盘的人知道,8888主力是没法交易的,我们真正实盘的时候交易的是具体的有明确交个日期的合约。

因此本策略是通过主力合约出信号,然后在具体合约上交易买卖,这和真实交易情形就是一致的了。

那么新的问题来了,持有某一个具体的合约不能一直持有,因为随时交割日临近,我们需要不断切换到下一个主力合约上,这个操作实盘叫:移仓换月。

\

策略说明

数据抽取

因为我们需要两个数据,一个是行情数据来计算指标,一个是主力合约映射关系表。所以,我们有两个数据抽取,第一个数据抽取模块(m4)是行情数据,第二个数据抽取(m5)是主力合约映射关系表。


在m2模块里,我们需要计算布林带相关指标,上轨下轨等,如下:


选择品种

这里我们选择焦煤这个品种,jm开头的合约数据都需要。如果我们想换成螺纹钢,我们换成 instrument like “RB%“

移仓换月

如果当前持仓和主力合约不是同一个标的,那我们需要进行移仓换月。如果是多头仓位,那我们先卖平旧的合约,再买开新的主力合约。

反之同理,如果是空头仓位,那我们先买平旧的合约,再卖开新的主力合约。


交易逻辑

代码见下:

buy_close、buy_open可以按照字面含义理解,买平和买开

if short_position > 0:
    if price > high_line:
        # 空头情况下,价格突破上轨
        context.buy_close(dominant_contract, short_position, price, order_type=OrderType.MARKET)
        context.buy_open(dominant_contract, context.lots, price, order_type=OrderType.MARKET)
        print(today,'先平空再开多', dominant_contract)

elif long_position > 0:
    if price < low_line:
        # 多仓情况下,价格突破下轨
        context.sell_close(dominant_contract, long_position, price, order_type=OrderType.MARKET)
        context.sell_open(dominant_contract, context.lots, price, order_type=OrderType.MARKET)
        print(today,'先平多再开空', dominant_contract)

elif curr_position == 0:
    if price > high_line:
        # 无仓位情形下,价格突破上轨
        context.buy_open(dominant_contract, context.lots, price, order_type=OrderType.MARKET)
        print(today, '空仓开多', dominant_contract)

    elif price < low_line:
        # 无仓位情形下,价格突破下轨 
        context.sell_open(dominant_contract, context.lots, price, order_type=OrderType.MARKET)
        print(today, '空仓开空', dominant_contract) 

\n

克隆链接

https://bigquant.com/codesharev3/9528d380-7b29-4bcd-b732-5a2423cbf98f

\

标签

实盘交易
评论
  • 这个策略单一品种(焦煤), 持仓几个月, 我想实盘没有人这样做吧, 大家都是加杠杆的 快进快出.
  • stockranker能否像股票那样, 对不同合约 打分预测??
  • 我现在我做出的策略, 如果不指定合约, 预测就会出现报错 AssertionError: the day is out of range!
  • 这是不是合约到期的问题?还是其他问题?
  • 有没有套利的
{link}