MT4 Manager API => .Net ClrWrapper
Я использую mtmanapi.dll с оболочкой.Net CLR
Я поправляюсь Ask
а также Bid
значения для символов без каких-либо специальных символов в Symbol
имя - (например EURUSD
, GBPUSD
и так далее), но если в символах есть какой-то специальный символ (например, EURUSD'
, GBPUSD0
и так далее), то это не выборка Ask
а также Bid
значение с помощью SymbolInfoGet()
метод.
1 ответ
Это должно работать, и ниже код возвращает кавычки для 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();
}