2017-11-27 3 views
0

私はC#APIを使用してHOng Kong Stock Fundamental Dataにアクセスしようとしていました。 いくつかの背景:インタラクティブブローカーのC#APIを使用して基本データにアクセスする

は、私は次のように、香港株式市場のデータにアクセスし、それが働いているため、同じプログラムを試してみました:

namespace IB_Real_time_Console_CS 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Samples.EWrapperImpl ibClient = new Samples.EWrapperImpl(); 
      ibClient.ClientSocket.eConnect("", 7496, 0); 
      var reader = new EReader(ibClient.ClientSocket, ibClient.Signal); 
      reader.Start(); 
      new Thread(() => 
      { 
       while (ibClient.ClientSocket.IsConnected()) 
       { 
        ibClient.Signal.waitForSignal(); 
        reader.processMsgs(); 
       } 
      }) 
      { IsBackground = true }.Start(); 
      while (ibClient.NextOrderId <= 0) { } 

      Contract contract = new Contract(); 
      contract.Symbol = "700"; 
      contract.SecType = "STK"; 
      contract.Exchange = "SEHK"; 
      contract.Currency = "HKD"; 

      List<TagValue> mktDataOptions = new List<TagValue>(); 
ibClient.ClientSocket.reqMktData(1, contract, "", true, false, mktDataOptions); 

      // Pause so we can view the output 
      Console.ReadKey(); 

      ibClient.ClientSocket.cancelMktData(1); 
      ibClient.ClientSocket.eDisconnect(); 


     } //end Main 
    }  //end class Program 
}   //end namespace IB_Real_time_console_cs 

を私の目的は、基本的なデータにアクセスすることです。私は次のエラーに遭遇しかし ibClient.ClientSocket.reqMktData(1, contract, "258", true, false, mktDataOptions);

:この中 ibClient.ClientSocket.reqMktData(1, contract, "", true, false, mktDataOptions);

:だから私はこのコード行を変更

Error ID:-1 code:2104: Msg: Market data farm connection is OK:hfarm 
Error ID:-1 code:2104: Msg: Market data farm connection is OK:usfuture 
Error ID:-1 code:2104: Msg: Market data farm connection is OK:cashfarm 
Error ID:-1 code:2104: Msg: Market data farm connection is OK:usfarm 

Error ID:-1 code:2106: Msg: HMDS data farm connection is OK:ushmds.us 
Error ID:-1 code:2106: Msg: HMDS data farm connection is OK:hkhmds 
Error ID:-1 code:2106: Msg: HMDS data farm connection is OK:fundfarm 
Error ID:-1 code:2106: Msg: HMDS data farm connection is OK:ushmds 

エラーID:1、コード321、メッセージ:エラー確認リクエスト: 'bo':原因スナップショット市場データのサブスクリプションは、一般的なダニには適用されません。

Error ID:-1 code 2108, Msg: Market data farm connection is inactive but should be available upon demand.usfuture 
Error ID:-1 code 2108, Msg: Market data farm connection is inactive but should be available upon demand.usfuture 
Error ID:-1 code 2108, Msg: Market data farm connection is inactive but should be available upon demand.cashfarm 
Error ID:-1 code 2108, Msg: Market data farm connection is inactive but should be available upon demand.cashfarm 

このコードの変更で何が問題なのか誰かが指摘できますか? また、基本データにはどのようにアクセスできますか? ありがとうございました..

答えて

0

エラーを読み、そのほとんどは接続に関する情報ですが、私が強調したのは問題を示しています。あなたはスナップショットを求めており、あなたは許可されていません。 4番目の引数はbool snapshotで、これをfalseに設定します。

void reqMktData ( int  tickerId, 
    Contract contract, 
    string genericTickList, 
    bool snapshot, 
    bool regulatorySnaphsot, 
    List<TagValue> mktDataOptions 
)  

ibClient.ClientSocket.reqMktData(1, contract, "258", false, false, mktDataOptions);

+0

私はちょうど「偽の」にそれを変更し、それが動作する...非常にブライアンをいただき、ありがとうございます!ブラボー!! – hollowman85

関連する問題