インジケーターは作ったが、その手法が本当に機能するのかを数字で見たい。そう思ったときに必要になるのが、TradingViewのstrategyだ。
ただ、indicatorとstrategyは書き方も設計も別物で、「今あるインジケーターをそのままバックテストにかけて」という依頼は成立しない。この記事では、その違いと依頼のポイントを整理する。
indicatorとstrategyは何が違うか
Pine Scriptには、スクリプトの種類を宣言する行がある。indicator()で始めるか、strategy()で始めるかで、できることが変わる。
indicatorは、チャート上に線や矢印を描き、アラートを出すためのものだ。売買の記録は持たない。「ここでサインが出た」は表示できるが、「そのサインで入って、いくら勝ったか」は計算しない。
strategyは、仮想的にポジションを持つ。エントリーとエグジットを記録し、損益、勝率、最大ドローダウン、プロフィットファクターといった数字を自動で出す。TradingViewのストラテジーテスターに結果が表示されるのはこちらだ。
つまり、サインを見るだけならindicator、成績を測るならstrategy、という分担になる。
Pine Scriptで何ができるかの全体像は、こちらにまとめてある。
「そのままバックテスト」ができない理由
既存のインジケーターをstrategyに書き換えるとき、追加で決めないといけないことがある。indicatorには存在しなかった項目だ。
どこで手仕舞うか。indicatorはサインを出すだけなので、決済を定義していない。strategyでは、損切りと利確を必ず決める必要がある。pips固定か、直近安値か、ATRの何倍か。
どれだけ張るか。ポジションサイズを決めないと損益が計算できない。固定ロットか、資金の何パーセントか。
同時に何本持つか。同じ方向のサインが連続で出たとき、追加で入るのか、無視するのか。
ドテンするか。買いポジションを持っている状態で売りサインが出たら、決済だけするのか、決済して売りに入るのか。
これらはトレードの意思決定そのものなので、開発側では決められない。依頼者が決める部分だ。逆に言えば、ここが決まっていれば作業は速い。
数字が良く出すぎる仕掛け
ストラテジーの結果を見るときに、必ず疑うべき点がいくつかある。作成を依頼する側も知っておいたほうがいい。
リペイント。上位足を参照する処理や、確定前の足で判定する処理を素直に書くと、過去のチャートでは「あとから見て都合の良い位置」にサインが出る。バックテストの成績は跳ね上がるが、実際には出なかったサインだ。上位足を参照するなら、確定した値だけを使う書き方にする必要がある。
ヒゲでの約定。指値や逆指値の約定判定を甘くすると、実際には約定しなかったはずの価格で入ったことになる。
スプレッドと手数料の未設定。TradingViewのストラテジー設定には、手数料とスリッページを入れる欄がある。ここを0のままにすると、特に短い時間足で成績が実態から大きく離れる。
サンプル数の不足。トレード回数が20回や30回では、良い数字が出ても偶然の範囲を出ない。
依頼するときは「リペイントしない実装にしてほしい」「手数料とスリッページを設定した状態で結果を見せてほしい」と伝えておくといい。まともな開発者なら、言われなくてもそうする。
検証の実際については、こちらで詳しく書いた。
→ Pineスクリプトで勝てるストラテジーを作る方法|検証の実際
依頼前に決めておくこと
銘柄と時間足。検証する対象を確定する。
エントリー条件。トレードの言葉でいい。
エントリーしない条件。指標前後、特定の時間帯、レンジ判定など。
損切り。方式と数値。
利確。方式と数値。分割決済をするかどうか。
ポジションサイズ。固定か、資金比率か。
同時保有とドテンの扱い。
検証期間。何年分を見たいか。
このうち損切りと利確を決めていない依頼が非常に多い。だがこれを決めないとstrategyは書けない。
strategyにしたあとの使い道
バックテストを回すこと自体が目的とは限らない。strategy化には、他にも実務的な使い道がある。
パラメータの当たりをつける。移動平均の期間や損切り幅を変えて結果を比べられる。ただし数字が最も良くなる組み合わせを選ぶと、その期間にだけ合わせた形になりやすい。ほどほどの範囲で安定しているところを選ぶほうが実用的だ。
ロジックの欠陥を見つける。「年に2回しかエントリーしない」「勝率は高いが1回の負けで全部飛ぶ」といった問題は、数字にすると一目でわかる。頭の中で考えているだけでは気づきにくい。
自動売買への足がかり。strategyのエントリーとエグジットにアラートを紐づければ、Webhook経由で実際の発注につなげる構成に進める。
この構成でどこまで依頼できるかは、こちらにまとめた。
→ 自動売買の作成依頼|TradingViewのWebhook連携でどこまで頼めるか
最初の2つだけでも、strategy化する価値はある。
MT4のEAとの関係
すでにMT4やMT5でEAを持っているなら、TradingViewへの移植という選択肢もある。
mq4やmq5のソースコードがあれば移植できる。ex4しかない場合は、先にデコンパイルという工程が必要になる。
ただし、完全に同じ結果にはならない。足の確定タイミング、ヒストリカルデータの精度、約定の判定方法が両者で違うためだ。移植の目的が「同じ数字を再現すること」なら期待に届かない。「同じロジックをTradingView上で高速に検証したい」ならうまく機能する。
逆にTradingViewで詰めたロジックをMT4/MT5のEAに落とす方向もある。検証はTradingView、24時間の運用はMT4という使い分けは現実的だ。
EA開発を依頼する場合の勘所はこちら。
MT4インジケーターの依頼で決めておく項目はこちら。
→ MT4インジケーターの作成依頼|発注前に決めておく5項目
よくある質問
Q. indicatorとstrategyの両方が欲しい
よくある依頼だ。判定ロジックを共通化して、表示用と検証用の2本にする形が一般的になる。まとめて依頼したほうが安く済むことが多い。
Q. 勝てるストラテジーを作ってほしい
開発の請負としては成立しない。作れるのは「指定したルールどおりに動くもの」で、そのルールが勝つかどうかは別の問題だ。ただし、実装前に「この条件だとエントリーが年に数回しか出ません」といったロジック上の指摘はできる。
Q. 検証期間はどれくらい見るべきか
トレード回数で考えたほうがいい。時間足が短ければ1年でも回数は稼げるが、日足で年に数回しか出ない手法なら、数年見ても回数が足りない。
Q. ソースコードはもらえるか
依頼先による。受け取れる契約なら、自分でパラメータを足したり、別の開発者に渡したりできる。発注前に確認しておくといい。
→ Pine Script作成代行の料金相場|依頼先の選び方と失敗しない発注
まとめ
indicatorは表示、strategyは検証。同じロジックでも、strategy化するには決済とポジションサイズを新たに決める必要がある。ここが決まっていれば、作成代行はスムーズに進む。
そして結果の数字を読むときは、リペイント、約定判定、手数料設定、サンプル数の4点を必ず確認する。この4つを外すと、良い数字は簡単に作れてしまう。
PineScript Proでは、indicatorとstrategyの両方を扱っている。実際にトレードしている開発者が書いているので、リペイントの回避や、実運用との差が出やすい箇所を踏まえた実装ができる。損切りや利確が決まっていない段階でも、ヒアリングから始められる。
→ 関連記事:Pineスクリプトで勝てるストラテジーを作る方法|検証の実際
→ 関連記事:Pine Script作成代行の料金相場|依頼先の選び方と失敗しない発注















