前言
今天主要是分享公共交易函数,分成三部分来和大家分享!
具体的开通渠道可以看文章末尾!
一、order_tick - tick——行情触发买卖
order_tick(sid, amount, priceGear='1', limit_price=None)
这个函数主要用于在tick_data模块中进行买卖股票下单,可设定价格档位进行委托。
注意事项:
该函数只能在tick_data模块中使用
参数
sid:股票代码(str);
amount:交易数量,正数表示买入,负数表示卖出(int)
priceGear:盘口档位,level1:1~5买档/-1~-5卖档,level2:1~10买档/-1~-10卖档(str)
limit_price:买卖限价,当输入参数中也包含priceGear时,下单价格以limit_price为主(float);
示例
def initialize(context):
g.security = "600570.SS"
set_universe(g.security)
def tick_data(context,data):
security = g.security
current_price = eval(data[security]['tick']['bid_grp'][0])[1][0]
if current_price > 56 and current_price < 57:
# 以买一档下单
order_tick(g.security, -100, "1")
# 以卖二档下单
order_tick(g.security, 100, "-2")
# 以指定价格下单
order_tick(g.security, 100, limit_price=56.5)
def handle_data(context, data):
pass
二、cancel_order —— 撤单
主要作用就是用来撤单的,根据order对象或者order_id取消订单
示例
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
_id = order(g.security, 100)
cancel_order(_id)
log.info(get_order(_id))
三、cancel_order_ex —— 撤单
同样是用来撤销订单的,但是根据不同,根据get_all_order返回列表中的单个字典取消订单。
注意事项:
该函数仅可撤get_all_orders函数返回的可撤状态订单。
账户多个交易运行时调用该函数会撤销其他交易产生的订单,可能对其他正在运行的交易策略产生影响。
示例
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
g.count = 0
def handle_data(context, data):
if g.count == 0:
log.info("当日全部订单为:%s" % get_all_orders())
# 遍历账户当日全部订单,对已报、部成状态订单进行撤单操作
for _order in get_all_orders():
if _order['status'] in ['2', '7']:
cancel_order_ex(_order)
if g.count == 1:
# 查看撤单是否成功
log.info("当日全部订单为:%s" % get_all_orders())
g.count += 1