订阅ECBOT债券

时间:2015-10-31 19:45:55

标签: c# interactive-brokers

我正在使用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之后尝试了三个空格,因为我读到这是正确的方法。

不确定我做错了什么?

2 个答案:

答案 0 :(得分: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获得错误回调。

答案 1 :(得分:0)

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

zt.LastTradeDateOrContractMonth = "20151231";

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

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