大牛们好:
这是我使用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,似乎没有什么问题?
想问一下大家知不知道这个情况问题可能在哪里?