金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 阿白67544

python开平仓执行时间

[复制链接]

3

主题

791

帖子

832

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2024-9-27 16:08 | 显示全部楼层

1. 你在sell_colse语句前面也增加一个日志输出。顺带把行情时间也带上。
2. 你有没有使用order_status这个事件方法。


根据系统日志中记录的内容看,
sell_colse的回报ID在59:54.164就已经完成报单。即使是阻塞形式,sell_colse函数也已经结束了。


回复

使用道具 举报

8

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-9-27 16:17 | 显示全部楼层
sell_close语句和下一句logging.debug之间没有其他语句,如果是sell_close函数结束,不是应该马上执行logging.debug('sell_close')?
回复

使用道具 举报

3

主题

791

帖子

832

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2024-9-27 16:21 | 显示全部楼层
阿白67544 发表于 2024-9-27 16:17
sell_close语句和下一句logging.debug之间没有其他语句,如果是sell_close函数结束,不是应该马上执行loggi ...

所以不知道,你那边为什么会这样。

才让你在这个区域内增加新的定位日志。(在平仓语句之前增加一个输出)

你本地有没有在order_status事件中做其他的处理动作。
回复

使用道具 举报

8

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-9-27 16:24 | 显示全部楼层
        if main_transfer != '' and get_dynainf(code_final,207) >= 30000:
            minimum = get_dynainf(code_final,208)
            handle_p_last = get_lastmain(code_letter,main_transfer)
            portfolio=get_portfolio (handle_p_last, 2)
            if portfolio.buy_quantity !=0:
                amount = portfolio.buy_quantity
                buy_1 = get_dynainf(handle_p_last,28)
                h_price = buy_1 - n_14*minimum
                t1 = threading.Thread(target = opt_operate,args =(12,handle_p_last,h_price,amount,))
                t1.start()
                #orderid = sell_close(handle_p_last,'Limit',h_price,volume=amount,serial_id = 147)
                #logging.debug(orderid)
                sell_1 = get_dynainf(code_final,34)
                h_price = sell_1 + n_14*minimum
                orderid = buy_open(code_final,'Limit',h_price,volume=amount,serial_id = 148)
                logging.debug(orderid)


我同时测试了用多线程处理,但是问题还是近7秒才执行下一个开仓语句,解决不了问题。供你们参考吧
回复

使用道具 举报

8

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-9-27 16:26 | 显示全部楼层
没有order_status事件处理,是空的
回复

使用道具 举报

8

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-9-27 16:31 | 显示全部楼层
这个问题只在原来设想的收盘末(get_dynainf(code_final,207) >= 185954)出现,其他时段都测试过,没有问题
所以,是不是和时间段有关?比如盘末特定数据处理量暴增情况下python的开平仓函数处理问题?
回复

使用道具 举报

3

主题

791

帖子

832

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2024-9-27 17:05 | 显示全部楼层
你先在这个判断体以外增加输出日志、以及sellclose之前增加日志。

回复

使用道具 举报

8

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-9-27 17:35 | 显示全部楼层
这个问题只能在收盘的那一点时间才能复现,这个时间得等到下周了,时间拖得太久。
我想你要的信息在这个语句中就能知道
截图202409271729248034.png
我是用的tick级别,不到这个时间不会触发,能触发就是tick14:59:54时间,再加日志里记录的
2024-09-27 14:59:54.039    【Python】sell_close 策略:<cu209> 出现信号 book_id:SQCU10,volume=4, Type=0, Price=78840.000000, Account=, serial_id=103
应该是可以确定你想要的信息
回复

使用道具 举报

3

主题

791

帖子

832

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2024-9-27 17:41 | 显示全部楼层
这个记录我看到过了。只是想进一步判断写日志的过程是否存在延迟,所以让你在sellclose之前和最外面的if语句前输出logging
回复

使用道具 举报

8

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2024-9-27 17:54 | 显示全部楼层
这个应该不会,因为25号的实盘和还有这几天模拟盘cu10的平仓记录都是和14:59:54吻合,实盘和模拟盘cu11下单记录也显示和15:00:00吻合,导致无法成交

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 00:08 , Processed in 0.147940 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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