2017-03-06 7 views
0

私はすべての通貨(MT4におけるシンボル)とその入札& MT4から頼むを取得したいMetaTrader4.Manager.Wrapperと入札の.Net ClrWrapperから

を使用しています。私が使用してみました:

public IList<Symbol> Get() 
    { 
     using (var metatrader = new ClrWrapper(new ConnectionParameters 
     { 
      Login = serverdata.Login, 
      Password = serverdata.Password, 
      Server = serverdata.Server 
     }, serverdata.path)) 
     { 
      var Refresh = metatrader.SymbolsRefresh(); 

      IList<Symbol> Live = metatrader.SymbolsGetAll(); 
      return Live; 

     } 
    } 

私が名前だコードから:AUDCAD、AUDCHF、EURCHF、などが、BidTickValueとAskTickValueは0.0を返します。

私は this answerを使用してみましたが、記号はnullを返し、入札が0

名と入札を取得し、値を掲載する別の方法がありますが返さ? ポンピングモードとは何ですか? ありがとうございました

答えて

0

ポンピングはMT4モードです。異なるイベントを購読すると、MT4サーバーが手動で要求せずに更新を送信します。

たとえば、引用符、取引先、ユーザー。

SymbolsGetAllは、ポンプモードになっているときにのみ引用符を返し、最新の受信した見積もりを返します。

ポンピングモードを使用しない場合は、最新の見積もりユーザーChartRequestメソッドを取得することはできますが、速度は非常に遅くなります。

+0

私が 'ChartRequest'を使用している場合、' period = ChartPeriod.M1'の 'Mode = ChartRequestMode.RangeLast'を使って入札単価を取得します。どのように私は尋ねる価値を得ることができますか? 私はまた、ポンプモードを使用してみてください。コードは –

+0

http://imgur.com/a/WHndk(コード)です。私はgithubの例をあなたからコピーします。私はポンピングモードなしで同じものを得ることができます。あなたは私に入札を取得し、asp.net web api + MetaTrader4.Manager.Wrapperを使用して尋ねる任意の例を与えることができますか? @Uriil –

+0

ここには 'ChartRequest'を使ったコードがあります:http://imgur.com/a/nOJ3Y –

0

入札で見積もりを取得し、マネージャAPIなしで直接質問することができます。 単にソケットをMT4サーバーに送ることができます。

// 1. Start Session. 
$ptr=fsockopen('127.0.0.1',443); 
// error check 
if (!$ptr){ 
    echo "Connection error"; 
    exit; 
} 
// 2. Send request to MT4 
fputs($ptr,"WQUOTES-EURUSD,GBPUSD,USDJPY,\nQUIT\n"); 
// 3. Reading and processing server responses 
while(!feof($ptr)) 
    { 
    // read line of symbols 
    $line=fgets($ptr,128); 
    // the symbol of the end of result transfer 
    if($line=="end\r\n") break; 
    // process 
    print $line; 

    } 
// 4. Session completion 
    fclose($ptr); 

は、上記の形式で引用符を印刷します:方向シンボルの入札は、日付時刻を尋ねる は、ここでの例です。

関連する問題