我正在使用带有.Net CLR Package 的mtmanapi.dll对于Symbol名称中没有任何特殊字符的符号,我获得了正确的Ask和Bid值-(例如EURUSD、GBPUSD等),但如果符号中包含某些特殊字符(例如EURUSD'、GBPUSD0等),则它不会使用SymbolInfoGet()方法获取Ask和Bid值。
Symbol
Ask
Bid
EURUSD
GBPUSD
EURUSD'
GBPUSD0
SymbolInfoGet()
qojgxg4l1#
它应该工作,下面的代码返回报价US100,OIL.WTI,225JPY从我的服务器。我使用SymbolInfoUpdated(),但它类似于SymbolInfoGet()。但有几个注意事项:1)在切换到泵送之前,可能需要调用mt.SymbolsRefresh();和mt.SymbolAdd(symbol.Name);2)SymbolInfoGet()将返回您在泵送中最后收到的报价。因此,如果您在周六连接并调用它,它将在周一之前不会返回任何内容
SymbolInfoUpdated()
mt.SymbolsRefresh();
mt.SymbolAdd(symbol.Name);
using (var mt = new ClrWrapper(new ConnectionParameters {Login = 0, Password = "", Server = "" })) { var symbols = mt.CfgRequestSymbol(); mt.SymbolsRefresh(); foreach (var symbol in symbols) { mt.SymbolAdd(symbol.Name); } mt.PumpingSwitchEx(PumpingMode.Default); mt.BidAskUpdated += (sender, args) => { var total = 0; do { var symbolsInfos = mt.SymbolInfoUpdated(); foreach (var symbolInfo in symbolsInfos) { if (!symbolInfo.Symbol.All(char.IsLetter)) { Console.WriteLine("{0} {1} {2}", DateTime.Now, symbolInfo.Symbol, symbolInfo.Bid); } } total = symbolsInfos.Count; } while (total > 0); }; Console.ReadKey(); }
1条答案
按热度按时间qojgxg4l1#
它应该工作,下面的代码返回报价US100,OIL.WTI,225JPY从我的服务器。我使用
SymbolInfoUpdated()
,但它类似于SymbolInfoGet()
。但有几个注意事项:1)在切换到泵送之前,可能需要调用
mt.SymbolsRefresh();
和mt.SymbolAdd(symbol.Name);
2)
SymbolInfoGet()
将返回您在泵送中最后收到的报价。因此,如果您在周六连接并调用它,它将在周一之前不会返回任何内容