MT4 Manager API => .Net ClrWrapper [英] MT4 Manager API => .Net ClrWrapper

查看:369
本文介绍了MT4 Manager API => .Net ClrWrapper的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将mtmanapi.dll与.Net CLR包装器一起使用

I am using mtmanapi.dll with a .Net CLR wrapper

对于Symbol名称中没有任何特殊字符的符号(例如EURUSDGBPUSD等),我得到了正确的AskBid值,但是如果符号中有一些特殊字符(例如EURUSD'GBPUSD0等),则不会使用SymbolInfoGet()方法获取AskBid值.

I am getting correct Ask and Bid values for symbols without any special characters in the Symbol name - ( e.g. EURUSD, GBPUSD and so on ), but if symbols have some special character in it ( e.g. EURUSD', GBPUSD0 and so on ), then it's not fetching Ask and Bid value using a SymbolInfoGet() method.

推荐答案

它应该可以工作,并且下面的代码从我的服务器中返回US100,OIL.WTI和225JPY的报价.我正在使用SymbolInfoUpdated(),但是它与SymbolInfoGet()类似.但有几点注意事项:

It should work and below code returns quotes for US100, OIL.WTI, 225JPY from my server. I am using SymbolInfoUpdated() however it's similar to SymbolInfoGet(). But there are few notes:

1)您可能需要先切换到mt.SymbolsRefresh();mt.SymbolAdd(symbol.Name);,然后再切换到抽水

1) you might need to call mt.SymbolsRefresh(); and mt.SymbolAdd(symbol.Name); before switching to pumping

2)SymbolInfoGet()将返回您在抽水中最后收到的报价.因此,如果您在星期六连接并拨打电话,则直到星期一它都不会返回任何内容

2) SymbolInfoGet() will return you last received quote in pumping. So if you connect on Saturday and call it, it won't return anything until Monday

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();
}

这篇关于MT4 Manager API => .Net ClrWrapper的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆