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();
}
Другие вопросы по тегам