量化合约对冲交易 app 系统开发源代码
1、做多
启动后按照设置好的开仓额度自动马上开多,系统开发 I34-案例 I633-演示 53I9,用户可设置是否开仓加倍。当行情下跌后,机器人按照用户设置好的补仓倍数及满足补仓价差后进行补仓。用户可自定义补仓倍数/补仓价差(等于之前的补仓跌幅,因做空时为行情涨了补仓,因此这里叫价差)。
2、做空
启动后,按照设置好的开仓额度自动马上开空,系统开发 I34-案例 I633-演示 53I9,用户可设置是否开仓加倍。当行情上涨后,机器人按照用户设置好的补仓倍数及满足补仓价差后进行补仓。用户可自定义补仓倍数/补仓价差(等于之前的补仓跌幅,因做空时为行情涨了补仓,因此这里叫价差)。
备注:目前做多做空只开通一倍(之后可以开通最高 10 倍,开通高倍率后,用户设置补仓价差不得高于倍数的 80%,因高倍率有爆仓涨幅或跌幅,如 10 倍,涨跌 10 个点即爆仓,设置补仓价差不得高于 8).与做现货一样,只是多了一个方向选择,因现货每次的买入都看涨,等于合约里面的做多,而合约可以在行情相对熊市时做空。让用户多一些选择。但因合约高杠杆倍数存在爆仓风险,用户谨慎使用。
3、多空
启动后按照设置好的开仓额度多空同时建仓,上涨时做多单不断买入卖出实现盈利(止盈加回调平仓),此时做空采用补仓价差➕趋势补仓,下跌时做空单不断买入卖出实现盈利(止盈加回调平仓),此时做多采用补仓价差➕趋势补仓。
// base_dict.py
import sys
def price_lis(mktdata, key):y_10_price = mktdata.groupby('mktdate', group_keys=False, sort=False)[key].apply(lambda x: -x.diff(-10).fillna(x - x.iloc[-1])).valuesreturn y_10_price}
fees_dic = {'IF00': 0.23/10000,'rb00': 0.5 * 1/10000,'ru00': -0.75,'ag00': 0.05 * 1/1000 * 1/2 * 1,'v00': -1 * 0.3,'TA00': -2.1,'CF00': -3.01,'i00': 1/10000,'sn00': -1.5,'p00': -2.5 * 0.6,'zn00': -3 * 0.5 * 0.5,'eg00': -3 * 0.3,}
instrument_dic = {'IF00': {'price_tick': 0.2,'factor': 300,def dateToContract(instrument, date):dateList = instrument_dic[instrument]['date_list']leadingList = instrument_dic[instrument]['leading_list']
import numpy as np
def clear_off_trading(df, axis, off_range=[(23000000, 90000000), # (230000000, 240000000),(113000000, 133000000), (150000000, 210000000)]):mask = np.zeros(len(df), dtype=bool)for r in off_range:mask |= (df[axis] > r[0]) & (df[axis] < r[1])df.drop(df.index[mask], axis=0, inplace=True)
if name == 'main':v00_main_contract = dateToContract(instrument='v00', date='20221020')eg00_main_contract = dateToContract(instrument='eg00', date='20221020')print("v00_main_contract: " + str(v00_main_contract))print("eg00_main_contract: " + str(eg00_main_contract))
~~
评论