PTrade获取交易相关函数
注意:代码精度位为3位小数的类型(后台已保护为3位),如ETF、国债;代码精度为2位小数类型,需要在传参时限制价格参数的精度,如股票。
更加详细的调用方法,后续会慢慢整理。
也可找寻博主历史文章,搜索关键词使用方案,比如本文涉及函数order!
感谢关注,咨询免费开通量化回测与获取实盘权限,欢迎和博主联系!
股票交易函数,order-按数量买卖
order(security, amount, limit_price=None)
使用场景
该函数仅在回测、交易模块可用
接口说明
该接口用于买卖指定数量为amount的股票,同时支持国债逆回购
注意事项:
1、支持交易场景的逆回购交易。委托方向为卖出(amount必须为负数),逆回购最小申购金额为1000元(10张),因此本接口amount入参应大于等于10(10张),否则会导致委托失败。
2、回测场景,amount有最小下单数量校验,股票、ETF、LOF:100股,可转债:10张;交易场景接口不做amount校验,直接报柜台。
3、交易场景如果limit_price字段不入参,系统会默认用行情快照数据最新价报单,假如行情快照获取失败会导致委托失败,系统会在日志中增加提醒。
4、由于下述原因,回测中实际买入或者卖出的股票数量有时候可能与委托设置的不一样,针对上述内容调整,系统会在日志中增加警告信息:
- 根据委托买入数量与价格经计算后的资金数量,大于当前可用资金;
- 委托卖出数量大于当前可用持仓数量;
- 每次交易股票时取整100股,交易可转债时取整10张,但是卖出所有股票时不受此限制;
- 股票停牌、股票未上市或者退市、股票不存在;
- 回测中每天结束时会取消所有未完成交易;
参数
security: 股票代码(str);
amount: 交易数量,正数表示买入,负数表示卖出(int);
limit_price:买卖限价(float);
返回
Qrder对象中的id或者None。如果创建订单成功,则返回Order对象的id,失败则返回None(str)。
示例
def initialize(context):
g.security = ['600570.SS', '000001.SZ']
set_universe(g.security)
def handle_data(context, data):
#以系统最新价委托
order('600570.SS', 100)
# 逆回购1000元
order('131810.SZ', -10)
#以39块价格下一个限价单
order('600570.SS', 100, limit_price=39)