跨期套利系统是一种在同益市场中利用标的相同、交割月份不同的商品期货合约进行长短期套利的策略。这种系统主要关注合约之间的价差,能够在一定程度上降低单个期货合约价格剧烈变动所带来的风险。跨期套利的策略主要分为两种类型:牛市跨期套利和熊市跨期套利。
在牛市跨期套利中,投资者判断市场价格将上涨,因此他们可能会采取做多远月合约、做空近月合约的组合进行套利。
在熊市跨期套利中,投资者判断市场价格将下跌,因此他们可能会采取做空远月合约、做多近月合约的组合进行套利。
跨期套利的操作主要基于对价差未来走势的判断。例如,如果近月价格上涨幅度大于远月价格上涨幅度,即价差变大,投资者可能会选择买近卖远的组合,反之则可能选择卖近买远的组合。
在进行跨期套利时,需要进行一些计算和策略设计。例如,计算价差的上下轨,以确定交易的信号。当价差上穿上轨时,会产生买入信号,可以考虑买近卖远的组合;当价差下穿下轨时,会产生卖出信号,可以考虑卖近买远的组合。
此外,为了评估价差是否合理,还可以使用一些方法,如模拟交割法、均值法等。这些方法可以帮助投资者判断价差的均衡水平,从而更好地制定跨期套利的策略。
总的来说,跨期套利系统是一种利用期货合约价差进行套利的投资策略,其关键在于对价差的准确预测和策略的合理设计。
def init(context):
context.goods = ['DCE.m1801', 'DCE.m1805']
# 订阅品种数据
subscribe(symbols = context.goods,frequency = '1d',count = 31,wait_group = True)
def on_bar(context, bars):
# 获取历史数据
close_1801 = context.data(symbol=context.goods[0], frequency='1d', count=31, fields='close')['close'].values
close_1805 = context.data(symbol=context.goods[1], frequency='1d', count=31, fields='close')['close'].values
# 计算上下轨
spread = close_1801[:-2] - close_1805[:-2]
spread_new = close_1801[-1] - close_1805[-1]
up = np.mean(spread) + 0.75 * np.std(spread)
down = np.mean(spread) - 0.75 * np.std(spread)
up_stop = np.mean(spread) + 2 * np.std(spread)
down_stop = np.mean(spread) - 2 * np.std(spread)
# 获取仓位
position1801_long = context.account().position(symbol = context.goods[0],side =PositionSide_Long)
position1801_short = context.account().position(symbol = context.goods[0],side =PositionSide_Short)
# 没有仓位时
if not position1801_short and not position1801_long:
# 上穿上轨时,买近卖远
if spread_new > up:
order_volume(symbol=context.goods[0], volume=1, order_type=OrderType_Market, side=OrderSide_Buy, position_effect=PositionEffect_Open)
order_volume(symbol=context.goods[1], volume=1, order_type=OrderType_Market, side=OrderSide_Sell, position_effect=PositionEffect_Open)
print('上穿上轨,买近卖远')