private void button5_Click(object sender, EventArgs e) { if (TraderApi == null) { if (CheckInput() == false) { return; } TraderApi = new FtdcTdAdapter(""); TraderApi.OnFrontEvent += TraderApi_OnFrontEvent; TraderApi.OnRspEvent += TraderApi_OnRspEvent; TraderApi.OnRtnEvent += TraderApi_OnRtnEvent; TraderApi.OnErrRtnEvent += TraderApi_OnErrRtnEvent; TraderApi.SubscribePublicTopic(EnumTeResumeType.THOST_TERT_QUICK); TraderApi.SubscribePrivateTopic(EnumTeResumeType.THOST_TERT_QUICK); TraderApi.RegisterFront(txtFrontTD.Text); TraderApi.Init(); } }
public void Init() { if (FrontAddrs == null || FrontAddrs.Length == 0) { HandleErrorInternal("CTP交易输入前置机地址不能为空!"); return; } if (trader == null) { trader = new FtdcTdAdapter(".\\trade"); } // 创建trade目录存放流文件,避免与行情流文件冲突 // 回调函数 trader.OnFrontEvent += TraderApi_OnFrontEvent; trader.OnRspEvent += TraderApi_OnRspEvent; trader.OnErrRtnEvent += TraderApi_OnErrRtnEvent; trader.OnRtnEvent += TraderApi_OnRtnEvent; // 订阅私有流 trader.SubscribePrivateTopic(EnumTeResumeType.THOST_TERT_RESUME); // 订阅公共流 trader.SubscribePublicTopic(EnumTeResumeType.THOST_TERT_RESUME); try { foreach (var frontAddr in FrontAddrs) { trader.RegisterFront(frontAddr); } trader.Init(); } catch (Exception ex) { HandleErrorInternal("CTP连接前置机发生错误:" + ex.Message); } }