0

我正在使用 C# Interactive Brokers API。我成功订阅了 ES、几种货币、股票等。我需要订阅 ZN 和 ZT 报价,但这似乎不起作用,因为我没有收到回调或错误消息:

Contract zn = new Contract();
                zn.Currency = "USD";
                zn.Multiplier = "1000";
                zn.SecType = "FUT";
                zn.Symbol = "ZN";
                zn.LocalSymbol = "ZNZ5";
                zn.Exchange = "ECBOT";
                zn.PrimaryExch = "ECBOT";

Subscribe(zn);

我也试过

Contract zn = new Contract();
                zn.Currency = "USD";
                zn.Multiplier = "2000";
                zn.SecType = "FUT";
                zn.Symbol = "ZT";
                zn.LocalSymbol = "201512";
                zn.Exchange = "SMART";
                zn.PrimaryExch = "SMART";

Contract zn = new Contract();
                zn.Currency = "USD";
                zn.Multiplier = "1000";
                zn.SecType = "FUT";
                zn.Symbol = "ZN";
                zn.LocalSymbol = "ZN   DEC 15";
                zn.Exchange = "SMART";
                zn.PrimaryExch = "SMART";

我在 ZN 之后尝试了一个空格,在 之后尝试了三个空格zn.LocalSymbol,因为我读到这是正确的方法。

不知道我做错了什么?

4

2 回答 2

0

对于ZTZN期货,您必须指定ECBOT,不能使用SMART。我错过的领域是

zt.LastTradeDateOrContractMonth = "20151231";

你必须看到确切的日期。您可以通过右键单击代码并查看合约信息从 TWS 本身获取它。

另外,如果我LocalSymbol为此合同输入 a,它似乎会破坏它。

于 2015-11-02T22:36:59.240 回答
0

指定到期而不是本地符号(字符串“201512”)。您应该使用其中一个,您正在使用符号和本地符号。我从未使用过本地符号,我认为无论如何它可能是“ZN DEC 15”。

此外,您在这里不使用 primaryExchange,这是因为 SMART 路由不明确。您应该将交易所设置为 ECBOT。

对于 ZN,最小信息应该是

Contract zn = new Contract();
            zn.Currency = "USD";//probably not even needed
            zn.SecType = "FUT";
            zn.Symbol = "ZN";
            zn.Expiry = "201512;
            zn.Exchange = "ECBOT";

您可以尝试 java api 示例,我认为没有 C# 示例。尝试使用它来请求数据以查看有效的方法。

我刚刚注意到你说没有错误消息。应该有一个,因此请确保您从 API 获得错误回调。

于 2015-10-31T22:44:49.143 回答