我正在使用带有 .Net CLR 包装器的 mtmanapi.dll
对于名称中没有任何特殊字符的符号(例如,等等),我得到了正确的值Ask
和值,但是如果符号中有一些特殊字符(例如,等等),那么它不是使用方法获取和值.Bid
Symbol
EURUSD
GBPUSD
EURUSD'
GBPUSD0
Ask
Bid
SymbolInfoGet()
我正在使用带有 .Net CLR 包装器的 mtmanapi.dll
对于名称中没有任何特殊字符的符号(例如,等等),我得到了正确的值Ask
和值,但是如果符号中有一些特殊字符(例如,等等),那么它不是使用方法获取和值.Bid
Symbol
EURUSD
GBPUSD
EURUSD'
GBPUSD0
Ask
Bid
SymbolInfoGet()
它应该可以工作,下面的代码会从我的服务器返回 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();
}