タグ: ストラテジー

  • TradingViewのストラテジーテスターを見る時の注意点

    TradingViewでストラテジーを追加すると、チャート下部にStrategy ReportやStrategy Testerが表示されます。数字が並ぶため、つい総損益やプラスになった取引の割合だけを見たくなりますが、それだけではテスト条件を見落としやすくなります。

    この記事では、TradingView公式ヘルプとPine Script公式ドキュメントをもとに、Strategy Reportの見方、Overview、Performance Summary、List of Trades、Properties、Broker emulator、Bar Magnifierを分けて見ます。ストラテジーテスターは過去データ上のシミュレーションを見るための材料であり、将来の結果を保証するものではありません。

    先に短く言うと
    • TradingView公式ヘルプでは、Strategy Reportはトレードアイデアをテストするためのツールとして説明されています。
    • インジケーターはチャート上にデータやサインを表示し、ストラテジーは結果レポートを自動で生成するものとして分けられています。
    • 見る場所は、Overview、Performance Summary、List of Trades、Propertiesの4つに分けると読みやすくなります。
    • Broker emulatorやBar Magnifierの扱いによって、過去データ上の約定の見え方が変わる場合があります。

    TradingViewのストラテジーテスターは何を見る場所か

    TradingView公式ヘルプでは、Strategy Reportはトレードアイデアをテストするためのツールとして説明されています。インジケーターはチャート上にデータやサインを表示する一方、ストラテジーは自動で結果レポートを生成します。

    Pine Script公式ドキュメントでは、strategy() で宣言されたスクリプトをチャートに追加すると、Strategy Testerで仮想的なパフォーマンスや設定情報を見られると説明されています。つまり、通常のインジケーターとストラテジーは、表示するものとレポート化するものが違います。

    公式情報で見る位置づけ

    TradingViewのストラテジーテスターは、過去データ上でストラテジーのシミュレーション結果を見る場所です。チャートに表示された矢印や線だけではなく、結果タブ、取引一覧、設定内容、使用データをあわせて見る必要があります。

    まずインジケーターとストラテジーを分ける

    TradingViewでは、チャートに追加するものがすべて同じ役割とは限りません。インジケーターは値、線、サイン、背景色などを表示するためのものです。ストラテジーは仮想注文を発生させ、Strategy Testerで結果を表示するためのものです。

    Pine Scriptの宣言文でも、indicator()strategy() は役割が分かれます。ストラテジーテスターを見ているつもりでも、実際にはインジケーターだけを見ている場合、Strategy Reportは表示されません。まず、追加したスクリプトがストラテジーなのかを見てください。

    Indicator チャート上の表示を見る

    ライン、サイン、背景色、数値などを表示します。Strategy Reportの結果を自動生成する役割とは分けて見ます。

    Strategy シミュレーション結果を見る

    仮想注文を発生させ、Strategy TesterでOverview、Performance Summary、List of Tradesなどを表示します。

    Strategy Report 結果タブを見る

    ストラテジーを追加した時に、チャート下部で結果を確認するためのレポートです。

    Strategy Reportの4つのタブを分けて見る

    Pine Script公式ドキュメントでは、Strategy TesterはOverview、Performance Summary、List of Trades、Propertiesの4つのタブに分かれると説明されています。最初にOverviewだけを見て判断すると、取引ごとの動きや設定内容を見落としやすくなります。

    それぞれのタブは、見ている対象が違います。全体の流れ、数字の内訳、取引ごとの履歴、ストラテジーの設定を分けて読むと、どこに注意すべきかが見えやすくなります。

    Overview 全体像を見る

    Equity、Drawdown、Buy & Hold equityなどのグラフや主要な数値を見ます。最初の入口として使います。

    Performance Summary 数字の内訳を見る

    全取引、Long、Shortに分けた指標を見ます。方向別の偏りを見たい時に重要です。

    List of Trades 取引ごとの履歴を見る

    エントリー、決済、注文名、価格、数量、損益、累積損益、run-up、drawdownを時系列で見ます。

    Properties 条件と設定を見る

    日付範囲、シンボル情報、入力値、ストラテジーの設定などを見ます。結果だけでなく条件確認に使います。

    Overviewではグラフと比較対象を見る

    Overviewタブは、ストラテジーの全体像を見る入口です。Pine Script公式ドキュメントでは、Equityの推移、Drawdown、Buy & Hold equityなどの表示が説明されています。TradingView公式ヘルプでも、Total P&L、Max equity drawdown、Total trades、Profitable trades、Profit factorなどがOverviewに表示される項目として案内されています。

    ただし、Overviewだけで判断すると、どの期間に結果が偏っているのか、LongとShortのどちらに偏っているのか、どの取引で大きく崩れたのかが見えにくい場合があります。Overviewは入口として使い、次にPerformance SummaryとList of Tradesへ進むのが安全です。

    Overviewだけで終わらせない

    Overviewは便利ですが、全体を丸めた表示です。損益曲線がよく見えても、取引数、期間、ドローダウン、方向別の偏り、使用しているチャート種別まで見ないと、条件の確認としては不十分です。

    Performance Summaryでは方向別の偏りを見る

    Performance Summaryタブは、戦略の指標をより詳しく見る場所です。TradingView公式ヘルプでは、このタブにNet Profit、Gross Profit、Max Drawdownなどを含む利用可能な指標が表示され、All、Long、Shortの列に分かれると説明されています。

    ここでは、全体の数字だけでなく、Long側とShort側で極端な差がないかを見ます。片側だけに結果が偏っている場合、相場環境や銘柄、時間足によって見え方が変わる可能性があります。数字を大きく見せるためではなく、どの条件で動いていたのかを読む場所として扱ってください。

    All 全体の指標

    すべての仮想取引をまとめた列です。まずは全体像を見るために使います。

    Long 買い方向の結果

    買い方向の取引だけを分けて見ます。上昇局面に偏っていないかを見る材料になります。

    Short 売り方向の結果

    売り方向の取引だけを分けて見ます。下落局面やレンジでの挙動を確認する材料になります。

    List of Tradesでは取引ごとの並びを見る

    List of Tradesタブでは、ストラテジーの仮想取引が時系列で表示されます。Pine Script公式ドキュメントでは、エントリーと決済の日時、注文名、価格、数量、損益、累積損益、run-up、drawdownなどが表示されると説明されています。

    ここでは、どの取引が全体の結果に大きく影響しているかを見ることができます。少数の取引に依存しているのか、特定期間だけに偏っているのか、連続して悪化している期間があるのかを見てください。

    Entry / Exit 入退場の位置を見る

    注文がどのバーで入って、どのバーで出ているかを見ます。チャート上へ移動して確認できる場合もあります。

    Run-up 途中の最大伸びを見る

    取引中にどこまで良い方向へ動いたかを見る指標です。決済結果だけでは見えない途中経過を見ます。

    Drawdown 途中の落ち込みを見る

    取引中にどこまで悪い方向へ動いたかを見る指標です。最終結果だけでなく途中の負荷を見ます。

    Propertiesでは条件を見落とさない

    Propertiesタブは、結果を見る前提条件を確認する場所です。Pine Script公式ドキュメントでは、Date Range、Symbol Info、Strategy Inputs、Strategy Propertiesなどが表示されると説明されています。

    日付範囲、銘柄、時間足、チャート種別、入力値、初期資金、注文サイズ、margin、pyramiding、slippageなどの設定が違えば、結果の見え方も変わります。ここは派手な数字より地味ですが、見落とすとテストの意味を読み違えます。

    Propertiesで見たいこと
    • テストに使った日付範囲
    • 銘柄、時間足、チャート種別
    • ストラテジー入力値
    • 注文サイズやpyramidingの設定
    • slippageなどのテスト条件
    • 標準チャートか、非標準チャートか

    Broker emulatorの前提も見る

    Pine Script公式ドキュメントでは、TradingViewはストラテジー実行時にBroker emulatorを使って仮想取引をシミュレーションすると説明されています。実際の取引とは異なり、標準ではチャート上で利用できるデータだけを使って注文を処理します。

    このため、過去バーではバーが閉じた後に注文処理されるなど、実際のリアルタイム運用とは異なる見え方になる場合があります。ストラテジーテスターを見る時は、レポート上の数値だけでなく、どのような仮定で注文が処理されているかも見てください。

    標準チャートと非標準チャート

    Pine Script公式ドキュメントでは、Heikin Ashi、Renko、Line Break、Kagi、Point & Figure、Rangeなどの非標準チャートでのストラテジー結果は、標準では実際の市場条件を反映しないと説明されています。テスト時は標準チャートを使うことが推奨されています。

    Bar Magnifierは万能ではなく条件を見る

    TradingView公式ヘルプでは、Bar Magnifierを使うと、Broker emulatorがバックテスト中に下位時間足の価格変化へアクセスし、同じ期間でフォワードテストした場合に近い挙動にできると説明されています。

    ただし、公式ヘルプでは、下位時間足から取得できるバー数に制限があり、データ量が多い場合はチャート上の最初の取引がBar Magnifierの影響を受けない場合があることも説明されています。Bar Magnifierを使っているかどうかだけでなく、どの範囲に効いているかを見る必要があります。

    通常の見方 バー内の動きは推定される

    標準では、チャートのOHLC情報をもとにバー内の動きを推定して注文処理が行われます。

    Bar Magnifier 下位足データを使う

    下位時間足のデータを使うことで、バー内の動きに近い形でシミュレーションできる場合があります。

    制限 対象範囲を見る

    下位時間足データには取得できる本数の制限があり、古い取引には影響しない場合があります。

    CSV出力はタブごとに分かれる

    TradingView公式ヘルプでは、Strategy ReportのDownloadボタンからCSVとしてデータを保存できると説明されています。ただし、各タブの情報は別々に出力されます。List of Tradesから出力すると取引情報だけ、Performance Summaryから出力すると指標だけになります。

    あとで見返す場合は、どのタブから出力したCSVかを分けて保存してください。取引履歴を見たいのか、指標を見たいのか、設定を見たいのかを混ぜると、後から読み返す時に迷いやすくなります。

    ストラテジーテスターを見る前のチェックリスト

    TradingViewのストラテジーテスターは便利ですが、数字を一つだけ見て判断する場所ではありません。どのストラテジーを、どの銘柄、どの時間足、どの期間、どの設定で見たのかを分けてください。

    テスト結果を見る前に押さえること
    • 追加したスクリプトがインジケーターではなくストラテジーか
    • OverviewだけでなくPerformance SummaryとList of Tradesを見たか
    • Propertiesで日付範囲、銘柄、時間足、入力値を見たか
    • 標準チャートか非標準チャートか
    • Broker emulatorの前提を理解しているか
    • Bar Magnifierを使っている場合、その対象範囲を見たか
    • CSV出力する場合、どのタブのデータか分けて保存したか
    • 過去データ上の結果と将来の値動きを混同していないか

    検証メモ

    TradingViewのストラテジーテスターを見る時は、Overviewの見た目だけでなく、取引一覧、設定、チャート種別、Broker emulatorの前提まで分けることが大切です。

    ストラテジーテスターは過去データ上で条件を読むための材料です。結果をそのまま将来の値動きと同じものとして扱わないようにしてください。

    用語集であわせて見たい言葉

    関連して読みたい記事

    まとめ

    TradingViewのストラテジーテスターを見る時は、Overview、Performance Summary、List of Trades、Propertiesを分けて読むことが大切です。数字だけでなく、日付範囲、銘柄、時間足、入力値、チャート種別、Broker emulatorの前提を見てください。

    Bar MagnifierやCSV出力も便利ですが、使っている条件と対象範囲を分けて見る必要があります。ストラテジーテスターは過去データ上のシミュレーションを読むための道具であり、取引判断を補助する材料の一つとして扱ってください。

    参考文献
    • TradingView Help Center「TradingView Strategy Report: How to start」https://www.tradingview.com/support/solutions/43000764138-tradingview-strategy-report-how-to-start/
    • TradingView Pine Script Docs「Strategies」https://www.tradingview.com/pine-script-docs/concepts/strategies/
    • TradingView Help Center「Performance Summary Tab」https://www.tradingview.com/support/solutions/43000681683-performance-summary-tab/
    • TradingView Help Center「What is bar magnifier backtesting mode」https://www.tradingview.com/support/solutions/43000669285-what-is-bar-magnifier-backtesting-mode/
    • TradingView Help Center「How to export strategy data」https://www.tradingview.com/support/solutions/43000613680-how-to-export-strategy-data/
  • Pine Scriptとは|インジケーターを自作する前に見ること

    TradingViewでインジケーターを自作したいと思った時、最初に出てくるのがPine Scriptです。ただ、名前だけを見ると、MT4のMQL4やMT5のMQL5と同じように扱える言語なのか、TradingViewの画面内だけで使うものなのかが分かりにくいところがあります。

    Pine Scriptを見る時は、コードの書き方だけでなく、TradingView上で動くこと、インジケーター・ストラテジー・ライブラリの種類があること、バーごとに実行されること、アラートは別途作成が必要になることを先に分けておくと迷いにくくなります。

    先に短く言うと
    • Pine ScriptはTradingViewのプログラミング言語で、TradingView上のインジケーターやストラテジーを作る時に使います。
    • TradingView公式ドキュメントでは、Pine ScriptはTradingViewのサーバー上で動くツールを作るための言語として説明されています。
    • すべてのPineスクリプトには、indicator()strategy()library() のいずれかの宣言が必要です。
    • MT4のMQL4やMT5のMQL5とは、動く場所、ファイルの扱い、注文シミュレーションやアラートの考え方が違います。

    Pine ScriptはTradingView上で使う言語

    TradingView公式ドキュメントでは、Pine ScriptはTradingViewのプログラミング言語であり、自分用の取引ツールを作り、TradingViewのサーバー上で動かせるものとして説明されています。用途としては、インジケーターやストラテジーの開発が中心です。

    ここで大切なのは、Pine Scriptを「MT4やMT5へ入れるファイル」として見ないことです。MT4ではMQL4、MT5ではMQL5、TradingViewではPine Scriptというように、使う場所が違います。似たような移動平均線やサイン表示を作る場合でも、コードをそのまま流用できるとは限りません。

    公式情報で見るPine Scriptの位置づけ

    TradingView公式ドキュメントでは、Pine ScriptはTradingViewの軽量かつ強力な言語として設計され、インジケーターやストラテジーを作り、それらをバックテストできると説明されています。また、多くの組み込みインジケーターがPine Scriptで書かれていることにも触れています。

    用途1 インジケーターを作る

    チャート上に線、帯、条件表示、ラベル、図形などを出して、相場を見るための補助情報を表示します。

    用途2 ストラテジーを書く

    売買ルールを過去データ上でシミュレーションするためのスクリプトです。結果は判断材料の一つとして見ます。

    用途3 ライブラリを使う

    よく使う関数などを再利用するための仕組みです。インジケーターやストラテジーから呼び出して使います。

    最初に見るのはindicator、strategy、libraryの違い

    Pine Scriptの公式ドキュメントでは、すべてのPineスクリプトに宣言文が必要で、indicator()strategy()library() のいずれかを使うと説明されています。つまり、コードを書く前に「これは何のスクリプトなのか」を決める必要があります。

    インジケーターを自作したいなら、最初は indicator() から見るのが自然です。ストラテジーは過去データ上で売買ルールをシミュレーションするためのもの、ライブラリは関数などを再利用するためのものとして分けます。

    indicator() 表示やアラート向け

    インジケーターとして宣言するための関数です。計算結果をチャートに表示したり、条件に応じてアラートイベントを用意したりする場面で見ます。

    strategy() 過去データ上の検証向け

    ストラテジーとして宣言するための関数です。仮想的な注文やバックテスト結果を見るための機能が関係します。

    library() 再利用する関数向け

    他のスクリプトで使い回す関数や構造をまとめるための宣言です。最初の自作インジでは主役になりにくいですが、後で効いてきます。

    インジケーター自作前に見たい流れ

    TradingView公式の「First indicator」では、Pine Editorを開き、新しいインジケーターを作成し、コードを保存して、Add to chartでチャートへ追加する流れが示されています。いきなり複雑なサインや複数時間足の処理を見るより、まずは小さな計算を表示するところから始める方が理解しやすくなります。

    自作インジケーターは、見た目の完成度より先に、どの価格を使うのか、どの時間足で見るのか、過去バーと現在バーで計算がどう変わるのかを押さえる必要があります。Pine Scriptはバーごとに実行されるため、現在進行中のバーでは結果が動く場合があります。

    1
    Pine Editorを開く TradingViewのチャート下部にあるPine Editorから、コードを書く場所を開きます。
    2
    新しいIndicatorを作る 新規作成時にIndicatorを選び、indicator() 宣言のスクリプトとして作ります。
    3
    保存してチャートへ追加する コードを保存し、Add to chartでチャート上へ反映します。設定画面で入力値を変えられるようにする流れも後で見ます。

    バーごとに実行される仕組みを見る

    Pine Scriptの実行モデルは、イベント駆動で順番に処理される仕組みです。公式ドキュメントでは、スクリプトはデータセットの各バーで繰り返し実行され、バーごとに計算や表示を行うと説明されています。

    この仕組みは、インジケーターの見え方に直結します。確定済みの過去バーでは結果が固定されて見えても、リアルタイムで動いているバーでは価格や出来高の更新に応じて計算結果が変わることがあります。リペイントやアラートの違和感を見る時にも、この前提が関係します。

    実行タイミングで見ること
    • 過去バーで計算される値と、現在進行中のバーで動く値を分けて見る
    • openhighlowclosevolume などのデータをどこで使うかを見る
    • アラート条件がバー確定前に動くのか、バー確定後に見るのかを分ける
    • 表示が変わることと、コードが誤っていることをすぐ同一視しない

    アラートはコードだけでは動かない

    Pine Scriptでアラートを扱う時は、コードを書けばすぐ通知が作成されるわけではありません。TradingView公式ドキュメントでは、Pine Scriptのアラート関連コードはアラートイベントを用意するものであり、実際に動くアラートはチャートUI側でユーザーが作成する必要があると説明されています。

    また、アラート作成時にはスクリプト、入力値、チャートの銘柄と時間足などがTradingViewサーバー上に保存されます。そのため、あとからスクリプトや入力値を変えても、既に作成したアラートへ自動で反映されない場合があります。インジケーター自作前に、この点は必ず見ておきたいところです。

    公式情報で見るアラートの注意点

    TradingViewのPine Scriptドキュメントでは、alert()alertcondition() などはアラートイベントを作るためのもので、実際のアラートはユーザーがCreate Alert画面で作成すると説明されています。また、作成済みアラートはスクリプトや入力値のスナップショットを使うため、後から条件を変えた場合は作り直しが必要になることがあります。

    MT4・MT5の自作インジと同じ感覚で見ない

    MT4やMT5の自作インジケーターでは、MQL4やMQL5、EX4やEX5、データフォルダ、ナビゲーター表示などを見ることが多いです。一方、Pine ScriptはTradingView上のPine Editor、チャート、アラート、公開スクリプト、ストラテジーテスターと結びついて見ます。

    そのため、MT4用のインジケーターファイルをTradingViewへ入れる、Pine ScriptをMT5のデータフォルダへ置く、といった使い方は前提が違います。似たロジックを別環境で再現したい場合は、コード変換ではなく、計算条件を読み直して別言語で書き直す発想が必要になります。

    MT4 MQL4とファイル配置を見る

    カスタムインジケーターでは、MQL4、EX4、データフォルダ、Navigator表示などが関係します。

    MT5 MQL5とEX5を見る

    MT5では、MQL5、EX5、MQL5/Indicators、MetaEditor、ストラテジーテスターなどを分けて見ます。

    TradingView Pine Editorとチャートを見る

    Pine ScriptはTradingView上で書き、保存し、チャートへ追加して動かすスクリプトとして見ます。

    自作前に決めておきたいこと

    インジケーターを自作する前に、まず「何を表示したいのか」を決めてください。サインを出したいのか、移動平均や高安値を見やすくしたいのか、時間帯や価格帯を色分けしたいのかで、必要なコードは変わります。

    TradingViewのPine Scriptには、多くの組み込み変数や関数があります。公式ドキュメントでは、Pine Scriptには多数の組み込み変数・関数があり、言語リファレンスがコードを書く時の重要な資料になると説明されています。最初から全部を覚えるのではなく、必要な関数を公式リファレンスで引きながら進めるのが現実的です。

    表示 何をチャートに出すか

    線、色、ラベル、背景、条件表示など、まずは見せたいものを一つに絞ります。

    条件 何をもとに判断するか

    価格、出来高、移動平均、時間帯、過去バーなど、使うデータを先に分けます。

    通知 アラートが必要か

    表示だけでよいのか、アラートイベントも用意するのかを分けて考えます。

    導入前メモ

    Pine Scriptを見る前に、まずは「何を補助したいのか」を一つに絞ると、必要な関数や表示方法を探しやすくなります。

    自作インジケーターは取引判断を補助する道具です。表示やアラートの便利さと、取引結果を混同しないようにしてください。

    用語集であわせて見たい言葉

    関連記事

    まとめ

    Pine Scriptは、TradingView上でインジケーターやストラテジーを作るための言語です。MT4のMQL4やMT5のMQL5とは、動く場所、保存のされ方、アラートや検証の扱いが違います。

    インジケーターを自作する前には、indicator()strategy()library() の違い、バーごとの実行、リアルタイムバーで値が動く可能性、アラートはUI側で作る必要があることを先に見ておくと、つまずきにくくなります。まずは小さな表示から始め、公式ドキュメントで仕様を確認しながら進めてください。

    参考文献