MT4 Manager API => .Net ClrWrapper

Я использую mtmanapi.dll с оболочкой .Net CLR.

Я получаю правильные значения Ask и Bid для символов без каких-либо специальных символов в имени Symbol (например, EURUSD, GBPUSD и т. д.), но если символы содержат какой-либо специальный символ (например, EURUSD', GBPUSD0 и т. д.), то это не извлекает значения Ask и Bid с помощью метода SymbolInfoGet().


person Dharmesh    schedule 01.06.2016    source источник
comment
Вы используете сторонний плагин? Не могли бы вы поделиться кодом для доступа к API менеджера mt4?   -  person user3151766    schedule 02.10.2017


Ответы (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();
}
person Uriil    schedule 01.11.2016
comment
Не могли бы вы поделиться кодом оболочки, используемым для подключения к mtmanapi.dll? Это было бы здорово. - person user3151766; 02.10.2017
comment
Я могу поделиться кодом, написанным до сих пор, не могли бы вы поделиться своей электронной почтой? Было бы здорово, если бы вы могли мне помочь. - person user3151766; 02.10.2017
comment
Я написал код-оболочку, но он не работает. Я не могу определить проблему. Поэтому нужна ваша помощь. - person user3151766; 02.10.2017
comment
Большое спасибо. электронная почта: [email protected] - person user3151766; 03.10.2017
comment
Также возможно ли поделиться кодом, который вы загрузили на github (поскольку он был удален, я нигде не могу его найти)? - person user3151766; 03.10.2017
comment
Большое спасибо. Это было не так очевидно =) - person Serg046; 07.09.2019