VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 1
声望: 0

大牛们好:

这是我使用Main Engine下单的代码:

from vnpy.trader.constant import (
    Exchange,
    Direction,
    Offset, 
    OrderType
)
from vnpy.trader.object import (
    SubscribeRequest,
    OrderRequest
)
from vnpy.event import EventEngine
from vnpy_ctp import CtpGateway

event_engine = EventEngine()
main_engine = VNPYTradeAppEngine(event_engine)
main_engine.add_gateway(VNPYTradeAppBase, "CTP_1", {'input_bar_interval': '5min'})

main_engine.connect(ctp_setting, "CTP_1")
time.sleep(10)

main_engine.subscribe(SubscribeRequest(symbol="rb2310", exchange=Exchange.SHFE), "CTP_1")
main_engine.send_order(OrderRequest(symbol="rb2310", exchange=Exchange.SHFE, 
                                    direction=Direction.LONG, 
                                    type=OrderType.LIMIT, price=3500, volume=1), "CTP_1")

其中VNPYTradeAppEngine(继承CtpGateway)和VNPYTradeAppBase(继承MainEngine)是继承自vnpy的两个类,里面和send_order相关的方法我都没有改动。目前运行后没有报错但账号也没有收到订单,虽然已经和券商做过穿透认证了。

于是我修改了send_order打印下单和main_engine相关信息检查:

    def send_order(self, req):
        order_result = CtpGateway.send_order(self, req)
        print(self.main_engine.__dict__)
        print("order_result:", order_result)

运行后的输出如下:

{'gateway': <VNPYTradeAppBase.VNPYTradeAppBase object at 0x7f2a77725190>, 'gateway_name': 'CTP_1', 'reqid': 8, 'order_ref': 0, 'connect_status': True, 'login_status': True, 'auth_status': True, 'login_failed': False, 'auth_failed': False, 'contract_inited': False,...}
order_result:

order result没有任何返回,而main_engine的login_status和auth_status都是True,似乎没有什么问题?

想问一下大家知不知道这个情况问题可能在哪里?

Member
avatar
加入于:
帖子: 4709
声望: 287

可以自己去接口的send_order函数里进行打印排查

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】