2.8 市場データ更新モードを切り替える (詳細)

作者: リン・ハーン小さな夢, 作成日:2016-07-13 10:08:50, 更新日:2017-10-11 10:21:29

市場データ更新モードを切り替える

  • 詳細はAPIのドキュメントに記載されています.
// 只支持Websocket模式(huobi, okcoin.cn, BTCC支持)与商品期货CTP协议
exchange.IO("websocket"); // 切换行情通信协议到websocket(默认为rest), Ticker, Depth会切换为websocket协议来更新, 商品期货CTP无需切换
// 切换GetTicker, GetDepth数据更新模式
exchange.IO("mode", 0); // 立即返回模式, 如果当前还没有接收到交易所最新的行情数据推送, 就立即返回旧的行情数据, 如果有新的数据就返回新的数据
exchange.IO("mode", 1); // 缓存模式(默认模式), 如果当前还没有收到交易所最新的行情数据(同上一次api获取的数据比较), 就等待接收然后再返回, 
                        //如果调用该函数之前收到了最新的行情数据, 就立即返回最新的数据
exchange.IO("mode", 2); // 强制更新模式, 进入等待一直到接收到交易所下一次的最新推送数据后返回
// 如果想第一时间获取最新的行情可以切换到websocket后不Sleep的立即检测数据, GetTicker, GetDepth用缓存模式进行工作
exchange.IO("websocket");
while (true) {
    Log(exchange.GetTicker());
}
  • この記事へのトラックバック一覧です.

    • 1, プラットフォームシステムではデフォルトではrestモードである: restモードでAPIデータリクエストが1回,取引所サーバーが1回データ (現在の最新) を返します. 取引所サーバーは,ユーザに最新のデータを主動的にプッシュしない.したがって,戦略は,restモードを使用するときに,最新のデータをタイムリーに取得することを保証するデータ要求を頻繁に行う必要がある.

    • 2,websocket モード対応APIはGetTicker,GetDepth を呼び出しています.exchanges[0].IO("websocket");WebSocket Mode を起動すると,WebSocket Mode が起動します. 注目した同級生は,なぜexchanges[0]がこんなふうに書かれているのか理解できるでしょう.img例えば,一つのポリシーに2つの取引所 (または複数の) を追加すると,プラットフォーム定義のグローバルオブジェクトの1つの配列は,ポリシーに追加されたすべての取引所を代表する配列である.この配列は,exchanges 取引所オブジェクト配列であり,主取引所オブジェクトは,配列の最初の ((インデックスが0の要素である):exchanges[0]コイン取引所オブジェクトである.第二の交換所オブジェクトは,exchanges[1] OKCoin取引所オブジェクトである.

    • 3. websocket モードとrestの違い: websocket モードでは,托管者が取引所サーバーに購読要求を送信し,取引所サーバーが受け取った後に,更新されたデータがあるときはいつでも主動的に托管者に押し出す.托管者はこれらのデータをキャッシュし,戦略ロボットはデータ要求時に迅速に入手し,データは最新である.

    • 4 ウェブソケットモードが起動すると,3つの作業モードを設定できます.

      • <1> exchange.IO("mode",0);//即時返却モード: このモードは,即時返却する現在のデータ (現在の最新) です.

      • <2> exchange.IO("mode",1);//キャッシュモード ((デフォルトモード): このモードは2つの処理ブランチに分けられ, 1つ目は,APIがデータをリクエストする際,現在のキャッシュされたデータが,前のAPIで取得したデータとの比較が最新でない場合,リクエストされたデータのAPIが受信を待って,受信を返します. 2つ目は,APIがデータを要求するときに,現在のキャッシュされたデータが,APIが最後に取得したデータと比較して最新のもの (つまり,APIの要求データに呼び出す前に最新の行事データが受信された) である場合,即座に最新のデータを返します.

      • <3> exchange.IO("mode",2);//強制更新モード:このモードは,キャッシングモードの論理ブランチと簡単に混同されるかもしれませんが,考えれば理解できます. キャッシングモードは,キャッシュされたデータの最新性を判断するものである.強制更新モードは,現在の市場が最新であるかどうかにかかわらず,次の最新の市場データが押し寄せられるまで強制的に待つものである. (この間,データを要求するAPIは待機している).


もっと

ホクシェラト` `js main ((() {の関数について 交換.IO (("websocket"); 変数について説明します ログ (exchange.GetTicker) ありがとうございました. ありがとうございました. `` 1. setLastErrorは setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorが setLastErrorを setLastErrorに setLastErrorが setLastErrorが setLastErrorを setL 2.模擬ディスクがエラーを報告すると,`Futures_OP 4: period not support`,その後は1つのタッカーデータしか受信できず,ロボットが正常停止できないため,タッカー停止を指示し,マニュアルで削除する必要があります.

ファングベイ保存されているデータはどれ位ですか? 削除されるまでどれくらいの期間か?

ホクシェラト分かりました,ありがとう!

小さな夢1、リテストでは rest がなく,websocket の部分である。。。>_< 2、模擬ディスクにはウェブソケットモードもありません. WebSocket プロトコルは,OKEX コインプロのみがサポートしている.

小さな夢この記事の記事一覧は,この記事へのトラックバック一覧です.