📝 概要
今回は、TradingViewのPine Scriptで作成した「Volume Confirmation Trend Follow」、略して VCTF を紹介します。
この戦略は、ざっくり言うと、
トレンドが出ているか
方向性が上向きか
出来高がその上昇をちゃんと支えているか
この3つを確認してからロングエントリーする順張り系の戦略です。どこかで拾ったストラテジーを微調整しています。日足ではトレード数は少ないですが、わりと実践的なフィルターを学べます。ストラテジー作りの参考にしてください。
💻️ バックテスト
すべて日足。2004年~。
CADJPY

USDJPY


BTCUSDT

🎯 作成の意図
この戦略の狙いは、だましの上昇をなるべく避けること です。
チャートを見ていると、価格だけなら上昇しているように見える場面はよくあります。ただし、その上昇が本当に強いのか、それとも一時的な戻りなのかは、価格だけでは判断しにくいです。
そこで、このコードでは3段階で確認しています(後述)。この3つが全部そろったらロングします。
価格だけで飛び乗るのではなく、「トレンド強い?」→「方向は上?」→「出来高もついてきてる?」
と、三段階チェックしてから入るイメージです。勢いだけで入らない。でも、条件がそろったら素直についていく。そんな性格の戦略です。
📘 コード(戦略部分)の解説
まず、strategy() ではバックテストの基本設定をしています。
strategy("Volume Confirmation Trend Follow", "VCTF", false, initial_capital=1000000, default_qty_type=strategy.fixed, default_qty_value=100000, commission_type=strategy.commission.percent, commission_value=0.02)
初期資金は100万円、固定数量で10万通貨、手数料は0.02%に設定しています。
この時点で、かなりFXやCFD向けの雰囲気ですね。株式でも使えますが、数量設定は銘柄によって調整したほうがよいです。
まず、この戦略ではADXが30を超えたときだけ、エントリー候補になります。
if ADX > 30
ADXが低いレンジ相場ではエントリーしない設計です。
レンジで順張りすると、往復ビンタをもらいやすいですからね。小さな損切りの紙吹雪が舞うやつです。
次にTTIがsignalを上回っているときに、上昇方向と判断します。
if TTI > signal
単純な移動平均クロスよりも、出来高のニュアンスを少し含んだトレンド判定になっています。
次にVPCIです。VPCIは、価格と出来高の関係を見る指標です。
ざっくり言えば、
価格上昇に出来高が伴っているか
出来高の増減が価格の動きと整合しているか
出来高面から見て、そのトレンドに信頼感があるか
を確認するためのフィルターです。
最後にVPCIが0より上ならロングを許可します。
if VPCI > 0
strategy.entry("entry", strategy.long)
逆に、VPCIが0を下回ったら全決済します。
if VPCI < 0
strategy.close_all("exit")
この出口条件はかなりシンプルです。
「出来高の裏付けが消えたら降りる」
という考え方です。
エントリー全体は以下のような流れになっています。
if time >= start_date and time <= end_date
if ADX > 30
if TTI > signal
if VPCI > 0
strategy.entry("entry", strategy.long)
if VPCI < 0
strategy.close_all("exit")
この3条件(バックテスト範囲条件を入れると4つ)がそろったらロング。
そして、VPCIが0を下回ったら決済。
かなりシンプルですが、考え方は明確です。
強いトレンドにだけ乗る。 上方向だけ狙う。 出来高が崩れたら逃げる。
この3文にまとめられます。
🚀 ワン モア ステップ
この戦略は、ベースとしてはかなり分かりやすいですが、改善余地もあります。
損切りと利食いの追加
まず試したいのは、損切りと利確の追加 です。現在の出口はVPCI < 0だけなので、急落時にはやや遅れる可能性があります。たとえば、ATRベースの損切りを入れると、想定外の逆行に対して防御力が上がります。
例としては、
ATRの2倍で損切り、ATRの3倍で利確、またはトレーリングストップ
などが候補です。
次に、ADXの閾値を最適化 するのもありです。
このコードではADX > 30になっていますが、銘柄や時間足によっては25のほうが良い場合もありますし、35以上に絞ったほうが良い場合もあります。
ADXの閾値は、かなり戦略の性格を変えます。
ADX > 20:エントリー多め、だましも多め
ADX > 30:バランス型
ADX > 40:エントリー少なめ、強トレンド狙い
というイメージです(異論は認める)。
ショートを作る
### また、現在はロング専用ですが、ショート版を作ることもできます。
ショート条件にするなら、ざっくり以下のような発想です。
ADX > 30
TTI < signal
VPCI < 0
この3条件でショートする形です。
ただし、株式指数や米国株のように長期的な上昇バイアスがある銘柄では、ショートを入れると成績が悪化することもあります。
一方で、FXやコモディティではショートも検証する価値があります。
として他の戦略に組み込むと面白いです。
特にVPCIは、価格だけでは見えにくい「出来高の納得感」をチェックできるので、順張り戦略との相性が良いです。
まとめると、このVCTFは、
強いトレンドにだけ乗りたい
出来高の裏付けがある上昇だけ狙いたい
シンプルな順張りロジックを作りたい
という場合に使いやすい戦略です。
まだ荒削りですが、土台としてはかなり扱いやすいです。
ここからATR損切り、利確、上位足フィルター、ショート対応などを加えていけば、より実戦向けの戦略に育てられます。
まずはデフォルト設定で走らせて、銘柄ごとの癖を見てみるのがおすすめです。
チャート上でADX、TTI、VPCIの3つがどう動いているかを確認すると、この戦略が「どんな場面で入って、どんな場面で逃げているか」がかなり見えやすくなります。
コアメンバー向けソース
こちらからどうぞ。


コメント