Giter Club home page Giter Club logo

Comments (15)

somewheve avatar somewheve commented on July 24, 2024

你现在查不到持仓了 ? 在触发on_init之后

from ctpbee.

LJingnan avatar LJingnan commented on July 24, 2024

@somewheve 是的,不能马上查到,以前是没问题的。要再等一段时间,这就意味着我不能用on_init确认已返回持仓了

from ctpbee.

LJingnan avatar LJingnan commented on July 24, 2024

@somewheve 大佬有什么解决办法嘛

from ctpbee.

LJingnan avatar LJingnan commented on July 24, 2024

image
您看执行顺序

from ctpbee.

somewheve avatar somewheve commented on July 24, 2024

我昨晚阳性超级难受 看到了没回 我今天看看把 稍等哈 我没注意这个

from ctpbee.

somewheve avatar somewheve commented on July 24, 2024
    def _running(self, logout=True):
        """
        根据当前配置文件下的信息载入行情api和交易api
        注意此函数同时会根据构造函数中的refresh参数决定开启定时线程, 向CtpBee里面提供定时查询账户持仓功能
        """
        show_me = graphic_pattern(__version__, self.engine_method)
        if logout:
            print(show_me)
        self.init_interface()
        if self.config["PATTERN"] == "real" and self.r is None:
            sleep(1)
            self.r = Thread(target=refresh_query,
                            args=(self, common_signals, self.refresh,), daemon=False)
            self.r.start()
        else:
            pass

我以为有sleep1s后再开启查询的 估计是这个原因了 你试试sleep1s 这个在app.py

from ctpbee.

LJingnan avatar LJingnan commented on July 24, 2024

@somewheve 感谢阳了还回答消息!注意多休息,我也刚杨康。但好像加sleep(1)这个做法不work呀,还是init之后没拿到持仓

from ctpbee.

somewheve avatar somewheve commented on July 24, 2024

啊 到底是合约没拿到还是持仓没拿到 尴尬 而且你快期确认下有无仓位

你确认下信息

from ctpbee.

LJingnan avatar LJingnan commented on July 24, 2024

@somewheve
是持仓没拿到哈。肯定是有持仓的,因为是实盘账户。相当于:
init显示运行了,我调用持仓app.center.positions,返回空list。

得过一段时间,console才会提示返回持仓成功,这时候调用app.center.positions才有结果

所以问题是init调用的时候,交易所还没有返回持仓

from ctpbee.

somewheve avatar somewheve commented on July 24, 2024

我再看看代码

from ctpbee.

somewheve avatar somewheve commented on July 24, 2024

这次升级的造成不便 不好意思哈

你看下td_api.py

    def onRspQryTradingAccount(self, data: dict, error: dict, reqid: int, last: bool):
        """"""
        account = AccountData(
            accountid=data["AccountID"],
            balance=data["Balance"],
            frozen=data["FrozenMargin"] +
                   data["FrozenCash"] + data["FrozenCommission"],
            gateway_name=self.gateway_name
        )
        account.available = data["Available"]
        self.on_event(type=EVENT_ACCOUNT, data=account)
        if self.instrunment_init_flag and self.position_init_flag and not self.init_status:
            self.reqid += 1
            self.init_status = True
            self.reqQryDepthMarketData({}, self.reqid)
            self.on_event(type=EVENT_INIT_FINISHED, data=True)

替换这个函数试试

from ctpbee.

LJingnan avatar LJingnan commented on July 24, 2024

@somewheve 0 0, 好像还是不行,我用print确保了我修改的是对的函数。

from ctpbee.

somewheve avatar somewheve commented on July 24, 2024

能远程支持下吗 尴尬

from ctpbee.

LJingnan avatar LJingnan commented on July 24, 2024
from ctpbee import CtpbeeApi, CtpBee
info = {

}
app = CtpBee(name="demo", import_name=__name__, refresh=True)
class CtpbeeApi_demo(CtpbeeApi):
    def on_init(self, init: bool) -> None:  # 改写on_init, 在on_init激活的时候打印
        self.app.mark_on_init = 1
        print(f"!!!!!!!!!! init :{init}")
        positions = app.center.positions
        print(f'持仓:{positions}')   # 如果这个print是空list,说明init后仍然没有持仓

app_demo = CtpbeeApi_demo('demo')

app.add_extension(app_demo)
app.config.from_mapping(info)


app.start(log_output=True)
positions = app.center.positions
while len(positions) == 0 :
    positions = app.center.positions
print(f"当前持仓:{positions}")

'''
输出:
2022-12-29 22:59:38 demo INFO demo 交易连接成功
2022-12-29 22:59:38 demo INFO demo 行情服务器连接成功
2022-12-29 22:59:38 demo INFO demo 交易服务器验证成功
2022-12-29 22:59:38 demo INFO demo 行情服务器登录成功
2022-12-29 22:59:38 demo INFO demo 交易登录成功
2022-12-29 22:59:39 demo INFO demo 结算信息确认成功
!!!!!!!!!! init :True
持仓:[] # 说明 init 后仍然没有持仓
2022-12-29 22:59:53 demo INFO demo 合约信息查询成功

'''
`
@somewheve 我写了个demo哈

from ctpbee.

somewheve avatar somewheve commented on July 24, 2024

this error fixed by 4618490

from ctpbee.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.