我正在使用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
之后尝试了三个空格,因为我读到这是正确的方法。
不确定我做错了什么?
答案 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)
对于ZT
和ZN
期货,您必须指定ECBOT
,不能使用SMART
。我失踪的领域是
zt.LastTradeDateOrContractMonth = "20151231";
你必须看到确切的日期。您可以通过右键单击符号并查看合同信息从TWS本身获取它。
另外,如果我为此合约输入LocalSymbol
,它似乎会破坏它。