小隐的博客

人生在世,笑饮一生
随笔 - 304, 文章 - 0, 评论 - 349, 阅读 - 50万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

VeighNa 学习进阶(二)--连接行情交易

Posted on   隐客  阅读(406)  评论(1编辑  收藏  举报

今天学了一下连接行情,再次吐槽那个文档,写的什么玩意?是作者故意为之?

然后拿example中的no_ui 里面的run.py学习了一下,感觉作者写代码的习惯和思维非常奇怪

比如在这句中: 

main_engine.add_gateway(CtpGateway)

为什么是在这个方法里只传一个类,而不是一个实例好之后的类呢?

复制代码
    def add_gateway(self, gateway_class: Type[BaseGateway], gateway_name: str = "") -> BaseGateway:
        """
        Add gateway.
        """
        # Use default name if gateway_name not passed
        if not gateway_name:
            gateway_name: str = gateway_class.default_name

        gateway: BaseGateway = gateway_class(self.event_engine, gateway_name)
        self.gateways[gateway_name] = gateway
复制代码

而它是在这个方法里去实例化的,真的奇葩

而且在实例中把event_engine做为参数传进去了,这样就必须是在add_gateway之前需要把event_engine加到main_engine中,

这样的思维,不知道是怎么产生的

这样面临的问题是在add_gateway之前,不能对CtpGateway做任何参数的改动。

比如设置ctp_setting(即ctp行情,交易的信息),这个需要在本文件中另行设置,奇葩吧

正常的逻辑,把CtpGateway初始化,设置各种参数,然后扔给main_engine,这个不是常规操作么?

以致后面还要写  main_engine.connect(ctp_setting, "CTP")  这样的代码,人才!

还有好几处下面这样的代码。

sleep(60)   # Leave enough time to complete strategy initialization

类中没有一个状态管理的吗?60秒是多了还是少了?

 

后面要写的策略,更奇葩,实在是理解不了,唉

那个no_ui下面的run.py把ctp_setting改一下直接可以跑了,没有太多问题,还有那个check_trading_period直接返回True,要不在非交易时间没法弄

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
QQ交流
点击右上角即可分享
微信分享提示