資源の読み込みに... 荷物...

フューチャーと暗号通貨のAPI説明

作者: リン・ハーン優しさ, 作成日:2020-08-30 10:11:55, 更新日:2023-10-08 19:55:02

img

商品先物CTPと暗号通貨API交換には大きな違いがあります.暗号通貨交換プログラミング取引に精通しているということは,商品先物CTPプログラミングに精通しているという意味ではありません.私たちは単に方法と経験をコピーすることはできません.この記事では,それらの間の類似性と違いを要約します.

歴史的データ

CTPインターフェースは,歴史的な市場コートを提供していないため,歴史的な市場コートは市場コート機関を通じて解決する必要があります.ログインに失敗したため市場データが失われた場合,CTPは市場補給メカニズムを提供していません.歴史的な市場コートは,第三者の代理店を通じてのみ入手できます.ほとんどの暗号通貨取引所は,通常,Kラインと取引履歴を取得するためのインターフェースを提供します.

違う合意

仮想通貨取引 APIは一般的にRESTそしてwebsocketCTPは,ネットワーク関連ロジックを内部にカプセル化し,TCPプロトコルに基づくFTDプロトコルを使用してCTPバックグラウンドと通信する. 3つのモードに分かれ:

  • リクエスト応答モード:クライアントがリクエストを開始し,CTPバックグラウンドはリクエストを受信し,応答する.

  • 放送通信モード:クライアントが契約市場コートを購読した後,CTPは市場コートを放送を通じて押します.

  • プライベート通信モード:クライアントが契約を委託した後,注文情報,トランザクションリターン等は,CTPによって点から点へと送られます.

CTP契約のすべての報價および注文取引は変更後に通知され,問い合わせの注文,アカウント,ポジションは積極的にクエリされます.上記の3つのモードは暗号通貨取引 APIで同様の形式を見つけることができます.

異なるレベルのデータ

CTPプロトコルの深さは最新の買取価格のみで,5層の買取価格などの深層の市場コートは高価で,それを入手するために先物取引所に追加金を支払う必要があります.一方,仮想通貨取引所は一般的に最大200層の買取価格まで完全な深さを得ることができます.

また,CTPは実際の取引の報定を押さない.ポジション変更によってのみ逆転させることができ,暗号通貨交換APIは実際の詳細な取引の報定を得ることができます.CTPプラットフォームの市場データティックのレベルは1秒間に2ティックです.ほとんどの暗号通貨交換ウェブソケットは1秒間に最大10ティックを行うことができます.

異なるアクセス制限

仮想通貨取引所は,一般的に毎秒10ティックに制限されています.オーダー引き出しには特別な要件はありません.CTPは積極的に送信する必要がある要求に厳格な制限があります.一般的に,2秒間に1回はかなり安全であり,引き出しの数にも要件があります.

安定性

CTPプロトコルは非常に安定しており,エラーやネットワーク上の問題はほとんどありません.暗号通貨交換が制限が少なく,取引時間が長く,システム保守,データ遅延,ネットワーク上のエラーが非常に一般的です.

FMZ 量子プラットフォーム CTP プロトコル 最良の実践

CTPデフォルトモードは,市場インターフェースを取得します.GetTicker, GetDepth, GetRecordsデータがない場合は,データがあるまで待つので,戦略は使用することはできませんSleep市場価格が変わるとticker, depthそしてrecordsこの時点で,任意のインターフェースが呼び出されるとすぐに返されます.その後,呼び出されたインターフェース状態は更新モードを待つように設定されます. 次の回同じインターフェイスが呼び出されると,新しいデータが戻るまで待つでしょう.

不人気な取引契約や価格が日々の限られた価格に達すると,長期間にわたって取引活動がなくなり,戦略が長期間に渡って固定されるのは普通です.

古いデータでさえ,あなたはすぐに更新モードに切り替えることができます.exchange.IO ("mode", 0)この時点で,戦略はイベントドライバーとして記述することはできません. あなたは追加する必要がありますSLeep低周波戦略は,このモードを使用することができます. 戦略設計は簡単です.exchange.IO("mode", 1)デフォルトキャッシュモードに戻る

単一のコントラクトを実行する場合は,デフォルトモードを使用することは問題ありません. ただし,複数の取引コントラクトがある場合,一つのコントラクトが更新されていないことがあり,その結果,市場インターフェイスがブロックされ,他の取引コントラクトのコート市場更新が利用できません.この問題を解決するには,即時更新モードを使用できますが,高周波戦略を書くのは便利ではありません.この時点で,注文とコートのプッシュを得るためにイベントプッシュモードを使用できます.設定方法は,exchange.IO("wait")商品の先物取引では稀な状況です.exchange.IO ("wait_any")返還されたindex返還された交換のインデックスを示します.

市場コートtick変更押す

{Event:"tick", Index: exchange index (in the order of robot exchange added), Nano: event nanosecond time, Symbol: contract name}

命令 押す

{Event:"order", Index: Exchange Index, Nano: Event Nanosecond Time, Order: Order Information (consistent with GetOrder)}

この時点で戦略構造は次のように書ける.

Function on_tick(symbol){
     Log("symbol update")
     exchange.SetContractType(symbol)
     Log(exchange.GetTicker())
}

Function on_order(order){
     Log("order update", order)
}

Function main(){
     While(true){
         If(exchange.IO("status")){ //Determine the link status
             exchange.IO("mode", 0)
             _C (exchange.SetContractType, "MA888") // subscribe to the MA, only the first time is the real request to send a subscription, the following are just program switch, won't consume any time.
             _C(exchange.SetContractType, "rb888") // Subscribe rb
             While(True){
                 Var e = exchange.IO("wait")
                 If(e){
                     If(e.event == "tick"){
                         On_tick(e.Symbol)
                     }else if(e.event == "order"){
                         On_order(e.Order)
                     }
                 }
            }
         }else{
             Sleep(10*1000)
         }
     }
}

関連性

もっと