我用Python的循环语句提交订单,循环过程是很快的,可能在1秒内提交数笔订单,但整个循环只有第一次提交订单是成功的,其余都返回-1,翻查setting目录日志上只有成功的记录,没有不成功的记录,无法知道不成功的原因。
我目前的设置是这样的,Python公式运行在日线,固定轮询1秒,下单没有使用大单处理模式,语句如:
order_id = sell_open(contract_id,'limit',order_price,order_vol),选项里关于下单的设置是,
顺序下单超时等待20秒(默认),模式是‘顺序递交’。
请问,Python里提交订单有最短时间间隔吗?如果没有,可能会是什么原因导致失败?谢谢。
buy_open 开多(买开)
函数原型
buy_open(order_book_id,style,price,volume,amount,hedge_flag,order_queue,slithermethod,account,repeat,serial_id)
参数
参数 |
类型 |
说明 |
order_book_id |
str |
合约代码,必填项 |
style |
str |
交易类型 "Market"市价 "Limit"限价 "Stop"停损,"ThisClose"当前价,必须填 |
price |
float |
交易价格,当交易类型为"Market"市价或"ThisClose"时可以省略,其他类型必须填 |
volume |
int |
交易数量,单位期货为手,股票为股,默认参数为1 |
amount |
float |
交易金额,可以指定本次交易以交易金额为单位,软件会自动换算为相应的交易数量,可以省略 |
hedge_flag |
bool |
交易标志,默认为False, 对于期货品种 True:保值 False投机 ; 对于股票 True:融资 False普通 ;对于期权 True:备兑 False:非备兑,该标志对于回测无效 |
order_queue |
bool |
是否为队列单,默认为False,该标志对于回测无效 |
slithermethod |
bool |
指示是否使用大单处理下单模式,默认为False,该标志对于回测无效 |
account |
str |
对指定具体的交易帐号下单,若不指定帐号,对默认登录帐号下单,该标志对于回测无效 |
repeat |
int |
是否允许重复下单,默认值为0,代表不允许重复下单 |
serial_id |
int |
表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数) |
明白,这个重复指的是一次轮询内不可重复吧?如果是就不必再回答了。谢谢。
一根k线内,日线周期就是日线,5分钟就是一个5分钟
这个你最好熟悉金字塔pel图表或者后台,都是这样的
如果你之前没接触,你自己吧参数改成允许重复,就是不加过滤完全自己去处理逻辑
[此贴子已经被作者于2020/12/24 11:46:56编辑过]
请问有省略项目时该填什么,我试着填None不行,改为''也不行,能给个l例子么?谢谢。
c
style = 'limit'
order_price = get_dynainf(contract_id,7)
order_vol = 1
amount = None
hedge_flag = False
order_queue = False
slithermethod = False
account = None
repeat = 1
order_id = buy_open(contract_id,style,order_price,order_vol,amount,hedge_flag,order_queue,slithermethod,account,repeat,serial_id = 1)
print(order_id)
c
style = 'limit'
order_price = get_dynainf(contract_id,7)
order_vol = 1
amount = None
hedge_flag = False
order_queue = False
slithermethod = False
account = None
repeat = 1
order_id = buy_open(contract_id,style,order_price,order_vol,amount,hedge_flag,order_queue,slithermethod,account,repeat,serial_id = 1)
print(order_id)
上面贴两次代码都被截去一部分,不知道为什么。
c
style = 'limit'
order_price = get_dynainf(contract_id,7)
order_vol = 1
amount = None
hedge_flag = False
order_queue = False
slithermethod = False
account = None
repeat = 1
order_id = buy_open(contract_id,style,order_price,order_vol,amount,hedge_flag,order_queue,slithermethod,account,repeat,serial_id = 1)
print(order_id)
被截去的部分是指定合约代码的,c,不知道为什么会自动被截去。