首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MT4管理器应用编程接口=> .Net ClrWrapper

MT4管理器应用编程接口=> .Net ClrWrapper
EN

Stack Overflow用户
提问于 2016-06-01 22:00:45
回答 1查看 3.2K关注 0票数 0

我正在使用带有.Net CLR包装器的mtmanapi.dll

我正在为符号获取正确的AskBid值,但在代码名称中没有任何特殊字符(如EURUSDGBPUSD等),但如果符号中有一些特殊字符(如EURUSD'GBPUSD0等),则它不会使用< Symbol >D9Bid>方法获取AskBid值。

EN

回答 1

Stack Overflow用户

发布于 2016-11-01 15:15:35

它应该可以工作,下面的代码从我的服务器返回US100,OIL.WTI,225日元的引号。我使用的是SymbolInfoUpdated(),但它与SymbolInfoGet()类似。但这里有几个注意事项:

1)在切换到抽水模式之前,您可能需要调用mt.SymbolsRefresh();mt.SymbolAdd(symbol.Name);

2) SymbolInfoGet()将在pumping中返回您最后一次收到的报价。因此,如果你在周六连接并调用它,它在周一之前不会返回任何东西

代码语言:javascript
复制
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();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37570922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档