我正在使用带有.Net CLR包装器的mtmanapi.dll
我正在为符号获取正确的Ask和Bid值,但在代码名称中没有任何特殊字符(如EURUSD、GBPUSD等),但如果符号中有一些特殊字符(如EURUSD'、GBPUSD0等),则它不会使用< Symbol >D9Bid>方法获取Ask和Bid值。
发布于 2016-11-01 15:15:35
它应该可以工作,下面的代码从我的服务器返回US100,OIL.WTI,225日元的引号。我使用的是SymbolInfoUpdated(),但它与SymbolInfoGet()类似。但这里有几个注意事项:
1)在切换到抽水模式之前,您可能需要调用mt.SymbolsRefresh();和mt.SymbolAdd(symbol.Name);
2) SymbolInfoGet()将在pumping中返回您最后一次收到的报价。因此,如果你在周六连接并调用它,它在周一之前不会返回任何东西
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();
}https://stackoverflow.com/questions/37570922
复制相似问题