2016-06-01 16 views
0

내가 mtmanapi.dll를 사용하고 - (예 EURUSD, GBPUSD 등). 그러나 기호에 특수 문자가있는 경우 (예 : EURUSD', GBPUSD0 등) SymbolInfoGet() 메서드를 사용하면 AskBid 값을 가져 오지 못합니다.MT4 관리자 API => 닷넷 CLR 래퍼</p> <p>나는 <code>Symbol</code> 이름에 특수 문자없이 기호에 대한 올바른 <code>Ask</code> 및 <code>Bid</code> 값을 얻고와 닷넷 ClrWrapper

+0

타사 플러그인을 사용하고 있습니까? mt4 관리자 API에 액세스 할 수있는 코드를 공유해 주시겠습니까? – user3151766

답변

0

내 서버에서 US100, OIL.WTI, 225JPY에 대한 견적을 반환합니다. 나는 과 비슷하지만 SymbolInfoUpdated()을 사용하고 있습니다. 그러나 몇 가지주의 사항이 있습니다 :

1) 당신은 당신이 마지막으로 펌핑에서 견적을 받아 돌아갑니다

2) SymbolInfoGet()을 펌프로 전환하기 전에 mt.SymbolsRefresh();mt.SymbolAdd(symbol.Name);를 호출 할 필요가 있습니다. 따라서 토요일에 연결하여 전화를 걸면 월요일까지는 아무 것도 반환하지 않습니다.

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

mtmanapi.dll과 연결하는 데 사용되는 래퍼 코드를 공유 할 수 있습니까? 그것은 위대한 hep 일 것입니다. – user3151766

+0

나는 지금까지 작성된 코드를 공유 할 수 있습니다. 이메일을 공유 할 수 있습니까? 네가 나를 도울 수 있다면 좋을거야. – user3151766

+0

래퍼 코드를 작성했지만 작동하지 않는 것 같습니다. 문제를 식별 할 수 없습니다. 따라서 당신의 도움이 필요합니다. – user3151766