金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1413|回复: 16

请教python平多sell_close问题

[复制链接]

13

主题

55

帖子

55

积分

Rank: 2

等级: 标准版

注册:
2024-2-25
曾用名:
发表于 2024-6-5 09:13 | 显示全部楼层 |阅读模式
请教老师:
1.如果我之前先后下了两次开多单,当日想平第一次的多单,因为不知道第一次多单有没有全部成交,第一次下的多单成交了几手现在就想平多几手,应该怎么写代码呢?
2.手册说buy_open函数返回委托订单号,那么能直接在下单的同时获得这个委托订单号吗,象这样:“委托订单号=buy_open(......)”,省掉get_order_id函数?如果不能省,get_order_id怎么区分取第一次多单的委托订单号还是取第二次的呢?
3.下单后获得的委托订单号,如果成交了,第二天想平的话,这个委托订单号还能使用吗?如果不能,卖平多应该怎么写实现卖昨天第一次委托的成交单呢?
    谢谢!
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-6-5 09:51 | 显示全部楼层
1.get_orders  用这个获取委托列表。

然后找到第一笔单子,获取订单id。再用get_orders_id 读取这个订单的情况。

2.下单时候 会直接返回订单id的,如果下单成功的话。

3.不能了,那个都是当日有效的。  “卖平多应该怎么写实现卖昨天第一次委托的成交单呢” 那你只能自己记录下每天第一笔手数,然后第二天按这个手数平了。  所以下的单子都是汇总的,你能区分的只有手数。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

13

主题

55

帖子

55

积分

Rank: 2

等级: 标准版

注册:
2024-2-25
曾用名:
 楼主| 发表于 2024-6-5 10:30 | 显示全部楼层
感谢解答。再问一下,
1.能在开多单的同时记录下委托订单ID吗?比如如下代码能不能同时实现下单指令并记录下委托订单ID?
    WTID=buy_open('SQRU09','limit',15000,5,repeat=1,serial_id = 1)
2.上面这行代码中repeat设为0和设为1有什么区别,麻烦讲解一下,没搞明白。
谢谢!
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-6-5 13:03 | 显示全部楼层
1.下单函数的返回值就是订单id啊。直接获取就行了。
2. 说明里有说明的:
是否允许重复下单,默认值为0,代表不允许重复下单

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

13

主题

55

帖子

55

积分

Rank: 2

等级: 标准版

注册:
2024-2-25
曾用名:
 楼主| 发表于 2024-6-5 13:41 | 显示全部楼层
1.这个说明看不明白啊,什么是重复下单呢?repeat设为1,在上一个委托单未成交,未撤单的情况下会怎么样?程序再自动给下一次?那不乱套了啊
2.handle_bar里能不能根据条件触发def order_status(context,order),然后在后者里面对待定ID的已成交的委托订单平仓?我试了下,图片中这一行报错“name 'order' is not defined”,是怎么回事呢?
截图202406051340535448.png
回复

使用道具 举报

34

主题

9212

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-6-5 14:25 | 显示全部楼层
air 发表于 2024-6-5 13:41
1.这个说明看不明白啊,什么是重复下单呢?repeat设为1,在上一个委托单未成交,未撤单的情况下会怎么样? ...

1. 重复下单是指同一个开平语句在一根k上每执行一次就下一次单。正常不会选择重复的。一般都是用于拆单操作。和撤不撤单没有关系。
2.order_status是事件方法,事件不能嵌套使用。其次是order_status本身当有回报等订单信息返回时就会自动执行内部函数。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

13

主题

55

帖子

55

积分

Rank: 2

等级: 标准版

注册:
2024-2-25
曾用名:
 楼主| 发表于 2024-6-5 14:41 | 显示全部楼层
谢谢老师解答。请指教这个想法怎么实现:
我开多时在dataframe中记录了委托订单号,后面条件成立的时候我要卖出平多这笔持仓,那就要判断这笔委托成交了几手,sell_close中用这个做卖出数量。怎样取得这个订单号的成交数量呢?
回复

使用道具 举报

34

主题

9212

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-6-5 14:54 | 显示全部楼层
get_orders_id
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

13

主题

55

帖子

55

积分

Rank: 2

等级: 标准版

注册:
2024-2-25
曾用名:
 楼主| 发表于 2024-6-6 12:51 | 显示全部楼层
感谢解答。再请问一下,我用buy_open开多10手,记录下委托订单号,成交了5手,这时候我用cancel_order (order_id)取消剩下的5手委托,可以吗?会报错吗?
另一个问题是,什么样的报错会中止策略运行,什么报错不会中止策略运行?

补充内容 (2024-6-6 12:52):
上面问的是实盘中哈,实盘中什么报错会中止策略执行?什么报错不会中止?因为这个测试不了。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-6-6 13:17 | 显示全部楼层
1.能撤单
2.所有在程序中未处理的报错都会终止程序。    你自己在py代码里使用代码主动抛出一个错误 就能测试到。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-12-29 05:41 , Processed in 0.206679 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表