金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 392|回复: 5

关于用Python程序在金字塔中获取开仓精准价格的问题

[复制链接]

12

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2025-4-8
曾用名:
发表于 2025-5-27 14:44 | 显示全部楼层 |阅读模式
老师好,您好!我目前是用buy_open函数来开仓的,即order_id = buy_open(contract, "Market", 0, volume=1, serial_id=1)。我想用get_traders (order_book_id, account)函数来获取我的开仓价,不知是否可行。还是其它函数可以支持获取开仓价格,请帮忙反馈样例代码和相关函数,非常感谢!
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-5-27 15:07 | 显示全部楼层
1. 你可以直接读取账户栏的持仓均价。如果没有复杂的开仓,加仓的逻辑的情况下。

2.也可以通过成交列表去获取和下单id一致的 成交对象来计算这笔单子的实际成交情况。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

12

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2025-4-8
曾用名:
 楼主| 发表于 2025-5-27 15:11 | 显示全部楼层
多谢老师,请问对应函数是,比如成交列表的函数样例是
回复

使用道具 举报

12

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2025-4-8
曾用名:
 楼主| 发表于 2025-5-27 15:38 | 显示全部楼层
请问如下函数是否可以获取交易价格
def get_trade_price(order_id, contract, current_price):
    """通过get_trades函数获取实际成交价格"""
    try:
        trades = get_trades()  # 获取所有成交记录
        for trade in reversed(trades):
            if trade['order_id'] == order_id and trade['contract'] == contract:
                return trade['price']
        print(f"未找到订单 {order_id} 的成交记录,使用当前价格 {current_price}")
        return current_price
    except Exception as e:
        print(f"获取成交价格失败: {str(e)},使用当前价格 {current_price}")
        return current_price
回复

使用道具 举报

12

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2025-4-8
曾用名:
 楼主| 发表于 2025-5-30 09:16 | 显示全部楼层
请老师帮忙回复
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-5-30 10:09 | 显示全部楼层
不行的哦。 一个委托单,成交时候可能是部分成交,这就意味着  成交明细中可能有多笔 都是来源于相同的委托。所以这个均价是要把这些汇总的。


#通过订单id获取成交均价
def get_avp(orderid):
        order = get_orders_id(orderid)
        if order is None:
            return
        traders = get_traders(order.order_book_id)
        trades = [od for od in traders if od.order_id==orderid]
        
        total = 0
        _tmp = 0
        if trades:
            for td in trades:
                quantity = td.filled_quantity
                price = td.trade_price
                _tmp += quantity * price
                total += quantity
        else:
            return None

        return _tmp / total


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-30 01:04 , Processed in 0.167788 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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