TradingViewのストラテジーテスター入門【バックテストのやり方】

投稿日:
カテゴリ:TradingView

この記事のポイント

「この売買ルールは、本当に有効なのだろうか?」と、自分の取引アイデアに確信が持てずにいませんか。TradingViewの「ストラテジーテスター」は、そんなあなたの自作ロジックが過去の相場で通用したかを検証(バックテスト)する強力なツールです。この記事では、簡単な売買ルールの作成から、そのテスト結果の見方までを初心者にも分かりやすく解説します。これを読めば、データに基づいた客観的な戦略評価が可能になり、あなたのトレードを次のレベルへと引き上げることができます。


「この取引ルール、本当に儲かるの?」過去のデータで検証できない悩み

「ゴールデンクロスで買ったら勝率はどのくらいだろう?」「このインジケ-タ-のサインに従えば、本当に利益は出るのだろうか?」あなたも、自分なりの取引アイデアを思いついた時、その有効性を客観的に知りたくなったことはありませんか。

過去のチャートを目で追いかけて数回分の結果を確認することはできても、それが統計的に本当に優位な戦略なのかは分かりません。

かといって、何の裏付けもないまま、いきなり大切なお金を使ってその戦略を試すのは、あまりにも危険です。

もし、あなたの取引アイデアが、過去10年間のデータでどのような成績を収めたかを、数秒でレポートしてくれる機能があったとしたらどうでしょう。

TradingViewの「ストラテジーテスター」は、まさにそれを実現するための、強力なバックテストツールなのです。

ストラテジーテスターとバックテストとは何か?

「バックテスト」とは、あなたが考案した売買ルールが、過去の相場で通用したかどうかを検証する作業のことです。

そして、TradingViewでこのバックテストを行うための機能が、チャート下部パネルにある「ストラテジーテスター」です。

ここで重要なのは、Pineスクリプトには2つの種類があるという点です。一つは線などを描画するだけの「インジケーター」、もう一つは仮想の売買を実行できる「ストラテジー」です。

ストラテジーテスターは、後者の「ストラテジー」として書かれたスクリプトを動かすためのものです。スクリプトの1行目を`indicator()`ではなく`strategy()`と記述することで、そのスクリプトはストラテジーとして認識され、バックテストが可能になります。

まずはこの違いを理解することが、バックテストの第一歩です。

Pineスクリプト:「インジケーター」から「ストラテジー」への書き換え

バックテストを行うには、Pineスクリプトを「インジケーター」から「ストラテジー」へと変更する必要があります。まず、コードの定義部分を書き換えます。

TradingViewのPineスクリプトで簡単なオリジナルインジケーターを作る方法



上記の記事で作成した`indicator(“…”)`という行を、`strategy(“…”)`というように、単語を`indicator`から`strategy`に変更してください。

これだけで、TradingViewはこのスクリプトをバックテスト可能なものとして認識します。

次に、具体的な売買ルールを追加します。ただ線を描くだけのインジケーターと違い、ストラテジーには「どんな条件で売買するか」という命令が必要です。

そのために使うのが、`strategy.entry()`(新規注文)や`strategy.close()`(決済注文)といった、売買専用の命令文です。

実践:ゴールデンクロスで売買するストラテジーを作成する

それでは、具体的な売買ルールを持つストラテジーを作成します。

ここでは、「20期間の移動平均線が50期間の移動平均線を上抜けたら(ゴールデンクロス)買い、下抜けたら(デッドクロス)決済する」というロジックをコード化します。

まず`strategy()`関数でストラテジーであることを定義します。

次に、20期間と50期間の移動平均線を計算し、`ta.crossover()`という関数でゴールデンクロスの条件を、`ta.crossunder()`でデッドクロスの条件をそれぞれ設定します。

最後に`if`文を使い、「もしゴールデンクロスが起きたら`strategy.entry()`で買い注文を出す」「もしデッドクロスが起きたら`strategy.close()`でポジションを決済する」という命令を記述します。

このコードをPineエディタに入力し、チャートに追加すれば、バックテストの準備は完了です。

ストラテジーテスターの実行と結果の見方

作成したストラテジーを「チャートに追加」すると、自動でバックテストが実行され、売買のシグナルが矢印で表示されます。

その詳細な成績は、チャート下部の「ストラテジーテスター」タブで確認します。まず注目すべきは「純利益」です。これがプラスなら、その期間で利益が出たことを意味します。

「プロフィットファクター」は、総利益を総損失で割った値で、1以上が目安です。「勝率」は、利益の出た取引の割合を示します。

そして「最大ドローダウン」は、期間中の資産の最大下落率で、その戦略が抱えるリスクの大きさを示します。

これらの客観的な数値を見ることで、あなたの取引アイデアが、過去の相場で本当に有効だったのかを評価することができます。

ストラテジーのパラメーターを最適化する方法

バックテストの結果を、より改善させるための作業が「最適化」です。これは、ストラテジー内のパラメーター(移動平均線の期間など)を変更し、最も良い成績が出る組み合わせを探すことです。

これを行うには、インジケーターの時と同様に`input()`関数を使い、期間などの数値を外部から変更可能にします。設定を変更するたびに、ストラテジーテスターの結果は自動で再計算されるため、どの数値の組み合わせが最適かを効率的に探せます。

しかし、最適化には「カーブフィッティング」という大きな罠があります。これは、過去のデータに過剰に適合させすぎることで、未来の相場では機能しない、見せかけの戦略を作り出してしまう危険性です。最適化はほどほどに留めましょう。

行動へのステップ

1.TradingViewのチャート画面を開き、下部パネルから「Pineエディタ」を選択しましょう。
2.この記事で紹介した、ゴールデンクロスで売買する「ストラテジー」のコードを正確に入力してみましょう。
3.エディタ上部の「チャートに追加」ボタンを押し、チャート上に売買を示す矢印が表示されることを確認しましょう。
4.次に、下部パネルの「ストラテジーテスター」タブをクリックし、「純利益」や「勝率」などの成績を確認してみましょう。
5.Pineエディタに戻り、移動平均線の期間の数値を変更して「保存」を押し、バックテストの結果がどう変わるか観察してみましょう。

   今すぐ無料でTradingViewを使ってみる

関連記事

【チャートギャラリー専用】各種銘柄データ

チャートギャラリー用データに最適化しています。ダウンロードしてチャートギャラリーに取り込めばすぐに使えます。

相場師朗先生の「技」銘柄検出データ【営業日毎日更新】

株式各種銘柄データ

株式ランキング銘柄データ【営業日毎日更新】