我正在使用带有 .Net CLR 包装器的 mtmanapi.dll
对于名称中没有任何特殊字符的符号(例如,等等),我得到了正确的值Ask和值,但是如果符号中有一些特殊字符(例如,等等),那么它不是使用方法获取和值.BidSymbolEURUSDGBPUSDEURUSD'GBPUSD0AskBidSymbolInfoGet()
我正在使用带有 .Net CLR 包装器的 mtmanapi.dll
对于名称中没有任何特殊字符的符号(例如,等等),我得到了正确的值Ask和值,但是如果符号中有一些特殊字符(例如,等等),那么它不是使用方法获取和值.BidSymbolEURUSDGBPUSDEURUSD'GBPUSD0AskBidSymbolInfoGet()
它应该可以工作,下面的代码会从我的服务器返回 US100、OIL.WTI、225JPY 的报价。我正在使用,SymbolInfoUpdated()但它类似于SymbolInfoGet(). 但是有几个注意事项:
1)您可能需要在切换到抽水之前mt.SymbolsRefresh();打电话mt.SymbolAdd(symbol.Name);
2)SymbolInfoGet()将返回您最后收到的抽中报价。因此,如果您在星期六连接并调用它,它直到星期一才会返回任何内容
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();
}