前言
今天要讲的是关于股票交易的函数,主要分为了三个章节来讲,感兴趣的小伙伴可以在专栏下面查看完整版的!
具体的开通渠道可以看文章末尾!
一、order_target_value —— 指定持仓市值买卖
主要是用来按照持仓市值来买卖股票的
注意事项:
1、该函数不支持逆回购交易。
2、该函数在委托股票时取整100股,委托可转债时取整10张。
3、交易场景如果limit_price字段不入参,系统会默认用行情快照数据最新价报单,假如行情快照获取失败会导致委托失败,系统会在日志中增加提醒。
4、因可能造成重复下单,因此建议在交易中谨慎使用该接口。具体原因如下:
1.柜台返回持仓数据体现当日变化(由柜台配置决定):交易场景中持仓信息同步有时滞,一般在6秒左右,假如在这6秒之内连续下单两笔或更多order_target_value委托,由于持仓市值不会瞬时更新,会造成重复下单。
2.柜台返回持仓数据体现当日变化(由柜台配置决定):第一笔委托未完全成交,如果不对第一笔做撤单再次order_target_value相同的委托目标金额,引擎不会计算包括在途的总委托数量,也会造成重复下单。
3.柜台返回持仓数据不体现当日变化(由柜台配置决定):这种情况下持仓金额只会一天同步一次,必然会造成重复下单。
针对以上几种情况,假如要在交易场景使用该接口,首先要确定券商柜台的配置,是否实时更新持仓情况,其次需要增加订单和持仓同步的管理,来配合order_target_value使用。
示例
def initialize(context):
g.security = ['600570.SS', '000001.SZ']
set_universe(g.security)
def handle_data(context, data):
#买卖股票到指定价值
order_target_value('600570.SS', 10000)
#卖出当前所有恒生电子的股票
if data['600570.SS']['close'] > 39:
order_target_value('600570.SS', 0)
二、order_market —— 按市价进行委托
用于使用多种市价进行委托
注意事项:
1、支持逆回购交易。委托方向为卖出(amount必须为负数),逆回购最小申购金额为1000元(10张),因此本接口amount入参应大于等于10(10张),否则会导致委托失败。
2、不支持可转债交易。
3、该函数中market_type是必传字段,如不传入参数会出现报错。
参数
security:股票代码(str);
amount:交易数量,正数表示买入,负数表示卖出(int);
market_type:市价委托类型,上证非科创板股票支持参数1、4,上证科创板股票支持参数0、1、2、4,深证股票支持参数0、2、3、4、5,必传参数(int)
limit_price:保护限价(仅限科创板代码)(float);
0:对手方最优价格;
1:最优五档即时成交剩余转限价;
2:本方最优价格;
3:即时成交剩余撤销;
4:最优五档即时成交剩余撤销;
5:全额成交或撤单;
示例
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
security = g.security
order_market(security, 100, 1)
三、ipo_stocks_order —— 新股一键申购
ipo_stocks_order(market_type=None, black_stocks=None)
主要是用来一键申购当日全部新股
注意事项:
申购黑名单的股票代码必须为申购代码,代码可以是6位数(不带尾缀),也可以带尾缀入参,比如:black_stocks='787001'或black_stocks='787001.SS'。
示例
import time
def initialize(context):
g.security = "600570.SS"
set_universe(g.security)
g.flag = False
def before_trading_start(context, data):
g.flag = False
def handle_data(context, data):
if not g.flag:
# 上证普通代码
log.info("申购上证普通代码:")
ipo_stocks_order(market_type=0)
time.sleep(5)
# 上证科创板代码
log.info("申购上证科创板代码:")
ipo_stocks_order(market_type=1)
time.sleep(5)
# 深证普通代码
log.info("申购深证普通代码:")
ipo_stocks_order(market_type=2)
time.sleep(5)
# 深证创业板代码
log.info("申购深证创业板代码:")
ipo_stocks_order(market_type=3)
time.sleep(5)
# 可转债代码
log.info("申购可转债代码:")
ipo_stocks_order(market_type=4)
time.sleep(5)
g.flag = True