
ブロックチェーン資産定量取引の発展に伴い、定量取引のツールを認識するブロックチェーン資産トレーダーが増えています。 しかし、私はこのサークルの新メンバーとして、多くの概念について混乱しています。用語、ソフトウェア、情報などすべてが混乱しています。この記事は、ブロックチェーン資産の定量取引に関する一般的な概念を理解し、理解を深め、さまざまな側面から役立つさまざまな情報を学ぶのに役立ちます。 この記事では、まず基本的な概念を要約し、次に FMZ 定量取引プラットフォームにおけるこれらの基本概念に対応する例を示します。
まず、取引所の概念を理解する必要があります。取引所で投機や投資などのために、私たちが手にしているブロックチェーン資産を取引する必要があります。現在、確立された取引所もあれば、新興の取引所もあり、大規模なものも小規模なものも含め、多くの取引所が存在します。どの取引所でプログラム取引や定量取引を行うかは、さまざまな情報をもとに自分で選択する必要があります。
交換口座 取引所口座とは、当取引所に登録され開設された口座のことです。ブロックチェーン資産は取引のためにこのアカウントに保存できます。一部の取引所ではマスターアカウントを作成して設定できるサブアカウント取引用と投機用の資産を分けておくと便利です。サブアカウントの申請作成、仕組み、使い方は取引所ごとに異なりますので、取引所のウェブサイトで確認する必要があります。または、取引所のカスタマーサービスにご相談ください。
取引所のウェブサイトにアカウントでログインすると、通常、ブロックチェーン資産を保管できる場所が複数の「アカウント」(取引所のアカウントではなく、論理アカウント)に分かれていることがわかります。通常、ウォレットアカウント,コインツーコイン取引口座,財務アカウント、契約取引口座 待って。詳細は取引所によって異なる場合があります。通常、ブロックチェーン資産(コイン)は、チャージされた後、特定のアカウント(ウォレットアカウントの場合もあれば、コイン間取引アカウントに直接保存される場合もあります)に保存されます。したがって、チャージ後は資産がどこにあるかを確認し、必要に応じて(先物取引時など)資産を転送する必要があります。
交換システムのAPIインターフェース
この交換機能を使用したことがない学生の多くは、「API インターフェースとは何ですか?」と尋ねるかもしれません。
API インターフェースは、交換システムによって提供される、プログラム操作を可能にするインターフェースです。簡単に言えば、取引所は、(実際のスクリプト)プログラムが取引所システムで注文をしたり、注文をキャンセルしたり、注文を確認したり、口座を確認したりできるようにするチャネルを提供します(取引所のウェブサイト上の特定の取引ペア、ここで自分で想像することができます)資産、位置の確認などの操作を行います。
Exchange APIは、通常、さまざまなタイプのインターフェースに分かれています。RESTプロトコルインターフェース、WebSocketプロトコル インターフェイス。いくつかの取引所では、FIXプロトコル インターフェイス。これらは理解のためだけのものですが、最もよく使われるのはRESTプロトコルのインターフェース。これらのインターフェース ドキュメントは通常、取引所の公式 Web サイトの下部にあります。APIリンク先で見つかりました。場合によっては、インターフェースのエラー情報を照会したい場合でも、これらのドキュメントを確認する必要があることがあります。各取引所の API システムは異なり、大きく異なります。具体的な問題については、ドキュメントを確認する必要があります。戦略開発者でない場合は、このコンテンツは参考目的でのみ使用できます。
アカウントのAPIキー
アカウント API キーは、取引所に保存されているブロックチェーン資産のセキュリティに関係するため、慎重に理解する必要があります。
前述のように、API インターフェースはチャネルなので、API KEY はチャネルとして理解できます。合格。アクセス チャネルが存在するため、すべてのプログラムにアクセスを許可することはできません。これは非常に危険です。そのため、認証が必要となり、API KEY を使用して本人確認が行われます。したがって、API KEY は資産のセキュリティに関係しており、適切に保管する必要があります。
通常、取引所のAPIキーは、取引所ページの右上隅にあるアカウント管理ページで作成されます(一部の取引所では、Webページの別の場所に配置する場合があります。キーワード「API」のリンクを見つけてクリックすると、見つけてください。 API KEYは2つの文字列で構成されています。最初の文字列は通常access key2番目の文字列は通常secret key。また、OKEX V5およびV3インターフェースにはAPI KEYがあり、他の情報も含まれている取引所もあります。PassPhraseこれも文字列です(セキュリティ検証を強化するために自分で設定する必要がある文字列)。
API KEYを設定する際には、通常、このAPI KEYの権限も設定する必要があります。これには通常、「取引」や「コインの引き出し」などの権限が含まれます。API KEYの目的に応じて設定する必要があります。引き出し許可は注意して使用する必要があります。権限に加えて、API KEYはIPアドレスのホワイトリストを設定することもできます。IPアドレスのホワイトリスト外のIP(IPアドレスの概念がわからない場合は、Baiduで検索できます)を使用してインターフェースにアクセスすると、拒否されます(つまり、ホワイトリスト外の IP)。ネットワークはアカウントにアクセスしたり操作したりすることはできません。
交換オブジェクト
交換オブジェクトの概念は、発明者の定量取引プラットフォーム (FMZ.COM) 上の概念です。簡単に言えば、交換インターフェースをカプセル化して形成されたオブジェクトを指します。
このオブジェクトは、FMZ 戦略コード内の exchange です。exchange.GetTicker 関数を呼び出すと、実際には取引所の市場データにアクセスするためのインターフェイスが呼び出されます。
詳細については、FMZ API ドキュメントを参照してください: https://www.fmz.com/api#exchange
取引所には先物セクションとスポットセクションがある場合があります。 FMZ で定義される先物取引所オブジェクトと現物取引所オブジェクトは、異なる種類の取引所オブジェクトであるため、区別されます (先物取引所オブジェクトには、レバレッジ設定機能やポジション照会機能など、現物取引所オブジェクトよりも多くの機能があります)。など、詳細はドキュメントを参照してください。
たとえば、FMZ で Binance Exchange を設定すると、次のように表示されます。
Huobiにも2つあります。

戦略が先物取引オブジェクトで動作する場合は先物を追加し、スポットで動作する場合はスポットを追加します。この設計の理由は、取引所の先物とスポットのインターフェースが完全に異なる可能性があり、インターフェースのベース アドレスも異なる可能性があるため、別々にカプセル化されるためです。
FMZ プラットフォームでは、exchange は exchange アカウントを表す exchange オブジェクトです。詳細については、https://www.fmz.com/api#exchanges を参照してください。
ここで言う取引市場とは、特定の取引面(ある取引ページを想像してください)を指し、通常、取引所には複数のセクションがあります。例えば:コイン対コイン取引,コインツーコインレバレッジ取引,契約取引待って。
取引ペア 私たちが通常「取引ペア」と呼んでいるものは、例えばキャベツを買いに市場に行くときのように、私たちが売買する物として簡単に理解することができます。それで 「キャベツマネー」 これは、買い手が支払いキャベツを受け取り、売り手が支払いお金を受け取るという正しい(区切るために下線 _ を使用する)取引です。特定の取引ペアについては、取引所にアクセスしてください。例:BTC_USDTこの取引ペアを購入するということは、BTC を取得するために USDT を支払うことを意味します。売却操作は、BTC を支払って USDT を取得することです。 によるBTC_USDTたとえば、通常、BTC を取引通貨、USDT を価格設定通貨と呼びます。
スポット商品
コイン対コイン取引,コインツーコインレバレッジ取引スポット取引に分類されます。スポット取引では明確な取引ペア取引がどの市場で行われているかを説明できます。
FMZ 定量取引プラットフォームを例にとると、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
契約(先物、オプション)
契約取引はスポット取引とはまったく異なります。現在、交換契約は币本位合约、USDT本位合约プログラム取引や定量取引では、取引ペアだけでなく契約も決定する必要があります。例えば、BTC を取引したい場合、四半期契約(四半期ごとに期限が切れて引き渡し)、週次契約(毎週金曜日に期限が切れて引き渡し)、無期限契約(引き渡しなし)など、多くの BTC 契約があります。では、取引ペア識別子を 1 つだけ使用する場合は、どのような契約を使用すればよいのでしょうか?そのため、それを記述し確認するには特定の契約コードが必要です。
このように、どの契約市場で取引しているかを説明する際には、どの通貨(取引ペア)で、どの契約(契約コード)であるかを説明する必要があります。
通貨ベースの契約
コインを証拠金として使用する契約(BTC を証拠金として使用し、収入も BTC である BTC コインベースの契約など)の場合、収入もコインになります。通常、コインマージン契約の取引ペアの通貨は USD で表されます (詳細を説明する必要はありません。ほとんどの取引所がこの表現を使用しています)。したがって、取引ペアは BTC_USD であり、契約は四半期契約です。つまり、私たちが話している取引市場はBTC的币本位季度合约市場。
FMZ定量取引プラットフォームでは、exchange.SetCurrency("BTC_USD")取引ペアを設定し、exchange.SetContractType("quarter")四半期ごとの契約を設定します。現在の取引タイプはBTC的币本位季度合约。
USDTマージン契約
USDT を証拠金として使用する契約(USDT を証拠金として使用し、収入も USDT となる BTC の USDT 証拠金契約など)の場合、収入も USDT になります。通常、USDT マージン契約取引ペアの通貨は USDT で表されます。したがって、取引ペアは BTC_USDT であり、契約は永久契約です。つまり、私たちが話している取引市場はBTC的USDT本位永续合约市場。
FMZ定量取引プラットフォームでは、exchange.SetCurrency("BTC_USDT")取引ペアを設定し、exchange.SetContractType("swap")永久契約を設定します。現在の取引タイプはBTC的USDT本位永续合约。
注文 注文とは具体的に何を指すのでしょうか? 注文とは、取引所で売買する際に取引所に提出するリストのことです。注文は成行注文、指値注文、条件注文などに分けられます。注文の最も基本的な属性は、注文対象 (簡単に言えば、何を購入または販売するか)、注文数量 (どれだけ購入または販売するか)、注文価格 (どの価格で購入または販売するか) です。次の注文が金額を気にせず、売買数量と何を売買するかだけを決定する場合、そのような注文は成行注文と呼ばれます。もちろん、条件付き注文(ストップロス注文、アイスバーグ注文など)もありますが、これは特定の取引所に関係しています。一部の取引所では提供されており、一部の取引所では提供されていません。詳細については、取引所の API ドキュメントを確認してください。
スポット商品 スポット市場注文は通常、買い注文に注意が必要です。スポット市場買い注文の注文数量はコインの数ではなく金額です。成行注文では価格が決まらないため、購入金額は数量によってのみ決まります。市場売り注文の数量はコインの数です。価格は不確実であっても、売却されるコインの数は確実だからです。
契約 契約の注文数量は非常に特殊で、通常は契約数です。取引所の契約注文インターフェースは基本的に契約数であり、コイン数を注文数量として使用するインターフェースはありません。 Binance の USDT ベースの BTC 無期限契約では、0.01 の金額で BTC 無期限契約を注文できますが、これはコインの数ではなく、契約の数であり、1 つの契約がたまたま 1 BTC である点が異なります。 一般的に、成行注文か指値注文かに関わらず、注文数量は契約数となります。
テイカー注文とメーカー注文とは何ですか? テイカー注文とは流動性を提供する注文です。簡単に言うと、現在の買い価格は10で売り価格は11です。このとき、買い価格9で買い注文を出すか、売り価格10で売り注文を出します。売り価格の12の売り注文。このとき、ボードの深さに注文を提供します。私の注文はメーカーです。この例では、11の価格で買い注文を出すと、私の注文は11の価格で売り注文と取引されます。この時点で、私は市場から注文を取ります。その価格で出した買い注文は時間はテイカーオーダーでした。
例えば、Inventor Quantitative Trading Platformにカプセル化された注文関数exchange.Sell、exchange.Buy一般的な指値注文と成行注文のインターフェースをカプセル化します。注文を出す際、その注文がテイカーとメイカーのどちらに分類されるかは、注文価格とその時点の市場価格、そして当社の注文が流動性を提供するか、流動性を減少させるかによって決まります。
Inventor Quantitative Trading Platformでは、価格が-1として渡された場合、それは成行注文を出すことを意味します。スポット市場注文の注文数量は金額であるため、成行注文は確実に流動性を減らし、間違いなくテイカー注文。
比如冰山委托、止损单, 止盈单, post_only:只做maker单,fok:全部成交或立即取消,ioc:立即成交并取消剩余待って。
これらの注文はInventor Quantitative Trading Platformで使用できます。exchange.IOこの関数は、取引所の注文インターフェースに直接アクセスして、注文を出すために設定するパラメータ(どの条件付き注文を出すかを指定する)を指定します。のためにexchange.IO関数の使用方法については、FMZ API ドキュメントを参照してください: https://www.fmz.com/api#exchange.io...定量取引プラットフォームは、オンライン ソフトウェア システム、Web サイト、ローカル実行可能プログラム、または GITHUB 上のオープン ソース プロジェクトである可能性のある定量取引ツールと見なすことができます。簡単に言えば、定量的な取引のためのツールと考えることができます。
FMZ 定量取引プラットフォーム Inventor Quantitative Trading Platform はオンライン分散システムです。プラットフォームの概要とチュートリアルについては、https://www.fmz.com/bbs-topic/4145 を参照してください。
定量取引プラットフォームのバックテストシステム バックテストシステムとは何ですか? 簡単に言えば、バックテスト システムは、特定の取引商品の履歴データを再生し、特定の戦略を適用し、履歴データの再生をシミュレートするときにこの戦略の取引パフォーマンスを取得します。つまり、バックテストシステムは単なるサンドボックス環境です(子供が遊ぶ砂場を想像してください。砂場ではさまざまなものを作ることができますが、それらは単なるモデルであり、実際のものとは何の関係もありません)。そのため、実際の取引を行うバックテスト システム。任意の機能。
Inventor 定量取引プラットフォームのバックテスト システム:
| 名前 | タイプ | 説明 |
|---|---|---|
| Bitfinex | スポット取引オブジェクト | BTC_USD、ETH_USD、LTC_USD などの限定された取引ペアをサポートします。取引ペアは USD 建てであることに注意してください。 |
| Binance | スポット取引オブジェクト | BTC_USDT、ETH_USDT、ETH_BTC、LTC_BTC などの限定された取引ペアをサポートします。 |
| OKEX | スポット取引オブジェクト | BTC_USDT、ETH_USDT、ETH_BTC、LTC_BTC などの限定された取引ペアをサポートします。 |
| Huobi | スポット取引オブジェクト | 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建てです。特定の契約コードを設定します(exchange.SetContractType関数を参照)。つまり、契約は通貨ベースの契約です。 |
| BitMEX | 先物取引所オブジェクト | 取引ペアは XBT_USD です。特定の契約コードを設定すると (exchange.SetContractType 関数を参照)、契約は通貨ベースの契約になります |
| Binance Futures | 先物取引所オブジェクト | BTC_USDT、ETH_USDTなどの限られた取引ペアをサポートします。取引ペアはUSDTで表記されます。特定の契約コードを設定すると(exchange.SetContractType関数を参照)、契約はUSDTベースの契約になります。 |
| Deribit オプション | オプション取引所オブジェクト | 取引ペア: BTC_USD、ETH_USD。特定の契約コードを設定すると (exchange.SetContractType 関数を参照)、契約はコインベースの契約になります |
定量取引プラットフォームのAPIキー
取引所には API インターフェースがあり、定量取引プラットフォームにも API インターフェースがあります。 FMZ定量取引プラットフォームを例にとると、FMZのAPIインターフェースは次のように呼ばれます。扩展API。 FMZ プラットフォームの一部の機能はプログラムで操作できます。たとえば、実ディスクのバッチ作成、実ディスクのバッチ起動、実ディスク構成のバッチ変更などです。詳細については、https://www.fmz.com/api#fmz%E5%B9%B3%E5% を参照してください。 8F%B0%E6%89%A9%E5%B1%95api エイピー
拡張APIは次のような興味深いことにも使用できます。Inventor Quantitative Trading Platform Extension APIを使用してTradingViewアラートシグナル取引を実装する
ここまで述べてきましたが、私の取引口座を自動的に制御して取引を行うのは一体何なのでしょうか? これは、プログラム取引と定量取引、つまりプログラム取引スクリプトの具体的な表現です。これらのリアルタイム プログラムは、さまざまな言語で記述できます。たとえば、FMZ 定量取引プラットフォームは、JavaScript、Python、C++ でのリアルタイム取引戦略の記述をサポートしています。これらのスクリプト プログラムは、取引所の API インターフェイスを使用して、アカウントで売買などのさまざまな操作を実行します。
プログラム取引スクリプトが実行されるデバイス
リアルタイム スクリプト プログラムにはデバイス キャリアが必要です (簡単に言えば、リアルタイム スクリプトを実行する場所が必要です)。暗号通貨の世界における定量取引では、通常、香港の Alibaba Cloud サーバーにリアルタイム プログラムを展開します (もちろん、他の場所や他のオペレーターのサーバーを使用することもできます)。現在、多くの取引所が海外のネットワークアクセスを必要としているため、国内のサーバーを使用して多くの取引所 API インターフェースにアクセスすることはできません。一般的に、インターフェースアクセスが利用できない場合はエラーが報告されます。timeout。
FMZ Quantitativeでは、通常、香港のAlibaba Cloudサーバーを使用して独自のソフトウェアプログラムを展開できます(Inventor Quantitative Trading Platformのリアルタイムキャリアソフトウェアは[Trustee]と呼ばれ、リアルタイム定量取引は受託者ソフトウェア)。
スクリプト言語の選択 プログラミング言語は非常に多く、基本的にそれらはすべて、実際のディスク スクリプト プログラムの作成に使用できます。 ここでは、さまざまな言語の利点を理解するために、FMZ 定量取引プラットフォームを例として使用します。 FMZ Quant では、次のプログラミング言語で戦略 (ロボット スクリプト プログラム) を記述できます。
JavaScript シンプルで使いやすく、デバイス環境にほとんど依存せず、ES6 標準をサポートしています。戦略プログラムの実行速度は、C++ 戦略に次ぐものです。 (FMZ定量取引初心者におすすめ)
Python デバイス環境にある程度依存し、さまざまなライブラリをインストールでき、拡張性が強いです。 (FMZ プラットフォームと Python に精通している学生に推奨)
C++
この戦略は実行速度が最も速く、効率も最も高くなりますが、使用はより困難です。
遊んで、他の感情so easy!。
マイ語 FMZ でサポートされているマイク言語は、最も基本的なコマンドのみです。
視覚モジュールスプライシング戦略 視覚的に戦略を作成するのは、興味を高め、プログラム ロジックを理解するためだけです。単純なロジックを作成するのは問題ありませんが、戦略が少し複雑な場合は、保守や拡張が難しく、複雑なロジックを設計するのはさらに難しいため、この方法で戦略を設計するのは適していません。