金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 393|回复: 8

持仓

[复制链接]

436

主题

2581

帖子

2591

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2024-7-24 14:43 | 显示全部楼层 |阅读模式
            gkd=0
            gpd=0
            gkk=0
            gpk=0
            wcj_list=get_orders(code, 0)
            if wcj_list!=None:
                for wcj in wcj_list:
                    vol = wcj.unfilled_quantity
                    side = wcj.side  # 订单方向 "buy"买:"sell"卖
                    kp = wcj.position_effect  # 开平标志 "open"开仓 "close"平仓
                    if side=="buy" and kp=="open":
                        gkd += vol
                    if side=="buy" and kp=="close":
                        gpd += vol   
                    if side=="sell" and kp=="open":
                        gkk += vol
                    if side=="sell" and kp=="close":
                        gpk += vol   
            #已经持仓
            zhdc=get_portfolio(code,2).buy_quantity  + gkd - gpd    #  多持(code)
            zhkc=get_portfolio(code,2).sell_quantity + gkk - gpk    #  空持(code)     
老师,上面的代码我想计算账户已经持仓的数量加上当前信号的仓位(报单和挂单的净仓位),我这个计算的结果会有误差,无法实际取到真实数据,这样会偶发性出现数据偏差,导致持仓同步出错,能看下怎么才能获取到账户持仓和最新的报单和挂单的净仓位(报单和挂单只能由一个数据没有挂单的时候就是报单,挂单了报单就没了)

回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-7-24 15:26 | 显示全部楼层
本帖最后由 技术009 于 2024-7-24 15:30 编辑

你自己记录+账户查询的。他们有重复的吧。  开仓成交了,你原本加进去的是要扣除掉的。

然后你还减去了平仓未成交的,你查询的那个持仓本身就扣除了平仓未成交了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

436

主题

2581

帖子

2591

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-7-24 15:32 | 显示全部楼层
技术009 发表于 2024-7-24 15:26
你自己记录+账户查询的。他们有重复的吧。  开仓成交了,你原本加进去的是要扣除掉的。

然后你还减去了 ...

但是不加也不对啊  可能是时间问题,我是信号执行完毕就会取这个持仓数据和虚拟信号同步,但是实际持仓(报单加挂单都算进去)总是无法及时取到对的数据
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-7-24 15:40 | 显示全部楼层
那没办法,你加进去,你怎么确保你下次使用这个数值之前,开仓还是未成交?你程序可能比成交快,也可能比成交慢。想保持所谓的一致,根本是做不到的。

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

使用道具 举报

436

主题

2581

帖子

2591

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-7-24 15:46 | 显示全部楼层
技术009 发表于 2024-7-24 15:26
你自己记录+账户查询的。他们有重复的吧。  开仓成交了,你原本加进去的是要扣除掉的。

然后你还减去了 ...

我发现的问题是这样的,如果成交很快,这些都没问题,如果有挂单等,就会反复执行动作了,因为数据不对,我是1秒持仓同步,仓位不对会反复执行。
你说的  开仓成交了,你原本加进去的是要扣除掉的。

然后你还减去了平仓未成交的,你查询的那个持仓本身就扣除了平仓未成交了。
这个怎么操作?如果刚报单的时候,是已经持仓加报单数量,如果报单成功,报单数量为0,持仓数量应该就是实际持仓加挂单数量,或者挂单为0,就只要成交数量了。
我原本理解的报单成功,报单数量就为0,挂单成交,挂单数量就为0,那这样我上面的写法问题就不大,但是按你说的,成交了要静安区原本加上的,那说明报单和挂单数量不会清0吗?
回复

使用道具 举报

436

主题

2581

帖子

2591

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-7-24 15:55 | 显示全部楼层
技术009 发表于 2024-7-24 15:40
那没办法,你加进去,你怎么确保你下次使用这个数值之前,开仓还是未成交?你程序可能比成交快,也可能比成 ...

主要问题还是在挂单和报单这里,这个确实不好弄,那个软件设置的那个撤单是对账户的还是对图表的?PY运行出现的挂单可以用软件撤单吗?
回复

使用道具 举报

436

主题

2581

帖子

2591

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-7-24 15:59 | 显示全部楼层
技术009 发表于 2024-7-24 15:40
那没办法,你加进去,你怎么确保你下次使用这个数值之前,开仓还是未成交?你程序可能比成交快,也可能比成 ...

我弄这个一秒同步,主要是发现PY走完会偶发性漏单,不多但是确实会漏,用一分钟同步,有时候会延迟一两个一分钟他就同步上去了,我用一秒同步,效率是很好,但是如果在数据被清除,或者开仓数量多的情况下就出问题了,说明还是计算持仓的时候取不到准确的数据,如果不会漏单,都不用这样操作
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-7-24 16:30 | 显示全部楼层
“那说明报单和挂单数量不会清0吗?” 会清。都是从账户栏实时读取的,有就有,没有就是没有。会更新数据呢。


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

使用道具 举报

436

主题

2581

帖子

2591

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-7-24 16:38 | 显示全部楼层
技术009 发表于 2024-7-24 16:30
“那说明报单和挂单数量不会清0吗?” 会清。都是从账户栏实时读取的,有就有,没有就是没有。会更新数据呢 ...

那这个我好好考虑下怎么操作···有点不好处理,要么正常开平仓,都是市价开平仓,代码5秒撤单,预防未成交单,6秒校正持仓,在没有挂单的情况下校正持仓就不会出错,先这样试下了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 02:53 , Processed in 0.217119 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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