コインを購入
マーケット
契約
現物
収益
Web3 new
Phemex学園
Academy > 暗号資産の洞察 > バックテストビットコイン戦略のいろは >

バックテストビットコイン戦略のいろは

2021-02-09 07:59:34

まとめ

  • バックテストは、過去のデータで取引理論をテストするプロセスです。
  • カスタマイズされたバックテスト方法により、投資家は必要な証拠金、スリッページの仮定、金利、逆指値注文の入力を提供し、現実世界に可能な限り近い設定を調整することも可能です。
  • バックテストの自動化が可能。これは、ドルのP/L、シャープレーシオ、成功率、その他多くの多くのパラメータに対し、パフォーマンスを測定することによって行われます。

 

トレーディング・ストラテジーとは、取引所で資産を移動させて利益を得ることを目的としたスキームのことです。トレーディング・ストラテジーには多くの要素が含まれており、インターネット上には誰でも利用できる戦略が無数に存在します。人気のストラテジーの中には、長年の経験を経て吟味されたものもあれば、資産を危険にさらして使われているものもあります。

トレーディング・ストラテジーは基本的にロジックに基づいているが、それが常に完璧とは限りません。ある市場で成功したシステムが、他の市場ではすぐに使えなくなることもあります。無数の人々が、いわゆる「極秘の最善の利益戦略」を販売しているが、完璧なアプローチが保証されているわけではありません。

backtest bitcoin strategy

バックテスティングとは?

バックテストはトレーダーにとって最も重要なツールの一つです。これにより、投資家は資産の過去の値動きに対する戦略のパフォーマンスを確認し、その情報に基づいてどの手法を採用するかを決定することができ、評判の良くない銘柄は買わないというロジックや概念と似ています。

本質的には、バックテストとは、過去のデータに基づいて取引理論をテストするプロセスです。現在のデータに漠然とした戦略を適用して実際の資本を危険にさらすのではなく、バックテストを行うことで、トレーダーはそれぞれの投資に合わせてアプローチを調整することができます。バックテストは、あらゆる取引システムを開発する上で基本的な部分であり、正しく実装されていれば投機家が取引を最適化し、改善するのに役立ちます。また、投資家は理論的な欠陥を探して、現実世界のシナリオに適用する前に戦略的な決定に自信を持つことができます。

さまざまな市場でのバックテスト

しかし、バックテストは確実なものではなく、取引している市場のより広い背景を必要とします。例えば、90年代のドットコム・バブルでストラテジーをテストした場合を見て見ましょう。市場の全盛期には素晴らしいパフォーマンスを発揮したかもしれませんが、バブル崩壊後には失敗する可能性が高いでしょう。「過去のパフォーマンスは将来のリターンを示すものではない」ということばはここでは重く響きますが、それは取引活動を最適化するためにバックテストのテクニックを実践する人々を止めてはいません。ストラテジーをバックテストする前に、過去のデータを分析するときと、現在の市場でストラテジーを適用するときの両方で、時間枠内の幅広い市場動向を考慮に入れておく必要があります。カスタマイズされたバックテスト方法では、投資家は必要な証拠金、スリッページの前提条件、金利、逆指値注文を入力して、現実の世界にできるだけ近づけるように設定を調整することもできます。

残念ながら、これは「過剰最適化」につながる可能性もあります。これは、パフォーマンス指標が過去のデータに対してあまりにも正確に調整されており、実際の取引では十分に不正確になっている状況です。

ソフトウェアと統計の利用

バックテストは、指定された期間からの市場データを使用して使用するために、通常はソフトウェアを介して、取引戦略のルールを定義することが含まれます。統計は、その後、戦略が実際の市場でどれだけ効果的であるかを測定するために、結果から抽出されます。これは過去に成功した戦略が、将来的にも有効である可能性が高いという理論に基づいています。毎回そうなるわけではありませんが、トレーダーが投資方法から何を期待すべきかについて、きちんとしたアイデアを得ることができます。

暗号取引戦略をバックテストすることができるのか?

ブロックチェーンは時代遅れの問題に対する若い解決策ですが、業界は小さく、そのメリットは広範囲に及びます。しかし、現在の低い流動性レベルは、多くの小規模な取引所を悩ませているので、使用したい暗号通貨取引所に基づき、遅延やスリッページのような問題を考慮してバックテストソフトウェアを調整することが重要です。

取引所にて、他のトレーダーの行動をシミュレートすることなくバックテストされた戦略は、実際に使用されたときにいくつかの障壁に直面することができます。トレーダーが発見するような初心的なミスの一つとして、将来の情報を必要とする過去のデータ戦略を実装しています。例えば、市場が後になるまでその情報を持っていないので、24時間の安値で資産を購入する戦略をバックテストすることはできないということです。

バックテストはニュアンスのあるテーマであり、ほとんどの経験豊富なトレーダーはゼロからバックテストを構築することを推奨しています。各々の戦略は異なっており、その違いは必ずしも顕著ではありません。取引戦略に合わせてバックテストを構築することで、失敗の可能性を最小限に抑えることができます。また、テストを実施する前に、リスクエクスポージャーのレベル、利益目標、投資頻度などの要因を考慮することも重要です。

バックテストの自動化

取引を自動化できるのと同じように、バックテストも自動化できます。トレーダーは、指定した戦略に従って自動的に取引を行うためのコードを書いてそれに従いますが、現在の市場状況に合わせてコードを更新し続ける必要があります。

戦略をテストするためにプラットフォームを選択する前に、選択した投資がサポートされているかどうかを検討し、そのプラットフォームがどのようにして市場データを取得しているかを知る必要があります。また、使用するプログラミング言語を決定し、選択した取引戦略をどのようにコードで実装するかを決定する必要があります。

トレーダーはまた、一般的にバックテスト対策を完全に実施する前に、ベンチマークパラメータを使用してシステムを評価します。これは、そのドルP/L、シャープレシオ、成功率、および多くのようなパラメータに対するパフォーマンスを測定することによって行われます。

ドルの損益 (P/L)

P/Lの合計または合計損益は、トレーダーがその取引戦略が有益であったかどうかを判断するのに役立ち、どのくらいの利益や損失が潜在的に同様の状況でその戦略を使用して発生する可能性があります。その名が示すように、平均P/Lは、通常、数分、時間、または日の間隔で発生する可能性のある平均的な利益または損失を示します。

成功率

成功率は、損失を取った取引の数に対して利益を報告した個々の取引の数の比率です。これは、成功した取引戦略の重要な指標となり、どのくらいそれが最も利益を巻き取るために更新または最適化する必要があります。

 

シャープレシオ

シャープレシオは、異なるリスクレベルで同様のリターンを提供する2つの戦略のリスク調整後の、リターンを測定します。リスクは、資産のピーク価格からの値の最大の下落を示す最大ドローダウンを使用して測定することができます。これは、投資家が関与する全体的なリスクと発生する可能性のある潜在的な損失を評価するのに役立ちます。

 

 

 

プログラミング言語 (C++, C#, Java, MATLAB, R, Python)

プログラミング言語はバックテストプラットフォームを開発する上で影響力のある役割を果たすことが可能で、バックテストのニーズに基づいて各言語の長所と短所を比較することが重要です。よく使われる言語にC++, C#, Java, MATLAB, R, Python などがあります。

C++ は最高の実行速度を提供し、それを最適化するために最も柔軟なメモリ管理モジュールを持っています。しかし、動作中にいくつかのバグを引き起こす可能性があり、この言語は学習が難しいことで知られています。

C# and Javaは自動で「ガーベージコレクション」を実行し、これはより高いパフォーマンスオーバーヘッドを持ちますが、より迅速な開発を可能にします。どちらもネイティブのGUI機能、数値解析用のライブラリ、高速実行を備えています。

より科学的な計算には、MATLABは科学的計算のための数値ライブラリと互換性のある市販のIDEを提供しています。その実行速度は間違いなく驚異的ですが、リテールトレードにはコストがかかりすぎるでしょう。

 

Rには、クロスプラットフォームに対応した専用のオープンソース統計スクリプト環境があり、高度な解析を行うためのパッケージがいくつか無料で提供されています。しかし、演算がベクトル化されていない限り、Rの実行速度はやや不足してしまいます

オープンソース、クロスプラットフォームのプログラミング言語といえば、Pythonです。あらゆる種類のタスクのための豊富なパッケージのリポジトリを持っています。高レベルのオブジェクト指向プログラミング言語であり、ユーザーフレンドリーなデータ構造を提供しています。研究に特化した環境もあり、実行速度はイントラデイ取引にも十分対応しています。

 

シミュレーターレーディング

シミュレーターを使用することで、ストラテジーの実行中に発生するかもしれない問題について、より深い洞察を得ることができます。シミュレータは取引所のように動作し、異なる市場条件に合わせて設定できますが、Python、Java、C++などの言語で実装するにはこれらの言語に精通している必要があります。

シミュレーショントレーディングが気になった方は

こちらPhemex Testnet and Trade with Zero-Risks

ビットコインでのバックテスト戦略

バックテストには大きく分けて、研究用バックテストとイベント駆動型バックテストの2種類があります。

バックテストの研究

リサーチ・バックテスト・ツールは、市場のあらゆる側面を完全にシミュレートするのではなく、パフォーマンス情報をより速く中継するための近似値を作成します。リサーチツールは、プロの定量取引業界では、新しい戦略の第一印象を得るためによく使用されていますが、イントラデイ取引の頻度にはあまり適していません。

イベント駆動型のバックテスト

イベントドリブンのバックテストツールは、リアルタイムのマーケットフィードに接続し、コード化されたマーケットイベントが発生したときに取引をトリガーします。イベント駆動システムは永続的に実行され、多くの場合、履歴データを処理し、より現実的な執行を作成するために証券取引をシミュレートするためのサブシステムを備えています。しかし、設計はかなり複雑で、バグが発生しやすくなっています。

市場価格は無数の要因の影響を受けやすく、その変動はしばしばその時期に行われたイベントに遡ることができます。これには、重要な発表、新しい金融政策の導入、インフレ率、年次報告書の発行などが含まれます。ここで注意しなければならないのは、市場が毎回同じように振る舞うわけではないということであり、異なる市場状況下での取引戦略を試すことが重要であるということです。

 

市場は市場となる

バックテストは取引戦略を選択するための主要な部分ですが、専門家のバックテストでさえ、調査結果を大幅に変更する特定のバイアスの餌食になる可能性があります。

これらのバイアスのうち、最も一般的なものは最適化バイアスです。これはバックテスト戦略が歴史的データに対してあまりにも完璧に最適化されているために、現実の市場で最適なパフォーマンスを発揮できなくなってしまった場合のバイアスです。前述したように、歴史的データのバックテストにおいて、将来のデータの必要性を生み出すバイアスもあります。

これは先読みバイアスとして知られており、年次報告書の発行を誤算するような小さな見落としでも結果が歪む可能性があります。バイアスは、最も経験豊富なトレーダーにも忍び寄る可能性があるため、バックテストのプロセス全体を通して警戒を怠らないことが不可欠です。

暗号通貨の取引人気が高まるにつれ、バックテストも広く投資家やトレーダーに採用されるようになりました。市場はクリプトカレンシー暗号通貨のように野生的で予測不可能なので、市場に適用しようとする前にバックテスト取引戦略を行うことが有益である場合があります。バックテストでは、トレーダーは結果を分析して戦略を改善する方法を確認することもできます。

広範囲な市場では、トレンド市場向けに最適化されたシステムが期待通りに機能しない場合があります。バックテストの結果を分析することで、利益を最大化するために設定をカスタマイズすることができます。

しかし、外部の市場の出来事は、戦略の動作に妨害をかけることもできます。ストラテジーのバックテストは利益を保証するものではありませんが、大量の過去のデータを使ってテストを行うことで、トレーダーは現在の市場でストラテジーがどの程度機能するかをより明確に把握することができます。


問い合わせは support@phemex.zendesk.com までお寄せください。
当社の公式Twitterアカウントをフォローし、最新ニュースを入手してください。
Telegramコミュニティに参加し、当社および他の Phemex トレーダーと交流してください。
フェメクッス | Break Through, Break Free
giftRegister to get $180 Welcome Bonus!
Email
Password
招待コード(任意)
  • Facebook
  • Twitter
  • LinkedIn
  • Telegram
  • Discord
  • Youtube
Subscribe Phemex

フェメックスに登録して、今すぐ暗号化の旅を始めましょう!

サインアップで$180をゲット

Bonus

お金をもらえるソーシャル ネットワーク!

毎日1,350PT獲得に参加しましょう