ボットの誕生:序章 – 戦略構築の基本(前編)

  • URLをコピーしました!

ビットコインにトレンドフォローのシグナルを適用することで、市場の下落時にどのように保護されるかを既に見てきました。今回のシリーズでは、一歩下がって、取引戦略をアイデアから展開可能なボットにするために考慮しなければならない個々のパーツを詳しく見ていきます。

この紹介記事では、戦略開発の主な構成要素であるユニバース選択、時間枠と取引頻度、シグナル選択、パラメトリック化、ポジションサイジング、そして最後にバックテストについて簡単に説明します。これらの構成要素はそれぞれ、最終的な戦略に関する重要な質問に答えるものである。

目次

投資ユニバース

ボットの最初の構成要素は、それが取引するユニバースです。投資ユニバースは、いくつかの共通の選択基準を満たす取引可能な資産の事前定義されたセットを構成しています。上記の投稿では、ボットが取引する唯一のコインとしてBTCを使用しました。ここで、もう一歩進めて、この戦略のユニバースを拡大します。その理由は 多様化.昔から言われている「すべての卵を一つのカゴに盛るな」という言葉は、暗号取引にも当てはまります。このステートメントの背後にある直感は、バランスの取れたポートフォリオのリスクは、そのすべての個々の有価証券のリスクの合計よりも小さいということです。与えられた期待リターンに対して、最もリスクの少ないポートフォリオが最も効率的とみなされます。ノーベル賞受賞者のハリー・マルコウィッツがすでに指摘しているように、「分散投資は投資における唯一のフリーランチ」なのである。

取引間隔

ユニバースの選択はまた、我々の戦略の時間枠と取引頻度に影響されます。取引頻度が高ければ高いほど、流動性、ビッド・アスク・スプレッド、個々のコインの取引コストなどの考慮事項がより重要になります。(マーケット-) 流動性 とは、市場価格に影響を与えることなく、一定期間内に投資を購入または売却することができる容易さのことを指します。例えば、週に一度しか取引しない戦略を展開する場合、取引量の多さによって悪い価格を得ることなく、市場で希望する量が得られるまで少し待たなければならないとしても、あまり気にならないでしょう。しかし、もし私たちが毎分取引するとしたら、流動性が低いとすぐに私たちの戦略の採算が合わなくなる可能性があります。特に暗号取引では、流動性は資産によって大きく異なります。

さらに、取引をすればするほど、取引コストが蓄積されていきます。一般的に、どの資産においても、流動性と取引コストの間に逆相関があることが観察されます。こうした理由から、取引頻度は戦略の成功に重要な役割を果たすのです。

シグナル

私たちの戦略の核心は、その選択についてです。 トレーディングシグナル.取引シグナルは、私たちの取引アルゴリズムのためにポジションのエントリーとエグジットを作成します。そのような取引シグナルを考え出すには、様々な方法があります。非常に人気のある選択肢は、次のものを使用することです。 テクニカルトレーディングインディケーター.また、機械学習を利用してシグナルを生成することも可能です。例えば、トラリピの最近のブログ記事では、2つの指数移動平均(指標)を比較して、戦略のためのエントリーと出口のシグナルを生成しています。混乱を避けるため、以後、シグナルジェネレーターをエントリーシグナルとエグジットシグナルを生成する方法と呼ぶことにします。

どのようなシグナル生成プロセスを使用するにしても、どのデータを基に戦略を立てるかを決めなければなりません。価格データ、オーダーブックデータ、またはその両方の組み合わせを使用するのか?追加の代替データを使用するか?最も一般的な価格データは、時間間隔(1時間、1日など)ごとに取得され、資産の始値、高値、安値、終値(OHLC)、およびその時間間隔で取引された関連取引量が含まれています。金融用語では、これらのデータポイントはローソク足とも呼ばれます。その オーダーブック は、ある時点のすべての未決済注文から構成されます。オーダーブックデータを分析することで、マーケットをより深く見ることができます。オーダーブックデータは瞬時に変化するため、分析がより複雑になります。金融における代替データの詳細な概要については、こちらをご覧ください。 JPモルガンのレポート.

さらに、私たちのボットがどの取引戦略のクラスに属するかを決定する必要があります。例えば、トレンドフォロー戦略を採用しているのか、それとも平均回帰に基づいてポジションをとっているのか。もちろん、取引戦略の種類はこれだけではありません。検討可能な取引戦略は他にもたくさんあり、今後の記事でそのいくつかを取り上げる予定です。

また、取引戦略の中で複数のシグナルジェネレータを使用することも可能です(推奨もします!)。これにより、私たちのボットは異なる市場条件で良好なパフォーマンスを発揮することができ、多様化の別のレイヤーを追加することができます。多数のシグナルを使用することで、戦略全体のボラティリティを下げ、次のような事態から保護することができます。 オーバーフィッティング バックテストで

パラメトリゼーション

使用するシグナルジェネレータが決まったら、それらに適切なパラメータを指定する必要があります。テクニカル指標の分野では、しばしばルックバック期間を指定し、それによってパラメータを重み付けする必要があります。機械学習の分野では ハイパーパラメータ を使用する。

例えば、前回の投稿では、20時間足と40時間足の窓をベースにした2つのEMA指標を使用しました。これらのパラメータをどのように選択するかは、それ自体が芸術です。過去のシミュレーションに基づいてパラメータを選択する際にしばしば発生する問題は、オーバーフィットです。この問題は、シグナルジェネレータが調整可能な多くのパラメータを採用している場合によく発生します。このような場合、過去のデータに対して非常に良いパフォーマンスを発揮するようにパラメータを調整する誘惑が非常に高くなります。その結果、パラメータのセットが過去のデータに対して最適であるだけでなく、実際にストラテジーをライブで取引する際にもパフォーマンスを発揮し続けることを確認する必要があります。

ポジションサイジング

最後に、戦略を完成させるために、どれだけの取引を行うか(ポジションサイズ)を決める必要があります。ポジションサイジングは、取引、ポジション、あるいは戦略自体にどれだけの資金を割り当てるかという問題を扱うものです。固定ドル、等比率、リスクベースのポジションサイジングなど、様々な手法があります。

以前構築したBTC戦略の場合、1回の取引に80%の資金を採用しました。この数字をどのように選択すればよいのでしょうか?複数のコインを取引する戦略ではどうでしょうか。すべてのコインに等しく資本を配分するのか、シグナルの強さ、原コインのボラティリティ、一般的な市場環境などの要因に応じてポジションサイズを変更するのか?この決定は、戦略の全体的な収益性に大きな影響を与える可能性があります。

バックテスト

A バックテスト は、取引戦略の事後的なシミュレーションである。伝統的な意味での取引戦略は、過去の市場データに基づいて評価されます。バックテストを実行する場合、バックテストに利用できる期間を以下のように分割することが特に重要です。 インサンプルとアウトオブサンプルのデータ.インサンプルデータを使用して戦略を最適化し、満足したら、アウトオブサンプルデータを使用して結果を検証し、実際のライブ取引でパフォーマンスが低下する可能性が高いオーバーフィットの戦略で終わらないことを確認するのです。幸運なことに、Tralityのバックテストモジュールは、これを非常に簡単に行うことができます。

これで、ストラテジー開発の個々の構成要素について概観することができたので、ストラテジー開発に関するシリーズの第1部を終了します。次回の記事では、最初の学習内容を応用して、マルチコイン取引ボットの最初のイテレーションを構築する予定ですので、お楽しみに。

さて、いよいよこのトピックをより深く掘り下げていくことになります。 パート2 戦略構築の基本シリーズ。

Pt.2へ


ステファンは、金融業界で6年以上の経験を持つクオンツです。現在は、機関投資家向けの保険投資を専門とする独立系投資顧問会社で、Director Risk Management & Analyticsの役職に就いている。自由時間には、7年間にわたり、複数の資産クラスを対象としたアルゴリズム取引戦略の開発および実装を行っています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次