ブロックチェーン資産の定量取引の発展とともに,ますます多くのブロックチェーン資産トレーダーは定量取引のツールを認識しています. しかし,このサークルの初心者として,彼は多くの概念について非常に混乱し,さまざまな用語,ソフトウェア,情報などによって混乱する可能性があります. この記事は一般的な概念を理解し,熟悉させ,さまざまな側面からブロックチェーン資産の定量的な取引におけるさまざまな有用な情報について学びます. この記事では,まず基本的な概念を要約し,次にこれらの基本的な概念に対応するFMZ量子取引プラットフォームの例を示します.
まず最初に,取引所の概念を理解する必要があります.投機,投資などのためにブロックチェーン資産を取引する必要があります.それらのそれぞれが取引所で行われる必要があります.現在,多くの取引所があります:シニア,新興,大小.プログラムおよび定量取引を行う取引所については,さまざまな情報に基づいて情報を自分でフィルタリングする必要があります.
交換口座 取引口座は,この取引所で登録され開設された口座です. ブロックチェーン資産は,取引のためにこの口座に保存することができます. いくつかの取引所は,作成し,設定することができます.副口座主アカウントの下では,個々の取引と資産の投機を容易にする.各取引所のサブアカウントアプリケーションの作成,メカニズム,および使用は異なります.したがって,取引所のウェブサイトで情報を特定して確認するか,取引所の顧客サービスに相談する必要があります.
取引所のウェブサイトにアカウントでログインした後,通常,ブロックチェーン資産が格納できる場所は複数の
交換システムへの API インターフェース
この交換機能を使用していない多くのユーザーは REST
プロトコル インターフェースとWebSocket
インターフェースも提供しています.FIX
基本的には,我々は,このプロトコルのインターフェースを使用します.REST
このインターフェースの文書は,通常,単語とのリンクで見つけることができますAPIエクスチェンジの公式ウェブサイトの底部にある.時々,このドキュメントをいくつかのインターフェースエラー情報のために確認する必要があります.各エクスチェンジのAPIシステムはかなり異なりますので,特定の問題のためのドキュメントを確認する必要があります.あなたが戦略開発者でない場合は,これらは理解のためにのみです.
アカウントの API キー
取引所に保管されているブロックチェーン資産のセキュリティに関連しているからです.
API インターフェースはチャネルである場合,API KEY は合格アクセスチャネルのせいで,どのプログラムにもアクセスできないので,非常に危険です.したがって,検証が必要です.そして,API KEYは,アイデンティティを検証するために使用されます.したがって,API KEYは,資産のセキュリティに関連しており,適切に保管する必要があります.
通常,取引所のAPI KEYは,取引所のページの右上隅,アカウント管理ページに作成されます (ウェブページの他の場所に交換が配置されている場合もあります. キーワードのリンクを見つけ,クリックしてください). API KEYには2つの文字列があり,最初の文字列は通常,access key
2番目の文字列は通常secret key
. API KEY は他の情報をもっています.例えば,OKEX V5とV3のインターフェースはPassPhrase
セキュリティ検証を強化するために自分で設定する必要がある文字列です.
API KEYを設定する際には,通常,この API KEY の権限を設定する必要があります.一般的に,API KEY の目的に応じて設定すべき"トランザクション"と"引き出"などの権限があり,コインの引き出の許可は慎重に使用する必要があります.権限に加えて,API KEY はIP アドレスホワイトリストも設定できます.このIP アドレスホワイトリスト以外のIPを使用した場合 (IP アドレスコンセプトが Baidu で検索できなければ理解できない場合は) インターフェースへのアクセスが拒否されます (つまり,IP ホワイトリストの外のネットワークはアクセスまたはアカウントを操作することはできません).
交換オブジェクト 交換対象の概念は,FMZ量子取引プラットフォームの概念である (FMZ.COM) 簡単に言うと,交換インターフェースの封筒化によって形成されたオブジェクトを指します. 交換.GetTicker関数,実際にそれは取引市場データにアクセスするためのインターフェースを呼び出す. 詳細については FMZ API 文書を参照してください.https://www.fmz.com/api#exchange取引所には先物セクターとスポットセクターがある.Futures Exchange オブジェクトとFMZで定義されたスポット交換オブジェクトは異なるタイプの交換オブジェクトであるため,区別されます (先物交換オブジェクトは,レバレッジ関数設定,ポジション関数クエリなど,スポット交換オブジェクトよりもいくつかの機能を持っています.詳細についてはドキュメントを確認してください). FMZで設定するときに見ることができます.2つの Huobi もあります
戦略はフューチャー交換オブジェクトで動作する場合は,フューチャーを追加し,スポットで動作したい場合は,スポットを追加します.このデザインの理由は,取引所は完全に異なるフューチャーとスポットインターフェース,そして異なるインターフェースベースアドレスさえ持っている可能性があるため,それらは別々にパッケージされています.
FMZプラットフォームでは,交換は交換オブジェクトであり,交換口座を表しています.詳細については以下を参照してください:https://www.fmz.com/api#exchanges
ここで言及されている取引市場は,特定の取引ボット (取引ページを想像してください) を指します.通常,取引所は複数のセクターを持っています.通貨取引, 通貨レバレッジ取引, 契約取引 etc.
トレーディングペア
例えば,市場に行ってキャベツを買います. そして,その後に,
斑点通貨取引, 通貨レバレッジ取引スポット取引は,ただ,取引先の取引額を指定するだけです.トレーディングペア取引されている市場を記述する.
例えば FMZ Quant Trading Platform を使ってみると,BTC と USDT の取引ペアを作りたい場合は,取引通貨は BTC で,通貨名額は USDT です.
FMZプラットフォームの機能を使用しますexchange.SetCurrency("BTC_USDT")
現在の取引ペアを以下に切り替える:BTC_USDT
- わかった
についてSetCurrency
理解できない人は,以下を参照してください:https://www.fmz.com/api#exchange.setcurrency..- わかった
についてexchange
理解できない人は,以下を参照してください:https://www.fmz.com/api#exchange
契約 (先物・オプション)
契約取引とスポット取引には大きな違いがあります.currency-based contracts
そしてUSDT-based contracts
. プログラム式取引および定量取引では,取引ペアだけでなく,契約も決定する必要があります. 例えば,BTC通貨を取引したい場合,毎季度契約 (毎季度配達が決まる),毎週契約 (毎週金曜日に配達が決まる),永久契約 (配達しない) などを含む多くのBTC通貨契約があります. 識別のために1つの取引ペアのみを使用した場合,どのような契約が作成されますか? したがって,記述および決定するために特定の契約コードが必要です.
この方法で,どの契約市場で取引をするかを説明する際には,どの通貨 (取引ペア) とどの契約 (契約コード) を記述する必要があります.
通貨に基づく契約
通貨をマーージンとして使用するコントラクト (BTC通貨ベースのコントラクトなど,BTCをマーージンとして使用し,利益もBTCである) では,利益は通貨である.通常,通貨マーージンされたコントラクトの取引ペアの名額通貨はUSDで表現される (詳細に話す必要はありません.ほとんどの取引所はこの表現を使用します).したがって,取引ペアはBTC_USDであり,契約は四半期契約です.BTC's currency-based quarterly contract
市場です
FMZ量子取引プラットフォームでexchange.SetCurrency("BTC_USD")
取引ペアを設定し,exchange.SetContractType("quarter")
この方法で,現在の取引の種類は,BTC's currency-based quarterly contract
.
USDTベースの契約
USDTをマージンとして使用するコントラクト (例えば,BTCBTC's USDT-based perpetual contract
市場です
FMZ量子取引プラットフォームでexchange.SetCurrency("BTC_USDT")
取引ペアを設定し,exchange.SetContractType("swap")
この方法で,現在の取引の種類は,BTC's USDT-based perpetual contract
.
命令 この命令は具体的に何を指しているのですか? 注文とは,取引所で購入または販売する際に取引所に提出する注文である.注文は市場注文,制限注文,条件付き注文などに分かれます.注文の最も基本的な属性は:注文の対象 (簡単に言えば,何を購入するか売るか),注文の量 (どれだけの金額で購入するか売るか),注文の価格 (どの価格で購入するか売るか).次の注文がどれだけの金額であっても購入・販売の量と何を購入・販売するかを決定するだけであれば,そのような注文は市場注文と呼ばれます.もちろん,条件付きの注文 (ストップ・ロスの注文,アイスバーグの注文など) も取引に関連しています.一部の取引所はそれを提供しますが,一部の取引所は提供しません.詳細については,取引所のAPIドキュメントを確認することができます.
斑点 スポットオーダーの市場価格リストは,通常,購入注文に注意を払う必要があります. スポットオーダーの市場価格リストの注文量は通貨の数ではなく,金額です. 市場注文が価格を決定しないため,どれだけの購入を決定するには金額のみを使用できます. 市場注文の販売注文の量は通貨の数です. 価格が不確実であっても,どれだけの通貨を販売するかを決定することができます.
契約 契約の注文量は特別で,通常は契約の数である.取引所の契約注文インターフェイスは基本的に契約の数であり,通貨の数を注文量として取るインターフェースはありません.BinanceのUSDTベースのBTC永久契約は,BTC永久契約を0.01の金額で注文することができますが,それは通貨の数ではなく,契約の数であり,1つの契約は正確に1つのBTCです. 一般的には,注文量は,市場注文か制限注文かに関わらず,契約の数です.
命令の受領者,命令の作成者とは? このとき,私は9の購入価格で購入オーダーや12の販売価格で販売オーダーを,この時点で,私はディスクの深さのためのオーダーを提供,そしてこのオーダーはメーカーです. また,この例では,私が11の価格で購入オーダーを置く場合,この時点で私のオーダーは11の価格で販売オーダーで満たされます. そして,私は市場から注文を取ります.この時点で私が置いたこの購入オーダーはテイカーオーダーでした.
例えば,注文の配置機能exchange.Sell
そしてexchange.Buy
FMZ Quant トレーディング プラットフォームに収録されているものは,共通のリミットオーダーとマーケットオーダーのインターフェースを収録しています.注文を出すとき,注文がテイカーかメーカーのカテゴリーに分類されるかは,その時の注文価格と市場,そして私たちの注文が流動性を供給するか,流動性を減少させるかどうかに依存します.
FMZ Quant トレーディング プラットフォームで価格が -1 に渡されたとき,それは市場オーダーを配置するために,スポット市場オーダー購入オーダーのオーダー金額が金額であることを注意してください,市場オーダーは間違いなく流動性の減少であり,それはテイカーオーダーでなければなりません.
交換条件の命令
条件付きの注文もサポートしています.iceberg order
, stop-loss order
, take-profit order
, post_only: only maker order
, fok: complete the deal or cancel immediately
, ioc: deal immediately and cancel the remaining
など
この命令はexchange.IO
FMZ 量子取引プラットフォームの機能は,直接取引先の注文インターフェイスにアクセスし,注文の設定パラメータ (どの条件付き注文を指定する) を指定します.exchange.IO
FMZ APIのドキュメントを参照してください.https://www.fmz.com/api#exchange.io…
定量取引プラットフォームは,定量取引ツールとして考えることができます. それはオンラインソフトウェアシステム,ウェブサイト,ローカル実行プログラム,またはGITHUBのオープンソースプロジェクトかもしれません. 簡単に言えば,定量取引のためのツールとして考えることができます.
FMZ量子取引プラットフォーム FMZ量子取引プラットフォームはオンライン分散システムである.プラットフォームとチュートリアルについての初知識については,以下を参照してください:https://www.fmz.com/bbs-topic/9090
定量取引プラットフォームのバックテストシステム バックテストシステムとは? 簡単に言うと,バックテストシステムは,特定の取引品種の歴史的データを再プレイし,特定の戦略を再生に含めて,歴史的なデータ再生をシミュレートする際にこの戦略の取引パフォーマンスを取得することです. したがって,バックテストシステムはただのサンドボックス環境です (子供たちがプレイする砂の山のように,さまざまなものを作成することができますが,それはモデルに過ぎません. FMZ量子取引プラットフォームのバックテストシステム:
名前 | タイプ | 記述 |
---|---|---|
ビットフィネックス | スポット交換対象 | BTC_USD,ETH_USD,LTC_USDなど,制限された取引ペアをサポートします.取引ペアの通貨はUSDであり,USDで表されます. |
バイナンス | スポット交換対象 | BTC_USDT,ETH_USDT,ETH_BTC,LTC_BTCなど,限られた取引ペアをサポートします. |
オーケイ | スポット交換対象 | v例えば: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTCなど |
ハウビー | スポット交換対象 | BTC_USDT,ETH_USDT,ETH_BTC,LTC_BTCなど,限られた取引ペアをサポートします. |
OKEX先物 | フューチャー取引対象 | 制限された取引ペアをサポートします.例えば: BTC_USD, ETH_USDなど,取引ペアの通貨はUSDです.特定の契約コードを設定した後 (exchange.SetContractType関数を参照してください),契約は通貨ベースの契約です. |
HuobiDMについて | フューチャー取引対象 | HuobiDMは,Huobiフューチャー (Huobi契約) で,BTC_USD,ETH_USDなど,限られた取引ペアをサポートし,取引ペアの名義通貨はUSDです.特定の契約コードを設定した後 (交換を参照してください.SetContractType機能),契約は通貨ベースの契約です. |
ビットメックス | フューチャー取引対象 | 取引対は: XBT_USD. 特定の契約コードを設定した後 (exchange.SetContractType関数を参照),契約は通貨ベースの契約です. |
バイナンス・フューチャー | フューチャー取引対象 | 制限された取引ペアをサポートします.例えば: BTC_USDT, ETH_USDTなど,取引ペアの通貨はUSDTです.特定の契約コードを設定した後 (exchange.SetContractType関数を参照してください),契約はUSDTベースの契約です. |
デリビットオプション | オプション交換オブジェクト | 取引対は: BTC_USD, ETH_USD. 特定の契約コードを設定した後 (exchange.SetContractType関数を参照),契約は通貨ベースの契約です. |
定量取引プラットフォームの API キー
取引所はAPIインターフェイスがあり,定量取引プラットフォームもAPIインターフェイスを持っています.例としてFMZ Quant Trading Platformを挙げると,FMZのAPIインターフェイスはExtended API
, FMZプラットフォームのいくつかの機能は,プログラム的に操作できます.例えば,バッチで実際のボットを作成し,バッチで実際のボットを起動し,バッチで実際のボットの構成を変更してください.詳細については,以下を参照してください:https://www.fmz.com/api#api-extension-of-fmz-platform拡張 API は,面白いことをするためにも使用できます.FMZ Quant Trading Platform エクステンション API を使って,TradingView アラーム信号取引を実装する
自動取引の為の 取引口座を制御するのは何でしょう? これは,プログラミング取引と定量取引の具体的実施形態である. プログラミング取引スクリプト. これらの実際のボットプログラムは,さまざまな言語で記述することができます. 例えば,FMZ Quant Trading Platformは,JavaScript,Python,C++言語で実際のボット取引戦略を書くのをサポートします. これらのスクリプトプログラムは,取引所のAPIインターフェースを通じてアカウントの購入および販売などのさまざまな操作を実行します.
プログラム化取引スクリプトが実行されるデバイス
本物のボットスクリプトプログラムにはデバイスキャリア (要するに,本物のボットには実行する場所が必要です) が必須です.定量的なトランザクションは,通常,本物のボットプログラムを香港のアリババクラウドサーバーに展開します (もちろん,他の場所,他のオペレーターのサーバーも使用できます).多くの取引所が現在海外ネットワークアクセスを必要とするという事実を考えると,国内サーバーを使用して多くの交換APIインターフェースを実行することは不可能です.一般的に,インターフェースがアクセスできない場合,エラーが発生します.timeout
報告されます
FMZプラットフォームでは,通常,香港のアリババクラウドサーバーに独自のソフトウェアプログラムを展開できます (FMZ量子取引プラットフォームの実際のボットキャリアソフトウェアは [docker] と呼ばれ,定量取引の実際のボットはdockerソフトウェアに基づいて実行されます).
スクリプト言語の選択 ボットスクリプトプログラムを書くのに 使える言語は ほとんどすべてあります ここでは,様々な言語の利点を理解するために,FMZ Quant Trading Platformを例として挙げます. FMZ プラットフォームでは,以下のプログラミング言語で戦略 (ロボットスクリプト) を書きます.
JavaScript 戦略プログラム実行速度はC++戦略に次ぐ. (FMZ Quant Trading Platformで初心者向けに推奨)
パイソン デバイス環境によってある程度依存し,さまざまなライブラリがインストールされ,高いスケーラビリティが備わっています. (FMZプラットフォームとPythonに精通している学生に推奨)
C++
この戦略は最速で最も効率的ですが 使うのは難しいのです
他のプログラミング言語はso easy!
.
MyLanguage は FMZプラットフォームがサポートする MyLanguage は最も基本的なコマンドです.
ビジュアルモジュールスペイシング戦略 視覚創造の戦略は,興味を深め,プログラム論理を理解するためにのみ使用されます.いくつかの単純な論理を作成するために使用できますが,戦略が少し複雑であれば,複雑な論理を維持し,拡張し,設計することが困難だからです.