1、做多
启动后按照设置好的开仓额度自动马上开多,用户可设置是否开仓加倍。当行情下跌后,机器人按照用户设置好的补仓倍数及满足补仓价差后进行补仓。用户可自定义补仓倍数/补仓价差(等于之前的补仓跌幅,因做空时为行情涨了补仓,因此这里叫价差)。
2、做空
启动后,按照设置好的开仓额度自动马上开空,用户可设置是否开仓加倍。当行情上涨后,机器人按照用户设置好的补仓倍数及满足补仓价差后进行补仓。用户可自定义补仓倍数/补仓价差(等于之前的补仓跌幅,因做空时为行情涨了补仓,因此这里叫价差)。
备注:目前做多做空只开通一倍(之后可以开通最高 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])
).values
return 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']
if len(dateList) != len(leadingList):
sys.exit('dismatch')
for ii in range(len(leadingList)):
if dateList[ii][0] <= int(date) <= dateList[ii][1]:
return leadingList[ii]
return False
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))
~~