以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  用循环语句提交订单时返回-1  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=183607)

--  作者:jinzita99
--  发布时间:2020/12/24 11:34:02
--  用循环语句提交订单时返回-1
我用Python的循环语句提交订单,循环过程是很快的,可能在1秒内提交数笔订单,但整个循环只有第一次提交订单是成功的,其余都返回-1,翻查setting目录日志上只有成功的记录,没有不成功的记录,无法知道不成功的原因。

我目前的设置是这样的,Python公式运行在日线,固定轮询1秒,下单没有使用大单处理模式,语句如:
order_id = sell_open(contract_id,\'limit\',order_price,order_vol),选项里关于下单的设置是,
顺序下单超时等待20秒(默认),模式是‘顺序递交’。

请问,Python里提交订单有最短时间间隔吗?如果没有,可能会是什么原因导致失败?谢谢。

--  作者:yukizzc
--  发布时间:2020/12/24 11:35:13
--  

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 表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数)

--  作者:yukizzc
--  发布时间:2020/12/24 11:37:08
--  
repeat int 是否允许重复下单,默认值为0,代表不允许重复下单

 

 

默认0


--  作者:jinzita99
--  发布时间:2020/12/24 11:45:34
--  
明白,这个重复指的是一次轮询内不可重复吧?如果是就不必再回答了。谢谢。

--  作者:yukizzc
--  发布时间:2020/12/24 11:46:11
--  

一根k线内,日线周期就是日线,5分钟就是一个5分钟

 

这个你最好熟悉金字塔pel图表或者后台,都是这样的

 

如果你之前没接触,你自己吧参数改成允许重复,就是不加过滤完全自己去处理逻辑

[此贴子已经被作者于2020/12/24 11:46:56编辑过]

--  作者:jinzita99
--  发布时间:2020/12/24 11:48:38
--  
明白,谢谢。
--  作者:jinzita99
--  发布时间:2020/12/24 13:56:18
--  
请问有省略项目时该填什么,我试着填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)
--  作者:jinzita99
--  发布时间:2020/12/24 13:57:47
--  
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)

--  作者:jinzita99
--  发布时间:2020/12/24 13:59:09
--  
上面贴两次代码都被截去一部分,不知道为什么。

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)
--  作者:jinzita99
--  发布时间:2020/12/24 14:00:56
--  
被截去的部分是指定合约代码的,c,不知道为什么会自动被截去。