相关类: futures.py
from guanlan_core.trader import utility
from guanlan_core.trader.constant import Offset
from guanlan_core.trader.object import TradeData
# 通过Json读取连接参数
FUTURES_FILENAME = "futures.json"
futures_data: dict = utility.load_json(FUTURES_FILENAME)
def get_future(symbol):
"""获取合约基本信息"""
# 存在则返回
if symbol not in futures_data:
return None
return futures_data[symbol]
def edit_symbol(symbol: str, attr: str, value: str) -> tuple[bool, str]:
if symbol not in futures_data:
return False, "期货品种不存在"
"""属性编辑"""
futures_data[symbol][attr] = value
utility.save_json(FUTURES_FILENAME, futures_data)
return True, "期货信息编辑成功"
def save_futures():
utility.save_json(FUTURES_FILENAME, futures_data)
def commission(trade: TradeData, future: dict = None) -> float:
if future is None:
code = utility.get_commodity_code(trade.symbol).upper()
future = get_future(code)
# 合约乘数
size = future['size']
# 开仓
if trade.offset == Offset.OPEN:
# x%%比例手续费
if future['open_ratio'] != 0:
return future['open_ratio'] * trade.price * trade.volume * 0.0001 * size
# 固定手续费
else:
return future['open']
# 平今
elif trade.offset == Offset.CLOSETODAY:
# x%%比例手续费
if future['close_today_ratio'] != 0:
return future['close_today_ratio'] * trade.price * trade.volume * 0.0001 * size
# 固定手续费
else:
return future['close_today']
# 平昨,或其它
else:
# x%%比例手续费
if future['close_ratio'] != 0:
return future['close_ratio'] * trade.price * trade.volume * 0.0001 * size
# 固定手续费
else:
return future['close']
futures.json
{
"IF":{"name":"沪深300","exchange":"CFFEX","tick":0.2,"size":300,"vt_symbol":"","open_ratio":0.23,"open":0,"close_ratio":0.23,"close":0,"close_today_ratio":2.3,"close_today":0,"sina_key":"qz_qh"},
"IC":{"name":"中证500","exchange":"CFFEX","tick":0.2,"size":200,"vt_symbol":"","open_ratio":0.23,"open":0,"close_ratio":0.23,"close":0,"close_today_ratio":2.3,"close_today":0,"sina_key":"zzgz_qh"},
"IH":{"name":"上证50","exchange":"CFFEX","tick":0.2,"size":300,"vt_symbol":"","open_ratio":0.23,"open":0,"close_ratio":0.23,"close":0,"close_today_ratio":2.3,"close_today":0,"sina_key":"szgz_qh"},
"IM":{"name":"中证1000","exchange":"CFFEX","tick":0.2,"size":200,"vt_symbol":"","open_ratio":0.23,"open":0,"close_ratio":0.23,"close":0,"close_today_ratio":2.3,"close_today":0,"sina_key":"im_qh"},
"T":{"name":"十年国债","exchange":"CFFEX","tick":0.005,"size":10000,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":0,"sina_key":"sngz_qh"},
"TF":{"name":"五年国债","exchange":"CFFEX","tick":0.005,"size":10000,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":0,"sina_key":"gz_qh"},
"TS":{"name":"二年国债","exchange":"CFFEX","tick":0.005,"size":20000,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":0,"sina_key":"engz_qh"},
"TL":{"name":"三十年国债","exchange":"CFFEX","tick":0.01,"size":10000,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":0,"sina_key":"tl_qh"},
"AU":{"name":"沪金","exchange":"SHFE","tick":0.02,"size":1000,"vt_symbol":"","open_ratio":0,"open":10,"close_ratio":0,"close":10,"close_today_ratio":0,"close_today":10,"sina_key":"hj_qh"},
"AG":{"name":"沪银","exchange":"SHFE","tick":1,"size":15,"vt_symbol":"","open_ratio":0.5,"open":0,"close_ratio":0.5,"close":0,"close_today_ratio":0.5,"close_today":0,"sina_key":"by_qh"},
"CU":{"name":"沪铜","exchange":"SHFE","tick":10,"size":5,"vt_symbol":"","open_ratio":0.5,"open":0,"close_ratio":0.5,"close":0,"close_today_ratio":1,"close_today":0,"sina_key":"tong_qh"},
"AL":{"name":"沪铝","exchange":"SHFE","tick":5,"size":5,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":3,"sina_key":"lv_qh"},
"ZN":{"name":"沪锌","exchange":"SHFE","tick":5,"size":5,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":0,"sina_key":"xing_qh"},
"PB":{"name":"沪铅","exchange":"SHFE","tick":5,"size":5,"vt_symbol":"","open_ratio":0.4,"open":0,"close_ratio":0.4,"close":0,"close_today_ratio":0,"close_today":0,"sina_key":"qian_qh"},
"NI":{"name":"沪镍","exchange":"SHFE","tick":10,"size":1,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":3,"sina_key":"ni_qh"},
"SN":{"name":"沪锡","exchange":"SHFE","tick":10,"size":1,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":3,"sina_key":"xi_qh"},
"RB":{"name":"螺纹钢","exchange":"SHFE","tick":1,"size":10,"vt_symbol":"","open_ratio":3,"open":0,"close_ratio":3,"close":0,"close_today_ratio":3,"close_today":0,"sina_key":"lwg_qh"},
"WR":{"name":"线材","exchange":"SHFE","tick":1,"size":10,"vt_symbol":"","open_ratio":0.4,"open":0,"close_ratio":0.4,"close":0,"close_today_ratio":0,"close_today":0,"sina_key":"xc_qh"},
"I":{"name":"铁矿石","exchange":"DCE","tick":0.5,"size":100,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":2,"close_today":0,"sina_key":"tks_qh"},
"HC":{"name":"热卷","exchange":"SHFE","tick":1,"size":10,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":1,"close_today":0,"sina_key":"rzjb_qh"},
"SS":{"name":"不锈钢","exchange":"SHFE","tick":5,"size":5,"vt_symbol":"","open_ratio":0,"open":2,"close_ratio":0,"close":2,"close_today_ratio":0,"close_today":0,"sina_key":"bxg_qh"},
"SF":{"name":"硅铁","exchange":"CZCE","tick":2,"size":5,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":0,"sina_key":"gt_qh"},
"SM":{"name":"锰硅","exchange":"CZCE","tick":2,"size":5,"vt_symbol":"","open_ratio":0,"open":0,"close_ratio":0,"close":0,"close_today_ratio":0,"close_today":0,"sina_key":"mg_qh"},
"JM":{"name":"焦煤","exchange":"DCE","tick":0.5,"size":60,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":3,"close_today":0,"sina_key":"jm_qh"},
"J":{"name":"焦炭","exchange":"DCE","tick":0.5,"size":100,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":1.4,"close_today":0,"sina_key":"jt_qh"},
"FG":{"name":"玻璃","exchange":"CZCE","tick":1,"size":20,"vt_symbol":"","open_ratio":0,"open":6,"close_ratio":0,"close":6,"close_today_ratio":0,"close_today":6,"sina_key":"bl_qh"},
"SP":{"name":"纸浆","exchange":"SHFE","tick":2,"size":10,"vt_symbol":"","open_ratio":0.5,"open":0,"close_ratio":0.5,"close":0,"close_today_ratio":0,"close_today":0,"sina_key":"zj_qh"},
"FU":{"name":"燃油","exchange":"SHFE","tick":1,"size":10,"vt_symbol":"","open_ratio":0.5,"open":0,"close_ratio":0.5,"close":0,"close_today_ratio":0,"close_today":0,"sina_key":"ry_qh"},
"LU":{"name":"低硫燃油","exchange":"SHFE","tick":1,"size":10,"vt_symbol":"","open_ratio":0.1,"open":0,"close_ratio":0.1,"close":0,"close_today_ratio":0.1,"close_today":0,"sina_key":"lu_qh"},
"SC":{"name":"原油","exchange":"SHFE","tick":0.1,"size":1000,"vt_symbol":"","open_ratio":0,"open":20,"close_ratio":0,"close":20,"close_today_ratio":0,"close_today":0,"sina_key":"yy_qh"},
"BC":{"name":"国际铜","exchange":"SHFE","tick":10,"size":5,"vt_symbol":"","open_ratio":0.1,"open":0,"close_ratio":0.1,"close":0,"close_today_ratio":0,"close_today":0,"sina_key":"bc_qh"},
"EC":{"name":"欧运航线","exchange":"SHFE","tick":0.1,"size":50,"vt_symbol":"","open_ratio":6,"open":0,"close_ratio":6,"close":0,"close_today_ratio":12,"close_today":0,"sina_key":"ec_qh"},
"BU":{"name":"沥青","exchange":"SHFE","tick":1,"size":10,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":1,"close_today":0,"sina_key":"lq_qh"},
"PG":{"name":"LPG","exchange":"DCE","tick":1,"size":20,"vt_symbol":"","open_ratio":0,"open":6,"close_ratio":0,"close":6,"close_today_ratio":0,"close_today":6,"sina_key":"pg_qh"},
"RU":{"name":"橡胶","exchange":"SHFE","tick":5,"size":10,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":0,"sina_key":"xj_qh"},
"NR":{"name":"20号胶","exchange":"SHFE","tick":5,"size":10,"vt_symbol":"","open_ratio":0.2,"open":0,"close_ratio":0.2,"close":0,"close_today_ratio":0,"close_today":0,"sina_key":"ehj_qh"},
"L":{"name":"塑料","exchange":"DCE","tick":1,"size":5,"vt_symbol":"","open_ratio":0,"open":1,"close_ratio":0,"close":1,"close_today_ratio":0,"close_today":1,"sina_key":"lldpe_qh"},
"TA":{"name":"PTA","exchange":"CZCE","tick":2,"size":5,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":0,"sina_key":"pta_qh"},
"V":{"name":"PVC","exchange":"DCE","tick":1,"size":5,"vt_symbol":"","open_ratio":0,"open":1,"close_ratio":0,"close":1,"close_today_ratio":0,"close_today":1,"sina_key":"pvc_qh"},
"EG":{"name":"乙二醇","exchange":"DCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":0,"close_ratio":0,"close":0,"close_today_ratio":0,"close_today":0,"sina_key":"yec_qh"},
"MA":{"name":"甲醇","exchange":"CZCE","tick":1,"size":10,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":1,"close_today":0,"sina_key":"zc_qh"},
"PP":{"name":"聚丙烯","exchange":"DCE","tick":1,"size":5,"vt_symbol":"","open_ratio":0,"open":1,"close_ratio":0,"close":1,"close_today_ratio":0,"close_today":1,"sina_key":"jbx_qh"},
"EB":{"name":"苯乙烯","exchange":"DCE","tick":1,"size":5,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":3,"sina_key":"byx_qh"},
"UR":{"name":"尿素","exchange":"CZCE","tick":1,"size":20,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":1,"close_today":0,"sina_key":"ns_qh"},
"SA":{"name":"纯碱","exchange":"CZCE","tick":1,"size":20,"vt_symbol":"","open_ratio":4,"open":0,"close_ratio":4,"close":0,"close_today_ratio":4,"close_today":0,"sina_key":"cj_qh"},
"C":{"name":"玉米","exchange":"DCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":1.2,"close_ratio":0,"close":1.2,"close_today_ratio":0,"close_today":1.2,"sina_key":"hym_qh"},
"A":{"name":"豆一","exchange":"DCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":2,"close_ratio":0,"close":2,"close_today_ratio":0,"close_today":2,"sina_key":"dd_qh"},
"CS":{"name":"玉米淀粉","exchange":"DCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":1.5,"close_ratio":0,"close":1.5,"close_today_ratio":0,"close_today":1.5,"sina_key":"ymdf_qh"},
"B":{"name":"豆二","exchange":"DCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":1,"close_ratio":0,"close":1,"close_today_ratio":0,"close_today":1,"sina_key":"de_qh"},
"M":{"name":"豆粕","exchange":"DCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":1.5,"close_ratio":0,"close":1.5,"close_today_ratio":0,"close_today":1.5,"sina_key":"dp_qh"},
"Y":{"name":"豆油","exchange":"DCE","tick":2,"size":10,"vt_symbol":"","open_ratio":0,"open":2.5,"close_ratio":0,"close":2.5,"close_today_ratio":0,"close_today":2.5,"sina_key":"dy_qh"},
"RS":{"name":"菜籽","exchange":"CZCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":2,"close_ratio":0,"close":2,"close_today_ratio":0,"close_today":2,"sina_key":"ycz_qh"},
"RM":{"name":"菜粕","exchange":"CZCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":1.5,"close_ratio":0,"close":1.5,"close_today_ratio":0,"close_today":1.5,"sina_key":"czp_qh"},
"OI":{"name":"菜油","exchange":"CZCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":2,"close_ratio":0,"close":2,"close_today_ratio":0,"close_today":2,"sina_key":"czy_qh"},
"P":{"name":"棕榈油","exchange":"DCE","tick":2,"size":10,"vt_symbol":"","open_ratio":0,"open":2.5,"close_ratio":0,"close":2.5,"close_today_ratio":0,"close_today":2.5,"sina_key":"zly_qh"},
"CF":{"name":"棉花","exchange":"CZCE","tick":5,"size":5,"vt_symbol":"","open_ratio":0,"open":4.3,"close_ratio":0,"close":4.3,"close_today_ratio":0,"close_today":0,"sina_key":"mh_qh"},
"SR":{"name":"白糖","exchange":"CZCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":0,"sina_key":"bst_qh"},
"JD":{"name":"鸡蛋","exchange":"CZCE","tick":1,"size":10,"vt_symbol":"","open_ratio":1.5,"open":0,"close_ratio":1.5,"close":0,"close_today_ratio":0,"close_today":1.5,"sina_key":"jd_qh"},
"AP":{"name":"苹果","exchange":"CZCE","tick":1,"size":10,"vt_symbol":"","open_ratio":0,"open":5,"close_ratio":0,"close":5,"close_today_ratio":0,"close_today":20,"sina_key":"xpg_qh"},
"CJ":{"name":"红枣","exchange":"CZCE","tick":5,"size":5,"vt_symbol":"","open_ratio":0,"open":10,"close_ratio":0,"close":10,"close_today_ratio":0,"close_today":10,"sina_key":"hz_qh"},
"PF":{"name":"短纤","exchange":"CZCE","tick":2,"size":5,"vt_symbol":"","open_ratio":0,"open":3,"close_ratio":0,"close":3,"close_today_ratio":0,"close_today":3,"sina_key":"pf_qh"},
"PK":{"name":"花生","exchange":"CZCE","tick":2,"size":5,"vt_symbol":"","open_ratio":0,"open":4,"close_ratio":0,"close":4,"close_today_ratio":0,"close_today":4,"sina_key":"pk_qh"},
"AO":{"name":"氧化铝","exchange":"SHFE","tick":1,"size":20,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":1,"close_today":0,"sina_key":"ao_qh"},
"LC":{"name":"碳酸锂","exchange":"GFEXE","tick":50,"size":1,"vt_symbol":"","open_ratio":1.6,"open":0,"close_ratio":1.6,"close":0,"close_today_ratio":1.6,"close_today":0,"sina_key":"lc_qh"},
"SI":{"name":"工业硅","exchange":"GFEXE","tick":5,"size":5,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":0,"close_today":0,"sina_key":"si_qh"},
"BR":{"name":"丁二烯橡胶","exchange":"SHFE","tick":5,"size":5,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":1,"close_today":0,"sina_key":"br_qh"},
"LH":{"name":"生猪","exchange":"DCE","tick":5,"size":16,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":2,"close_today":0,"sina_key":"lh_qh"},
"PX":{"name":"对二甲苯","exchange":"CZCE","tick":2,"size":5,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":1,"close_today":0,"sina_key":"px_qh"},
"SH":{"name":"烧碱","exchange":"CZCE","tick":1,"size":30,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":0,"close_today":1,"sina_key":"sh_qh"},
"FB":{"name":"纤维板","exchange":"DCE","tick":0.5,"size":10,"vt_symbol":"","open_ratio":1,"open":0,"close_ratio":1,"close":0,"close_today_ratio":1,"close_today":0,"sina_key":"xwb_qh"},
"CY":{"name":"棉纱","exchange":"CZCE","tick":5,"size":5,"vt_symbol":"","open_ratio":0,"open":4,"close_ratio":0,"close":4,"close_today_ratio":0,"close_today":0,"sina_key":"ms_qh"}
}