TradingViewの平均足・練行足でバックテストしてよい?合成価格の注意点
Heikin Ashi(平均足)、Renko(練行足)、カギ足、新値足、ポイント・アンド・フィギュア、レンジ足等は、値動きを別の規則で見やすく変換します。しかし、画面上のバー価格が実市場で取引できた価格とは限りません。合成四本値を注文約定へ使うと、存在しなかった価格でエントリー・決済できたようなバックテストが生まれます。本稿はチャート種別の優劣や売買手法を論じず、シグナルに使った値と注文を約定した標準市場価格を分離するための監査手順を示します。
この記事が役立つ方: 平均足や練行足上のストラテジーテスターが通常ローソク足より良すぎる人、合成チャートをシグナル研究に使いながら約定の現実性を守りたいPine利用者
まず押さえる重要ポイント
- 非標準チャートのバーは価格や時間を変換した分析表示で、実際に取引可能だった四本値と同一ではない。
- 合成価格をシグナルと約定の両方へ使うと、利益・ドローダウン・逆指値到達が現実より有利に見える場合がある。
- 平均足には標準四本値で注文を約定する選択肢があるが、シグナル値と約定値の責任を記録する必要がある。
- 練行足、カギ足、新値足、ポイント・アンド・フィギュア等は同じ設定だけで標準価格バックテストへ変わらず、標準チャートで再設計する。
- 合成版と標準価格版を取引IDでペア比較し、消えた取引や大きな価格差を収益指標より先に欠陥として扱う。
見えているバーと、取引できる価格を分ける
- O 100.0
- H 103.0
- L 98.0
- C 101.0
- O 99.5
- H 102.2
- L 99.0
- C 101.6
- シグナルどの系列から条件を計算したか
- 注文いつ、どの注文種別を生成したか
- 約定標準価格か合成価格か
非標準チャートは分析表示には使えても、既定のストラテジーの約定を鵜呑みにしない
平均足や練行足等の非標準チャート上でストラテジーを実行すると、合成バーの価格水準が模擬注文の約定へ使われ、実市場で再現できない結果になる場合があります。 チャートが滑らか、トレンドが明確、逆指値が少ないという見た目は、売買可能価格で同じ結果になる証拠ではありません。
安全な設計では、まず「条件計算に使うシグナル系列」と「注文約定を評価する市場価格系列」を別欄にします。合成系列を研究に使う場合も、通常ローソク足の銘柄ID、取引時間帯、時間足、標準四本値で注文が成立したかを検証します。比較は純利益より先に、エントリー/決済価格差と取引 IDから始めます。
最初に合成版と標準価格版の比較結果を開示する
| 証拠 | 合成版 | 標準価格基準版 | 判定 |
|---|---|---|---|
| チャート / 系列 | チャート種別とシグナルのソースコード | ティッカーID・取引時間帯・時間足 | 入力基準を識別できるか |
| エントリー | 取引 ID・バー・価格 | 対応ID・バー・価格 | 存在しない価格で始まっていないか |
| 決済 | 逆指値/目標・バー・価格 | 同じ注文ルールの結果 | 合成バーの高値・安値だけに依存しないか |
| 標本 | 取引件数・欠落ID | 取引件数・追加/消失ID | 結果選択を後付けしていないか |
標準価格基準版が作れない仮説は、約定可能性を主張せず視覚分析の範囲へ戻します。
比較で最初に見るのは利益ではなく、標準版では存在しない取引、エントリー/決済の大きな価格差、同一バーでだけ成立した取引です。合成版の好成績が標準版で消えた場合、後から都合の良いチャート種別を選ばず、入力欠陥として残します。
比較結果には、全取引数、ペア化できた件数、合成版だけに存在する件数、標準版だけに存在する件数、価格差の中央値と最大値を同時に示します。一つの代表取引だけで結論を作らず、対応不能取引を分母から消しません。差の原因をシグナル時刻、注文生成、約定基準、取引時間帯、欠損データへ分類し、分類不能は独立した未解決欄へ残します。
チャート構造を判定し、標準価格基準版を作れるか決める
平均足は現在と過去の標準四本値から平均化した合成四本値を作ります。練行足、新値足、カギ足、ポイント・アンド・フィギュア等は、価格変化の条件でバーやブロックを構成し、通常の時間バーと同じ境界を持ちません。レンジチャートも一定の値幅を基準にします。名前を一括して「ノイズ除去チャート」と扱わず、時間・価格・取引時間帯のどれが変換されたかを確認します。
| チャート | 変換の中心 | バックテストでの危険 | 安全な扱い |
|---|---|---|---|
| 標準ローソク足/バー | 実データの時間四本値 | 粒度・窓・約定仮定 | 基準系列 |
| 平均足 | 平均化した合成四本値 | 合成価格での約定 | シグナル/約定を分離 |
| 練行足 / 範囲 | 値幅でブロック/バー形成 | 時間と価格経路の近似 | 標準チャートでルール再構成 |
| カギ足 / 新値足 / P&F | 反転・ブレイク規則 | 取引不能な合成価格水準 | 視覚分析に限定 |
実装と利用可能機能は変更され得るため、現行TradingView公式資料を確認してください。
特に練行足等は、履歴チャートとリアルタイム形成過程が同じ情報を持たない場合があります。ブロックが完成した後の整った履歴を、当時その順序で利用できた確定情報だとみなすと未来参照に近い誤読が生じます。ここではTV04の一般的リペイントではなく、系列構成と約定価格だけを監査します。
- 時間バーとの対応を確認
各合成バーに同じ時間境界の標準バーがあるなら、シグナルと約定を分離できるか検討します。
- 標準価格設定の適用範囲を確認
平均足向け設定を練行足等へ一般化せず、公式参照資料で対象を固定します。
- 標準チャートでルールを再構成
ブロックや反転条件を分析用入力値として参照要求し、注文は標準バー上で生成します。
- 対応付け不能なら用途を限定
取引可能価格と時刻を証明できない表示は、視覚分析または仮説生成に留めます。
この判断は結果を見る前に記録します。合成版の利益が大きかった後で標準価格基準版の要否を変えると、チャート種別自体が最適化パラメータになります。判断日、チャートの系統、構成値、標準バーへの対応方法、対応不能の理由を台帳へ残し、後から都合の良い分岐へ移動しないようにします。
平均足検証例でシグナル時刻と標準四本値での約定を照合する
平均足は各時間バーに対応する合成バーを持つため、TradingViewのストラテジーには平均足チャート上でも標準四本値で注文を約定する設定があります。Pineでは`fill_orders_on_standard_ohlc`、画面では対応するプロパティとして提供される場合があります。名称と利用可否は現行公式資料で確認します。
この設定は「平均足ストラテジーが正しい」ことを保証しません。シグナルは合成値、約定は標準値という二系列の設計になるため、エントリー条件がどのバー確定で確定し、注文がいつ生成され、標準価格のどこで約定されたかを残します。平均足の色変化を標準バーの終値で起きた事象と同一視しません。
シグナル状態 = 関数(合成四本値, 確定済み時刻)約定 証拠 = 標準四本値 + 注文種別 + ブローカーエミュレーターのルール合成 窓 = |合成価格での約定 参照資料 − 標準 約定 参照資料|合成価格差は入力差の監査値で、取引可能な裁定取引や将来損益を示しません。| 証拠 | 記録する値 | 失敗境界 |
|---|---|---|
| シグナルのソースコード | 平均足のティッカー、時間足、取引時間帯、確定バー | 形成中の合成値を確定値として使用 |
| 実行時のソースコード | 標準ティッカーID、四本値、約定設定 | 合成四本値へ暗黙に戻る |
| 注文処理の流れ | 条件成立・生成・約定のバーと時刻 | 平均足の色変化と注文時刻を同一視 |
| 対応付けた取引 | ルールID、エントリー/決済差、消失取引 | 利益だけを比較して価格差を無視 |
シグナルが同じでも約定基準が違えば別版です。画面の見た目ではなく、注文ごとの標準価格証拠で判定します。
練行足系検証例はブロック完成時刻と標準バーへの写像を反証する
`fill_orders_on_standard_ohlc`の扱いを、練行足、カギ足、新値足、ポイント・アンド・フィギュア等へ一般化しません。TradingView公式の宣言文資料は、この機能が平均足向けで、他の非標準チャートには同じように影響しない旨を説明しています。練行足チャート上のストラテジーを一項目切り替えて現実的にできる、と約束しないことが重要です。
代わりに標準チャートを実行環境にし、必要なら`ticker.renko()`等から得た値を明示的な分析用入力値として参照要求します。その上で、ブロック由来の条件をいつ確定扱いにするか、標準バーで注文がいつ生成されるかを設計します。下位時間足による近似にも限界があるため、結果がブロックサイズ一つへ依存していないかも別版で確認します。
具体的な失敗例は、完成後のブロック列では反転が一つに見えるのに、標準バーでは同じ期間に複数回水準を往復している例です。ブロックサイズを少し変えるだけで条件バー、取引数、エントリー時刻が大きく変わるなら、価格優位性より構成規則への依存を疑います。同じ期間を複数ブロックサイズで固定比較し、標準バーへ写像できない取引は「未検証」として残します。
合成値を参照要求し、三つの価格基準版を再現する
下のPine v6 例は平均足の終値を分析系列として取得し、確定したチャートバーで架空の交差条件を評価します。`fill_orders_on_standard_ohlc = true`は平均足チャートで標準四本値での約定を使う意図を記録します。通常チャートで実行した場合も標準チャート価格が基準です。20期間は説明用で、推奨シグナルではありません。
//@version=6
strategy(
"Heikin-Ashi signal audit demo",
overlay = true,
fill_orders_on_standard_ohlc = true
)
string haTicker = ticker.heikinashi(syminfo.tickerid)
float haClose = request.security(
haTicker,
timeframe.period,
close,
gaps = barmerge.gaps_on,
lookahead = barmerge.lookahead_off
)
float haBasis = ta.sma(haClose, 20)
bool longCondition = ta.crossover(haClose, haBasis) and barstate.isconfirmed
bool exitCondition = ta.crossunder(haClose, haBasis) and barstate.isconfirmed
if longCondition
strategy.entry("L", strategy.long)
if exitCondition
strategy.close("L")
plot(haClose, "HA close", color.teal)
plot(haBasis, "HA basis", color.orange)参照要求した値のリアルタイム確認、取引時間帯、窓、チャート種別を保存し、練行足等へ同じ結論を拡張しないでください。
`request.security()`を追加すると別のデータ実行条件が入ります。同一時間足でも取引時間帯と窓を確認し、上位時間足へ変える場合はTV14の確定値を確認する書き方を使います。コードがコンパイルすること、マーカーが整うこと、標準約定で頑健なことは別の検証です。
再現では三実行を分けます。第一は標準シグナル・標準約定の基準版、第二は合成シグナル・標準約定の検証版、第三は合成シグナル・合成約定の診断専用版です。期間、銘柄、注文ルール、コスト、数量方式を固定し、各実行へ別のバージョンIDを付けます。同じルールIDで取引をペア化し、エントリー前提が違って対応不能になった地点も削除しません。第三実行は性能候補ではなく、合成価格依存がどこで生じたかを示す反証資料として扱います。
標準価格で監査した結果だけを分析工程へ送る
シグナル時刻と標準約定の対応を説明できるCSV/XLSXだけを、バックテスト分析ラボへ渡します。合成価格版と標準価格版を対にして主要指標、ドローダウン、取引分布、検証外期間(OOS)の差を読むと、価格基準の変更でどの結論が崩れたかを特定できます。このペアを保存して再比較する必要が生じた時、有料の版管理と深い診断が役立ちます。
無料インジケーターは合成チャート上の見え方を観察する入口ですが、インジケーターのプロットだけではストラテジーテスター用の取引一覧を作れません。無料インジケーターのプロットを使う場合もソースコード、入力値、チャート種別、確定条件を確認し、ストラテジー化は別仕様として扱います。
合成価格と標準価格の差をティックと概算影響へ変換
同じ架空事象の標準約定価格、合成価格、数量、ティックサイズを入力し、系列定義差の大きさを確認します。
絶対価格差=|B−A|、ティック換算差=絶対価格差÷D、数量反映後の価格差=絶対価格差×C。契約倍率、通貨、コスト、スリッページを含まず、利益機会や実損益ではありません。
よくある質問
平均足でストラテジーを使うことは禁止ですか?
禁止という単純な話ではありません。ただし合成四本値を約定に使う既定結果は実市場を表さない可能性があり、標準四本値での約定とシグナル系列を明示して監査します。
fill_orders_on_standard_ohlcで練行足も直せますか?
同じようには扱えません。公式参照資料では平均足向けの機能として説明され、練行足やカギ足等の合成価格問題は標準チャートで再設計します。
バー拡大機能なら練行足のバックテストは現実的になりますか?
保証されません。下位足のバー内部の詳細と、練行足自体の合成価格・時間の構成は別問題です。
合成シグナルを通常ローソク足チャートで使えますか?
Pineで合成ティッカーを明示的に参照し、標準チャートを実行環境にする設計は可能です。ただしシグナルの確定時刻、取引時間帯、窓、注文生成時刻を別々に監査してください。
合成価格版と標準価格版の取引数は一致していなければなりませんか?
一致は必須ではありません。価格基準によってシグナルや約定条件が変われば取引集合も分岐します。差を消そうとせず、最初に分岐したルールID、時刻、シグナル価格、標準四本値をペア監査へ残してください。
根拠資料と確認先
- TradingView Pine Script | Non-standard charts dataHeikin Ashi、Renko、Kagi等の合成データと利用上の注意
- TradingView | Unrealistic results on non-standard charts非標準チャートのストラテジーの約定が実市場を表しにくい理由
- TradingView Pine Script | Declaration statementsfill_orders_on_standard_ohlcと適用範囲の公式リファレンス
- TradingView Pine Script FAQ | Strategies非標準チャートのバックテストに関する公式FAQ
- TradingView Pine Script | Other timeframes and dataティッカーIDをrequestする際のデータコンテキストとギャップ
編集・発行: SG Group · 編集方針: TradingView公式ヘルプとPine Script公式文書を優先し、金融市場・商品に関する説明は取引所、監督当局、一次資料で補完しています。機能、データ、料金、接続条件は変わるため、実際の利用前に公式画面とリンク先の最新情報を確認してください。
重要事項: 本記事はTradingViewの画面、チャート、アラート、スクリーナー、ペーパートレード、Pine Script等の一般的な学習情報です。投資助言、売買シグナル、特定商品・データ提供者・ブローカーの推奨、将来価格や利益の保証ではありません。機能、料金、データ、取引所区分、通知、注文連携、Pine Scriptの仕様はプラン・地域・接続先・時点で異なり変更されることがあります。実際の資金を使う前に、TradingView公式資料、データ提供元、接続先事業者の最新条件を確認し、架空データまたはペーパートレードで手順を検証してください。

