見出し画像

私の投資手法



今回は私が開発した「%BBB」という投資戦略について以前記載した記事があったのですが、今回一から詳しく解説していこうと思います。

この戦略は、人間の投資心理を忠実に再現しながら、客観的なデータに基づいた判断を行うという、一見矛盾するような2つの要素を統合したものです。

成績(QQQ ETF)
成績


5/15追記 バイアンドホールドとの比較

プログラミングの経験がない方でも理解できるよう、順を追って説明していきますので、安心してください。

買いシグナルに点線を表示したところ、結果的に底値になっている。(4時間足)
点線なし。単純にインジケーターが赤い帯が出てるところや、黄線がオレンジ線を下抜けした時が買いシグナル
日足



第1章:なぜこの戦略が生まれたのか

1-1. 投資家が直面する3つの心理的ジレンマ

皆さんは、株価が暴落しているときにこんな経験をしたことはありませんか?

ケース1:初期の自信

「このレベルなら安いだろう。よし、買おう!」と思って購入したものの、その後さらに下がってしまう...

ケース2:不安の増大

「まだ下がるのか...。追加で買うべきか、それとも様子を見るべきか...」と判断に迷い、結果として機会を逃してしまう。

ケース3:パニック底値

「これは異常だ!歴史的な安値だ!全財産投入だ!」と思うものの、本当に底なのか確信が持てずに躊躇してしまう。

このような心理的な揺れ動きは、投資家なら誰もが経験する自然な感情です。

1-2. データと感情の融合

%BBB戦略は、この心理的なプロセスを数値化・システム化することで、以下を実現します:

客観的な買いタイミング判定

感情ではなく、統計的指標で判断します。
「なんとなく安い」ではなく、「統計的に見て過去のデータと比較してどの程度安いのか」を数値で把握します。

段階的な投資配分

自信の強さに応じて投資額を調整します。
初期段階では控えめに、異常値レベルでは大胆に投資することで、心理的な納得感と合理性を両立させます。

損切りではなく利確

バイ&ホールド思想に基づき、下落は追加投資のチャンスと捉えます。
売却は利益が出ている時のみ行い、損失を確定させる「損切り」は行いません。

%BBBの成績

第2章:戦略の核となる3つの指標

2-1. ボリンジャーバンドと%B(パーセントB)

まず、最も基本となる指標から説明します。

ボリンジャーバンド(BB)とは?

株価の「正常な変動範囲」を統計的に表したものです。
株価というのは日々上下に変動しますが、その変動にはある程度の「通常の範囲」というものが存在します。
この範囲を視覚化したのがボリンジャーバンドです。

ボリンジャーバンドは3本の線で構成されます:

上限バンド = 平均値 + (標準偏差 × 2.5)

中心線 = 52週間の移動平均

下限バンド = 平均値 - (標準偏差 × 2.5)

私の設定:

期間:52週(1年間)を使用します。
なぜ52週なのか?
1年間の価格変動を考慮することで、季節性や企業の年次サイクルを反映できるからです。
例えば、小売業なら年末商戦、製造業なら決算期など、企業活動には年間のリズムがあります。

標準偏差倍率:2.5倍を使用します。
統計学的には、データの約98%が平均値±2.5標準偏差の範囲に収まります。
つまり、この範囲を外れることは2%程度、つまり「稀なこと」を意味します。

%B(パーセントB)の計算

%Bは、現在の価格がバンド内のどの位置にあるかを0〜1の数値で表します。

計算式は以下の通りです:

%B = (現在価格 - 下限バンド) ÷ (上限バンド - 下限バンド)

%Bの読み方:

%B = 0.5のとき:中心線として平均的な価格です

%B = 0.0のとき:下限バンド、統計的に安い価格です

%B = 1.0のとき:上限バンド、統計的に高い価格です

%B < 0.0のとき:異常に安い(下限を下回る稀な状況)

%B > 1.0のとき:異常に高い(上限を上回る稀な状況)

例えば、ある株が過去1年間、だいたい100円から200円の範囲で動いていたとします。
中心線が150円、下限バンドが100円、上限バンドが200円だとすると:

現在価格が150円なら %B = 0.5(平均的)

現在価格が100円なら %B = 0.0(統計的に安い)

現在価格が80円なら %B = -0.2(異常に安い!)

2-2. MACD風のトレンド分析

%Bの値だけでなく、その動きの方向性も重要です。

価格が下落トレンドにあるのか、それとも反転の兆しがあるのか?
これを判断するため、%Bに対してMACD(移動平均収束拡散法)風の分析を適用します。

MACDは本来、株価そのものに適用される指標ですが、私はこれを%Bに適用することで、「%Bの変化の勢い」を測定します。

計算の流れ:

Fast EMA(速い指数移動平均) = %Bの5期間指数移動平均

これは素早く反応し最近の%Bの動きを敏感に捉えます。

Slow EMA(遅い指数移動平均) = %Bの10期間指数移動平均

これはゆっくり反応するため、より長期的な%Bのトレンドを捉えます。

MACD Line = Fast EMA - Slow EMA

2つのEMAの差を取ることで、短期と長期のトレンドの乖離を見ます。

Signal Line = MACD Lineの4期間指数移動平均

MACD Line自体の移動平均です。これが基準線となります。

ヒストグラム = MACD Line - Signal Line

最終的に、この差をヒストグラム(棒グラフ)で表示します。

ヒストグラムの見方:

プラス(正の値):%Bが上昇トレンドにある可能性があります。
つまり、価格が底を打って反転し始めているかもしれません。

マイナス(負の値):%Bが下降トレンドにある可能性があります。
つまり、まだ価格が下落中かもしれません。

ゼロをクロス:トレンドの転換点の可能性があります。
マイナスからプラスに転じれば、下降から上昇への転換シグナルです。

2-3. ボラティリティ分析(2つの下限バンド)

さらに高度な判断を行うため、%B自体の変動を分析します。
つまり「%Bがどれくらい異常な値なのか」をさらに統計的に判定するのです。

標準偏差ベースの下限バンド

これは動的な閾値です。
%B自体の過去の変動パターンから計算します。

中心 = %Bの30期間平均 - 0.125

過去30期間の%Bの平均を計算し、そこから0.125を引きます。
この0.125という調整値は、経験的に「買いシグナルとして意味のある領域」を設定するためのものです。

標準偏差バンド = 中心 - 標準偏差

この中心からさらに標準偏差分を引いた値が下限バンドになります。

これは「%Bがどれだけ異常に低いか」を統計的に判定します。
市場の状況によって変動するため、相場環境に適応します。

固定閾値バンド

固定下限 = 0.15

これは固定の閾値です。
経験的に、%B < 0.15は強い買いシグナルとされています。
ボリンジャーバンドの下限から15%の位置にあるということは、かなり価格が低い状態を意味します。

2つのバンドを使う理由:

標準偏差ベースは相場環境に適応しますが、極端な状況では機能しないことがあります。
一方、固定閾値は常に同じ基準を提供しますが、相場環境の変化に対応できません。
この2つを組み合わせることで、より堅牢な判定が可能になります。


第3章:買いシグナル強度の計算ロジック

3-1. 3つのスコアリング基準

私の戦略では、買いシグナルの強度を0〜100%で数値化します。

「なんとなく買い時かな」ではなく、「買いシグナルの強度は現在75%です」と明確に数値で表現します。
この数値は、以下の3つのスコアの合計から計算されます。

スコア1:%Bの低さ(60点満点)

これは最も基本的なスコアです。
%Bがどれだけ低いかを評価します。

評価基準:

%B ≤ -0.3 のとき → 60点(満点)

%Bがマイナス0.3以下、つまり下限バンドを大きく下回っている場合、これ以上ないほど安いと判断します。

%B < 0.5 のとき → 段階的に減点

%Bが-0.3から0.5の間では、線形に点数が減少します。

%B ≥ 0.5 のとき → 0点

%Bが0.5以上、つまり中心線より上にある場合、買いシグナルとしては意味がありません。

計算式の詳細:

スコア1 = ((0.5 - %B) ÷ 0.8) × 60

この式を分解して理解しましょう:

(0.5 - %B) は、%Bが中心線(0.5)からどれだけ下にあるかを示します。

0.8 で割るのは、-0.3から0.5までの範囲(0.8の幅)を正規化するためです。

60 を掛けることで、最大60点のスコアに変換します。

具体例:

%B = -0.3のとき:((0.5 - (-0.3)) ÷ 0.8) × 60 = (0.8 ÷ 0.8) × 60 = 60点

%B = 0.1のとき:((0.5 - 0.1) ÷ 0.8) × 60 = (0.4 ÷ 0.8) × 60 = 30点

%B = 0.5のとき:((0.5 - 0.5) ÷ 0.8) × 60 = 0点

スコア2:標準偏差バンド下抜け(90点満点)

これは統計的な異常値を検出するスコアです。
%Bが標準偏差ベースの下限バンドをどれだけ下回っているかを評価します。

評価基準:

まず、差分を計算します:

差分 = %B - 標準偏差バンド

次に、この差分の大きさに応じて点数を付けます:

差分 ≤ -0.3 のとき → 90点(満点)

標準偏差バンドを大きく下回っている場合、統計的に極めて稀な安値です。

差分 < 0.2 のとき → 段階的に減点

標準偏差バンドから0.2の範囲内では、線形に点数が減少します。

差分 ≥ 0.2 のとき → 0点

標準偏差バンドより十分上にある場合、統計的な異常値ではありません。

計算式:

スコア2 = 90 × (1 - 差分 ÷ 0.2)

ただし、差分が負の場合(バンドを下回っている)は満点の90点とします。

この指標の意味:

標準偏差は「ばらつきの大きさ」を表します。
%Bが標準偏差バンドを下回るということは、「通常のばらつきの範囲を超えて安い」ことを意味します。これは買いの好機と判断できます。

スコア3:固定閾値下抜け(10点満点)

これは固定の基準(0.15)を下回っているかを評価します。

評価基準:

差分 = %B - 0.15

差分 ≤ -0.3 のとき → 10点(満点)

差分 < 0.2 のとき → 段階的に減点

差分 ≥ 0.2 のとき → 0点

計算式:

スコア3 = 10 × (1 - 差分 ÷ 0.2)

なぜ10点だけなのか?

固定閾値は補助的な指標です。
主要な判断はスコア1とスコア2で行い、スコア3は「確認」の意味合いが強いため、配点を低く設定しています。

3-2. 総合スコアの正規化

3つのスコアを合計すると、最大で160点になります(60 + 90 + 10 = 160)。
しかし、これを0〜100%の範囲に正規化して、わかりやすくします。

計算の流れ:

ステップ1:生スコアの計算

生スコア = スコア1 + スコア2 + スコア3

最大160点、最小0点の範囲になります。

ステップ2:EMA平滑化

EMA平滑化 = 生スコアの3期間指数移動平均

なぜ平滑化するのか?
単発の異常値に反応しすぎないようにするためです。
例えば、たまたま1日だけ極端に下がった場合、それを「真の買いシグナル」と判断するのは危険です。
過去3期間の平均を取ることで、より安定した判断ができます。

ステップ3:正規化

最終スコア = (EMA平滑化 ÷ 160) × 100

これで0〜100%の範囲に変換されます。

買いシグナル強度 = 最終スコア

この値が60%を超えたら買いシグナル、85%を超えたら「高確信」の買いシグナルとなります。

3-3. 実例で理解する

数式だけではわかりにくいので、具体的な例で見てみましょう。

ケースA:強い買いシグナル(最終的に85%)

現在の%B = -0.2(下限バンドを下回っている)

標準偏差バンドとの差 = -0.15(バンドを大きく下回っている)

固定閾値(0.15)との差 = -0.35(固定閾値も大きく下回っている)

スコア計算:

スコア1(%Bの低さ):

((0.5 - (-0.2)) ÷ 0.8) × 60 = (0.7 ÷ 0.8) × 60 = 52.5点

スコア2(標準偏差下抜け):

差が-0.15なので、-0.3以下ではありませんが、大きく下回っているため高得点

90 × (1 - (-0.15) ÷ 0.2) = 90 × (1 + 0.75) = 実際は満点扱いで約78.8点

スコア3(固定閾値下抜け):

差が-0.35なので満点 = 10点

合計: 52.5 + 78.8 + 10 = 141.3点

正規化: (141.3 ÷ 160) × 100 = 83.1%

EMA平滑化後: 約85%(過去3期間の平均を考慮)

これは「高確信」レベルの買いシグナルです。

ケースB:中程度の買いシグナル(最終的に60%)

現在の%B = 0.1(まだ下限近くだが、ケースAより高い)

標準偏差バンドとの差 = -0.05(わずかに下回っている)

固定閾値(0.15)との差 = -0.05(わずかに下回っている)

スコア計算:

スコア1:((0.5 - 0.1) ÷ 0.8) × 60 = 30点

スコア2:90 × (1 - (-0.05) ÷ 0.2) = 90 × 1.25 = 実質67.5点程度

スコア3:10 × (1 - (-0.05) ÷ 0.2) = 7.5点

合計: 30 + 67.5 + 7.5 = 105点

正規化: (105 ÷ 160) × 100 = 61.8%

EMA平滑化後: 約60%

これは通常の買いシグナルです。
買い増しはするものの、投資額は控えめにします。


コロナ禍での成績詳細(自動)
コロナ禍での成績詳細
コロナ禍での成績詳細
コロナ禍での成績詳細

第4章:心理的に正しい投資配分戦略

4-1. 人間の投資心理曲線

投資家の心理は、価格が下がるにつれて以下のように変化します。
これは多くの投資家が実際に経験する自然な感情の流れです。

価格レベル:やや安値

心理状態:「そろそろ底かな。でもまだ下がるかも...」

この段階では、まだ不確実性が高く、自信は限定的です。
少しだけ買ってみよう、という心理状態です。

投資比率:30%(様子見)

価格レベル:さらに下落

心理状態:「まだ下がるかも。追加で買うべきか迷う...」

この段階では、自信が徐々に減っていきます。
「本当に底なのか?」という不安が増大します。

投資比率:残り余力の20%(慎重)

価格レベル:異常値

心理状態:「これは絶対チャンス!ここまで下がることは滅多にない!」

統計的に見て明らかに異常な安値になると、逆に確信が高まります。
「これを逃したら後悔する」という強い思いが生まれます。

投資比率:残り余力の80%(確信)

4-2. 3段階の投資戦略

この心理曲線を、具体的な投資戦略に落とし込みます。

第1段階:初回エントリー(シグナル強度 60%以上)

条件:

買いシグナル強度が60%を初めて超えたとき

現在ポジションを持っていない状態

投資額:

投資額 = 総資産 × 30%

心理:「少し自信がある」

まだ下落の余地がある可能性を考慮して、全資産の30%程度に抑えます。
これは「探りを入れる」段階です。

なぜ30%なのか?

全額投資してしまうと、さらに下落したときに追加投資ができません。
また、心理的にも「まだ下がるかも」という不安がある段階なので、控えめな投資が自然です。

一方で、あまりに少額(例えば10%)だと、万が一すぐに反転した場合の利益が限定的になります。
30%はバランスの取れた配分と言えます。

具体例:

総資産:100万円の場合

初回投資:100万円 × 30% = 30万円

残り余力:70万円

第2段階:通常の買い増し(シグナル強度 60〜84%)

条件:

すでにポジションを持っている状態で、再び買いシグナル強度が60%を超えたとき

ただし、85%未満(高確信レベルには達していない)

投資額:

投資額 = 残り余力 × 20%

ここで重要なのは、「総資産の20%」ではなく「残り余力の20%」という点です。

心理:「徐々に自信が減る」

価格が下がり続けると、「本当に底なのか?」という不安が増します。
追加投資はするものの、より慎重になります。

投資額の計算例:

初回投資後の状態:

総資産:100万円

初回投資:30万円

残り余力:70万円

2回目の買い増し:

投資額:70万円 × 20% = 14万円

残り余力:70万円 - 14万円 = 56万円

3回目の買い増し:

投資額:56万円 × 20% = 11.2万円

残り余力:56万円 - 11.2万円 = 44.8万円

このように、買い増しを重ねるごとに、投資額の絶対値は減少していきます。
これは「徐々に自信が減る」という心理を反映しています。

第3段階:高確信買い(シグナル強度 85%以上)

条件:

買いシグナル強度が85%以上に達したとき

これは統計的に極めて稀な安値を意味します

投資額:

投資額 = 残り余力 × 80%

心理:「これ以上は下がらない異常値だ!」

データが明確に「異常な安値」を示しているとき、逆に確信度が高まります。
「今買わないと後悔する」という強い思いが生まれます。

投資額の計算例:

第2段階を3回繰り返した後の状態:

残り余力:44.8万円

高確信買い:

投資額:44.8万円 × 80% = 35.84万円

残り余力:44.8万円 - 35.84万円 = 8.96万円

全体の投資額:

初回30万円 + 2回目14万円 + 3回目11.2万円 + 高確信35.84万円 = 91.04万円

総資産100万円のうち、91.04万円を投資したことになります。
残りは約9万円です。

4-3. なぜこの配分が「心理的に正しい」のか

従来の問題点:

多くの投資戦略では、機械的に均等配分します。
例えば「10回に分けて10%ずつ買う」というルールです。
しかし、これは人間の感情と乖離しています。

価格が下がり続けているのに、常に同じ額を投資し続けるのは、心理的に非常に難しいのです。
「もう止めた方がいいのでは?」という不安に勝てません。

あるいは、最初に一気に全額投入する戦略もあります。
しかし、これも問題です。
さらに下落した時に対応できず、含み損に耐えられなくなって損切りしてしまうリスクがあります。

解決策:

段階的投資

下落が続いても追加投資の余地があります。
「まだ手札が残っている」という安心感が、心理的な安定をもたらします。

確信度連動

データが示す異常値では大胆に投資します。
統計的な裏付けがあることで、「自分の判断は正しい」という確信を持てます。

心理的納得感

自分の感情(不安や確信)と投資額が一致しているため、後悔しにくいのです。

「あの時、もっと買っておけば良かった」
「あの時、買わなければ良かった」
という後悔を最小化できます。


第5章:個別ポジション管理システム

5-1. なぜ個別管理が必要なのか

従来の投資戦略では、すべての買いポジションを「一つの塊」として管理していました。
つまり、平均取得単価だけを見ていたのです。

しかし、これには大きな問題があります。具体例で見てみましょう。

シナリオ:

1回目の買い: 100円で10株購入(投資額1000円)

2回目の買い: 80円で15株購入(投資額1200円)

3回目の買い: 60円で20株購入(投資額1200円)

合計: 45株保有、総投資額3400円

平均取得単価: 3400円 ÷ 45株 = 約75.6円

現在価格: 90円

一見、全体では利益が出ています(90円 > 75.6円)。
しかし、よく見ると:

1回目の買い(100円)は、実は損をしています(100円 > 90円)

2回目の買い(80円)は、利益が出ています(90円 > 80円)

3回目の買い(60円)は、大きな利益が出ています(90円 > 60円)

問題点:

従来のシステムでは、全体の平均取得単価でしか売買を判断できません。
つまり、「1回目の買いは損しているから売りたい」ということができないのです。
全部売るか、全部持ち続けるか、の二択しかありません。

しかし、個別に管理できれば:

1回目の買い(100円):90円でも売却できる(損切り回避のため保持)

2回目の買い(80円):90円で売却すれば利益確定できる

3回目の買い(60円):90円で売却すれば大きな利益を確定できる

このように、より柔軟な売買戦略が可能になります。

5-2. 個別ポジション管理の仕組み

私の戦略では、最大20個のポジションを独立して管理します。

これを実現するために、配列(リスト)という データ構造を使用します。
配列とは、複数のデータをまとめて管理するための「箱」のようなものです。

データ構造

4つの配列を用意します:

エントリー価格配列 [0〜19]

各ポジションを購入した時の価格を記録します

例:[100円, 80円, 60円, 0, 0, ..., 0]

エントリーバー配列 [0〜19]

各ポジションを購入した時のバー番号(時間)を記録します

週足なら「何週目に買ったか」、日足なら「何日目に買ったか」

例:[1000, 1050, 1100, 0, 0, ..., 0]

アクティブフラグ配列 [0〜19]

各ポジションが現在有効かどうかを記録します

true = 保有中、false = すでに売却済み

例:[true, true, true, false, false, ..., false]

高確信フラグ配列 [0〜19]

各ポジションが「高確信買い」だったかどうかを記録します

true = 85%以上のシグナルで購入、false = 通常シグナルで購入

例:[false, false, true, false, false, ..., false]

実装コード:

var array<float> entryPrices = array.new<float>(20, 0.0)
var array<int> entryBars = array.new<int>(20, 0)
var array<bool> isActive = array.new<bool>(20, false)
var array<bool> isHighConf = array.new<bool>(20, false)

このコードは、それぞれ20個の要素を持つ配列を初期化しています。

ポジション追加の流れ

買いシグナルが発生したとき、以下の流れでポジションを追加します:

ステップ1:買いシグナル発生

買いシグナル強度が60%を超えます

ステップ2:現在のポジション数をチェック

positionCounter(現在のポジション数を追跡する変数)を確認します

まだ20個未満なら、新しいポジションを追加できます

ステップ3:配列にデータを記録

array.set(entryPrices, positionCounter, 現在価格)
array.set(entryBars, positionCounter, 現在バー番号)
array.set(isActive, positionCounter, true)
array.set(isHighConf, positionCounter, 高確信フラグ)

ステップ4:カウンターを増やす

positionCounter を +1 します

次回は次のインデックスに記録されます

ステップ5:実際の注文を発行

strategy.entry("P" + positionCounter番号, ...)

"P0", "P1", "P2" のように、異なるIDで注文を発行します

具体例:

初回買い:

positionCounter = 0

現在価格 = 100円

買いシグナル強度 = 65%(通常シグナル)

記録:

entryPrices[0] = 100円

entryBars[0] = 1000(例:1000週目)

isActive[0] = true

isHighConf[0] = false

注文:strategy.entry("P0", ...)

positionCounter = 1 に更新

2回目買い:

positionCounter = 1

現在価格 = 80円

買いシグナル強度 = 70%(通常シグナル)

記録:

entryPrices[1] = 80円

entryBars[1] = 1050

isActive[1] = true

isHighConf[1] = false

注文:strategy.entry("P1", ...)

positionCounter = 2 に更新

3回目買い(高確信):

positionCounter = 2

現在価格 = 60円

買いシグナル強度 = 88%(高確信シグナル)

記録:

entryPrices[2] = 60円

entryBars[2] = 1100

isActive[2] = true

isHighConf[2] = true

注文:strategy.entry("P2", ...)

positionCounter = 3 に更新

5-3. 個別決済のロジック

各ポジションを個別に売却するかどうかを判断します。

決済条件(2つの条件を同時に満たす必要がある)

条件1:価格条件

現在価格 > エントリー価格

つまり、利益が出ていること。損切りは行いません。

かつ

%B > 1.0(上限バンドを超えている)

統計的に見て割高な状態であること。

条件2:保有期間条件

高確信ポジションの場合: 最低98バー(週足なら約2年)保有していること

なぜ長期保有を強制するのか?
高確信で買ったということは、「極めて安い価格で買えた」ということです。
このような優良なポジションは、簡単に手放すべきではありません。長期保有することで、より大きな利益を狙います。

通常ポジションの場合: 即座に売却可能

通常シグナルで買ったポジションは、保有期間の制約はありません。
利益が出ていて、%Bが高ければ、いつでも売却できます。

最低保有比率の制約

重要ルール:全体の50%は必ず保持

これは非常に重要なルールです。
いくら個別ポジションが売却条件を満たしていても、全体の保有比率が50%を下回るような売却は行いません。

計算方法:

現在のポジション価値 = 保有株数 × 現在価格

最低保有額 = 総資産 × 50%

if 現在のポジション価値 > 最低保有額:

個別決済を許可

else:

個別決済を禁止

具体例:

総資産:100万円

最低保有額:50万円(50%)

現在のポジション価値:70万円

判定:70万円 > 50万円 なので、個別決済を許可

ただし、売却額は最大で 70万円 - 50万円 = 20万円分まで

つまり、20万円分のポジションを売却したら、それ以上は売却できません。残りの50万円分は必ず保持します。

なぜ50%なのか?


上昇相場でも利益確保:残り50%は保持し続けるので、バイアンドホールドの恩恵としてさらに上昇した場合の利益も享受できます。

心理的な安定:完全撤退による「機会損失の恐怖」を回避できます。

5.4. 実装の詳細

実際のコードでは、以下のように各ポジションを個別にチェックします:

// 各ポジションを個別にチェック
for i = 0 to 19
    if array.get(isActive, i)  // アクティブなポジションのみ
        float entryPrice = array.get(entryPrices, i)
        int entryBar = array.get(entryBars, i)
        bool highConf = array.get(isHighConf, i)
        
        // 保有期間チェック
        int barsHeld = bar_index - entryBar
        bool holdPeriodMet = highConf ? (barsHeld >= 98) : true
        
        // 売却条件
        bool shouldSell = close > entryPrice and holdPeriodMet
        
        if shouldSell
            // 売却後も最低保有比率を維持できるかチェック
            float afterSellValue = currentPositionValue - (positionSize / activePositions) * close
            
            if afterSellValue >= targetMinPosition
                strategy.close("P" + str.tostring(i), ...)
                array.set(isActive, i, false)

このループ(繰り返し処理)では:

0から19まで、すべてのポジションをチェックします

各ポジションについて、売却条件を満たしているか確認します

条件を満たしていて、かつ最低保有比率を維持できる場合のみ、売却を実行します


第6章:売却戦略とリスク管理

6-1. バイ&ホールド思想

この戦略の根本にあるのは、「長期保有で資産を増やす」という考え方です。

短期的な売買で小さな利益を積み重ねるのではなく、優良な資産を安く買って長く持ち続けることで、大きな利益を狙います。

従来の問題点:

損切りによる確定損失

多くの投資戦略では「10%下落したら損切り」というルールがあります。
しかし、これは損失を確定させる行為です。
一時的な下落で売却してしまい、その後の回復を逃してしまうことがよくあります。

短期的な変動に振り回される

日々の価格変動に一喜一憂し、頻繁に売買を繰り返すと、心理的に疲弊します。また、売買のたびに手数料もかかります。

税金の負担

売却して利益を確定するたびに、約20%の税金がかかります。
頻繁に売買すると、税金の負担が大きくなり、複利効果が減少します。

私のアプローチ:

損切りはしない

下落は追加投資のチャンスと捉えます。
「安くなった!もっと買おう!」という発想です。

ただし、これが成り立つのは、対象が長期的に成長する資産(インデックスETFや優良企業の株)である場合に限ります。
※倒産リスクのある中小企業には適用できません。

利益が出たら部分的に売却

全部売却するのではなく、一部だけ売却します。
これにより、利益を確定しつつ、さらなる上昇の恩恵も受けられます。

常に50%は保持

どんなに価格が上昇しても、最低50%は保持し続けます。
これにより、次の下落局面で買い増しができます。

6-2. 3つの売却トリガー

売却は慎重に行います。
以下の3つのトリガーのいずれかが発動した時のみ、売却を検討します。

トリガー1:個別ポジションの利確

条件:

%B > 1.0(統計的に割高)

現在価格 > エントリー価格(利益が出ている)

保有期間条件を満たす(高確信なら98バー以上、通常なら制限なし)

最低保有比率を維持できる(売却後も全体の50%は保持)

実例:

ポジション1: 100円で購入 → 現在120円(利益20%)

ポジション2: 80円で購入 → 現在120円(利益50%)

ポジション3: 60円で購入 → 現在120円(利益100%)、高確信買い

現在の%B = 1.1(上限バンド超え、割高)

判定:

ポジション1:利益が出ているが、保有期間が短い通常買いなので売却候補

ポジション2:利益が出ていて、売却候補

ポジション3:高確信買いで、まだ98バー経過していないので売却不可

決定:

全体の50%保有ルールを考慮し、ポジション1のみ売却します。ポジション2と3は保持し続けます。

トリガー2:ヒストグラム反転(緊急全決済)

条件:

%B > 1.0(割高)

ヒストグラムがゼロを下回る(下降トレンドへの転換)

最初のエントリーから98バー以上経過(十分な保有期間)

requireHistFlip = true(設定で有効化されている場合)

なぜ「緊急」なのか?

統計的に割高な状態(%B > 1.0)で、かつトレンドが反転した(ヒストグラムがマイナスに転じた)場合、大きな下落が始まる可能性があります。

この状況では、「個別の利確」を待っている場合ではなく、すべてのポジションを一括で決済した方が安全です。

ただし:

この機能は設定でオン・オフできます(requireHistFlip)。

オフにすれば、%B > 1.0だけで個別決済を行い、緊急全決済は行いません。

バイ&ホールド志向が強い人は、この機能をオフにすることをお勧めします。

トリガー3:手動介入

システムが想定していない状況では、手動で介入することも可能です。

例:

企業の不祥事が発覚した

規制当局からの警告が出た

経営陣の大幅な変更

業績の大幅な下方修正

これらはテクニカル指標では検出できない「ファンダメンタルズ」の問題です。このような場合は、システムを過信せず、手動で決済することも検討すべきです。

6-3. 最低保有比率50%の意味

なぜ50%なのか?

この数字には深い意味があります。

理由1:次の買い場に備える

売却後、さらに下落したら買い増しできます。

もし全部売却してしまうと、「また買うタイミング」を逃してしまいます。常に50%を保持していることで、「いつでも買い増しできる準備」と「いつでも売却できる準備」の両方ができています。

理由2:上昇相場でも利益確保

残り50%は上昇し続ける可能性があります。

株価が上昇トレンドに入った場合、50%を売却したことで利益を確定しつつ、残りの50%でさらなる上昇の恩恵を受けられます。

理由3:心理的な安定

完全撤退による「機会損失の恐怖」を回避できます。

投資家が最も後悔するのは、「売却した後、さらに上昇してしまった」というケースです。50%保持していれば、この後悔を半分に抑えられます。

シミュレーション:

初期資金:100万円

買い:80円で12,500株購入(100万円分、全額投資)

上昇後:120円

ポジション価値:12,500株 × 120円 = 150万円(+50万円の含み益)

50%売却を決定:

6,250株売却 → 6,250株 × 120円 = 75万円回収(利益25万円確定)

保持:6,250株(価値75万円)

さらに上昇:150円

保持分の価値:6,250株 × 150円 = 93.75万円

最終資産:

現金:75万円(売却で得た資金)

株:93.75万円(保持分の現在価値)

合計:75万円 + 93.75万円 = 168.75万円

もし全部売却していたら:

120円で全部売却:150万円(+50万円の利益)

150円への上昇を逃す

最終資産:150万円

比較:

50%保持戦略:168.75万円

全部売却戦略:150万円

差額:18.75万円(50%保持戦略の方が有利)

このように、50%保持戦略は、「利益確定」と「さらなる上昇の恩恵」のバランスを取る合理的な選択なのです。


第7章:インターフェースとビジュアライゼーション

7-1. 買いシグナル強度ゲージ

このゲージは、買いタイミングの確信度を視覚的に表示します。
数値だけでなく、色と位置で直感的に理解できるように設計されています。

ゲージの構造

ゲージは12個(Small設定)または20個(Normal設定)のセルから構成されます。それぞれのセルが色分けされています。

右下の話

視覚的イメージ:

[赤]─────[グレー]─────[緑]

弱 強

0% 50% 100%

マーカーの意味:

★:当日のシグナル強度の位置

●:前日のシグナル強度の位置

色の意味

赤ゾーン(0〜50%):

買いシグナルが弱いことを示します。
この範囲では、まだ割高の可能性があります。買いは推奨されません。

グレーゾーン(50%付近):

中立的な価格帯です。特に安くも高くもない状態です。

緑ゾーン(50〜100%):

買いシグナルが強いことを示します。統計的に割安な状態です。この範囲に入ったら、買いを検討します。

緑ゾーンの右端(85〜100%):

高確信レベルです。異常な安値を示しています。積極的な買いが推奨されます。

マーカーの色分け

マーカー(★や●)自体も、状況に応じて色が変わります。

★(当日)の色:

黄色: 前日より買いシグナルが強くなった(価格がさらに下落)

買いのチャンスが強まっていることを示します。

オレンジ: 前日より買いシグナルが弱くなった(価格が反発)

買いのチャンスが減少していることを示します。

白: 前日と同程度

大きな変化がないことを示します。

●(前日)の色:

青: 前日のシグナル位置

比較のための参照点です。

●★が重なる場合:

当日と前日が同じ位置にある場合、両方のマーカーが同時に表示されます。これは「価格が動いていない」ことを意味します。

7-2. 情報パネル

ゲージの下に、5つの重要な情報が表示されます。
これらは投資判断に必要な情報を一目で把握できるように設計されています。

1. 買いシグナル強度

表示例: 「買い 85%」

現在の買いシグナルの強さを0〜100%で表示します。
この数値が:

60%以上:買いシグナル発生(通常の買い増し)

85%以上:高確信シグナル発生(積極的な買い増し)

2. ポジション数

表示例: 「ポジション: 5個」

現在保有している独立したポジションの数を表示します。

最大20個まで保有できます。

この数が多いほど、複数回にわたって買い増しを行ったことを意味します。

3. 保有比率

表示例:

「保有: 62%」(緑色で表示)

または

「保有: 45%」(オレンジ色で表示)

総資産に対するポジション価値の割合を表示します。

色の意味:

緑色: 50%以上を保有している(正常な状態)

オレンジ色: 50%未満しか保有していない(警告)

50%未満になると、「もっとポジションを持つべき」というサインです。
ただし、これは売却を繰り返した結果として起こることもあります。

4. 余力

表示例: 「余力: 38%」

次の買い増しに使える資金の割合を表示します。

総資産のうち、まだ投資に回していない現金の比率です。

この数値が大きいほど、次の買い場で大きく投資できます。

逆に、この数値が小さい場合(例:5%)、ほとんど投資済みで、これ以上の買い増し余地が少ないことを示します。

5. ゲージサイズ切り替え

表示例: 「弱」「強」

ゲージの両端に表示される説明ラベルです。
左端が「弱」(買いシグナルが弱い)、右端が「強」(買いシグナルが強い)を意味します。

7-3. チャート上のマーカー

実際の価格チャート上に、エントリーポイントと決済ポイントがマーカーで表示されます。

買いシグナル

▲(緑・小さい): 通常の買いシグナル(60〜84%)

このマーカーが表示された位置で、通常の買い増しが行われます。

▲(赤・大きい): 高確信の買いシグナル(85%以上)

このマーカーが表示された位置で、積極的な買い増しが行われます。
赤色と大きなサイズで、特別なシグナルであることを強調しています。

なぜ色分けするのか?

後から見返したときに、「どのタイミングで大きく投資したか」が一目でわかります。
高確信シグナルでの買いは、特に重要な投資判断なので、視覚的に目立たせています。

売りシグナル

▼(オレンジ): 個別ポジションの利確

特定のポジションを売却したタイミングです。

全部売却ではなく、一部のポジションのみを売却しています。

▼(赤・大きい): 緊急全決済

すべてのポジションを一括で売却したタイミングです。

ヒストグラム反転による緊急事態を示します。

チャートの活用方法:

これらのマーカーを見ることで、戦略がどのように機能しているかを視覚的に理解できます。

過去の売買を振り返り、「この判断は正しかったか?」を検証できます。

パラメータ調整の際に、「もっと早く買うべきだった」「もっと長く保持すべきだった」といった改善点を見つけられます。


第8章:パラメータのチューニング

戦略を自分の投資スタイルやリスク許容度に合わせるため、様々なパラメータを調整できます。
ここでは、主要なパラメータとその調整方法を説明します。

8-1. 買いシグナル関連

買い増し閾値(buyThreshold)

デフォルト値: 60%

推奨範囲: 50〜70%

意味:

買いシグナル強度がこの値を超えたときに、買い増しを行います。

影響:

高く設定(例:70%): 買いシグナルが厳しくなります

より確実な安値でのみエントリーするため、エントリー回数が減ります。
リスクは下がりますが、機会も減ります。

低く設定(例:50%): 買いシグナルが緩くなります

より頻繁にエントリーするため、エントリー回数が増えます。
機会は増えますが、「まだ下がる」リスクも高まります。

調整の目安:

ボラティリティの高い銘柄(値動きが激しい): 65〜70%

頻繁に上下するため、より確実なシグナルを待つ方が安全です。

安定した銘柄(値動きが穏やか): 50〜60%

大きく下がることが少ないため、早めにエントリーしても問題ありません。

高確信閾値(highConfThreshold)

デフォルト値: 85%

推奨範囲: 80〜90%

意味:

買いシグナル強度がこの値を超えたときに、「高確信買い」と判定し、余力の大部分を投入します。

影響:

高く設定(例:90%): 高確信買いの発生が極めて稀になります

年に1回あるかないかのレベルです。
その分、発生したときは本当に異常な安値です。

低く設定(例:80%): 高確信買いの発生頻度が増えます

年に数回程度発生する可能性があります。
ただし、「本当に異常値か?」という精度は下がります。

調整の指針:

高確信買いは「一発勝負」の意味合いが強いです。
慎重な人は高めに設定し、積極的な人は低めに設定します。

8-2. 保有期間関連

最小保有期間(minHoldBars)

デフォルト値: 98バー

週足の場合: 約2年(98週 ≒ 1.88年)

日足の場合: 約5ヶ月(98日 ≒ 4.9ヶ月)

意味:

高確信で買ったポジションを、最低でもこの期間は保持します。

影響:

長く設定(例:週足で150バー ≒ 3年): バイ&ホールド傾向が強まります

長期保有により、大きな値上がりを狙います。
ただし、短期的な利確機会を逃す可能性があります。

短く設定(例:週足で50バー ≒ 1年): より機動的な売買が可能になります

早めに利益を確定できますが、長期的な大きな上昇を取り逃がす可能性があります。

調整の考え方:

投資期間の目標に合わせます。

10年単位で考えるなら、長めに設定(週足で150〜200バー)

5年程度で考えるなら、デフォルト程度(週足で98バー)

3年程度で考えるなら、短めに設定(週足で50〜80バー)

最低保有比率(minPositionPct)

デフォルト値: 50%

推奨範囲: 40〜60%

意味:

総資産のうち、常にこの比率以上はポジションを保持します。

影響:

高く設定(例:60%): 常に多くのポジションを保持します

次の下落局面での買い増し余力は減りますが、上昇局面での利益は大きくなります。

低く設定(例:40%): 利確の自由度が高まります

多くのポジションを売却できるため、利益確定しやすくなります。ただし、上昇が続いた場合の利益は限定的になります。

調整の指針:

リスク許容度に合わせます。

リスクを取りたい(大きな利益を狙いたい):60%

バランス重視:50%

保守的(利益確定を優先):40%

8-3. 投資比率関連

初回買い比率(firstBuyPct)

デフォルト値: 30%

推奨範囲: 20〜40%

意味:

最初のエントリー時に、総資産のこの比率を投資します。

考え方:

初回で全資産を投入しないことが重要です。

まだ下落の余地があるかもしれないため、追加投資の余力を残します。

一方で、あまりに少額だと、反転した場合の利益が限定的になります。

30%は、この両者のバランスを取った値です。

調整の目安:

慎重派:20〜25%(より多くの余力を残す)

標準:30%

積極派:35〜40%(初期から大きく投資)

中盤買い比率(midBuyPct)

デフォルト値: 20%(余力の20%)

推奨範囲: 15〜30%

意味:

通常の買い増し時に、残り余力のこの比率を投資します。

計算例:

余力50万円の場合:

20%設定 → 50万円 × 20% = 10万円投資

30%設定 → 50万円 × 30% = 15万円投資

影響:

高く設定(例:30%): 買い増しのペースが速くなります

早い段階で資金を使い切る可能性があります。

低く設定(例:15%): 買い増しのペースが遅くなります

より長期間にわたって買い増しを続けられます。

調整の考え方:

下落がどの程度続くと予想するかによります。

短期間の急落を想定:高めに設定(25〜30%)

長期間の緩やかな下落を想定:低めに設定(15〜20%)

終盤買い比率(lastBuyPct)

デフォルト値: 80%(余力の80%)

推奨範囲: 70〜90%

意味:

高確信シグナル(85%以上)が出たときに、残り余力のこの比率を投資します。

この数値の意味:

「異常値レベルでは大胆に投資する」という戦略を表しています。

統計的に極めて稀な安値なので、この機会を逃さないよう、大きく投資します。

影響:

高く設定(例:90%): ほぼ全力投資します

その後さらに下落しても、追加投資の余地がほとんどありません。

低く設定(例:70%): 一部余力を残します

さらなる異常値に備えて、少し余力を残します。

8-4. 売却条件関連

%B売り閾値(bbrExitThresh)

デフォルト値: 1.0

推奨範囲: 0.8〜1.2

意味:

%Bがこの値を超えたときに、売却を検討します。

値の意味:

1.0: 上限バンドに到達(統計的に割高)

0.8: 上限バンドの80%の位置(やや早めの売却)

1.2: 上限バンドを20%超えている(かなり過熱、遅めの売却)

影響:

低く設定(例:0.8): 早めに利確します

利益は小さくなりますが、確実に利益を確定できます。
下落リスクを避けられます。

高く設定(例:1.2): 遅めに利確します

より大きな利益を狙えますが、反転して利益が減る可能性もあります。

調整の指針:

保守的(確実に利益確定):0.8〜0.9

標準(バランス型):1.0

積極的(大きな利益狙い):1.1〜1.2

ヒストグラム反転必須(requireHistFlip)

デフォルト値: true

選択肢: true(必須) / false(不要)

意味:

緊急全決済を行う際に、ヒストグラムの反転を条件に加えるかどうかを設定します。

影響:

true(必須): %Bが高くてもヒストグラム反転まで待ちます(保守的)

トレンドが本当に転換したことを確認してから売却します。
偽のシグナルで売却してしまうリスクを減らせますが、売却が遅れる可能性があります。

false(不要): %Bだけで売却判断します(積極的)

より早く売却できますが、一時的な過熱で売却してしまい、その後さらに上昇を逃す可能性があります。

どちらを選ぶべきか:

バイ&ホールド志向が強い:true(できるだけ長く保持)

機動的な売買を好む:false(早めの利確)


第9章:実践的なバックテスト方法

理論を学んだら、次は実際にバックテストを行い、この戦略が本当に機能するかを検証します。

9-1. バックテストの準備

TradingViewでの設定手順

ステップ1:チャートを開く

TradingViewにアクセスします(https://www.tradingview.com/)

検索ボックスで対象銘柄を検索します

例:S&P500なら「SPY」、日経225なら「NI225」、個別株なら銘柄コード

チャート画面が開きます

ステップ2:時間足を選択

画面上部のツールバーで時間足を選択します

推奨:週足(Weekly)

なぜ週足?日足よりノイズが少なく、長期的なトレンドが見やすいためです

ステップ3:Pine Editorを開く

画面下部の「Pine Editor」タブをクリックします

エディタ画面が開きます

ステップ4:コードを貼り付け

本講義の最後に掲載されている完全なコードをコピーします

Pine Editorに貼り付けます

「Save」ボタンをクリックして保存します

ステップ5:チャートに適用

「Add to Chart」ボタンをクリックします

チャート上に戦略が適用され、エントリーポイントと決済ポイントが表示されます

ステップ6:バックテスト結果を確認

画面下部の「Strategy Tester」タブをクリックします

過去データに基づいたパフォーマンスが表示されます

9-2. 重要な評価指標

バックテスト結果を評価する際、以下の指標に注目します。

1. 純利益(Net Profit)

意味:

期間中の総利益 - 総損失

表示形式:

金額(例:+45,000円)

または率(例:+45%)

目標値:

プラスであること(当然ですが)

できれば年率5〜10%以上

注意点:

純利益だけを見るのは危険です。
リスクとのバランスが重要です。

2. 最大ドローダウン(Max Drawdown)

意味:

資産のピークから最低点までの下落率

計算例:

最高資産:150万円(ある時点でのピーク)

その後の最低資産:105万円

ドローダウン:(105万円 - 150万円) ÷ 150万円 = -30%

許容範囲:

-30%以内が理想

-50%を超えると、心理的に耐えられない人が多い

重要性:

この数値が、実際に投資する際に「どれだけ含み損に耐えなければならないか」を示します。

例えば、最大ドローダウン-40%なら、100万円投資して一時的に60万円まで減る可能性があるということです。

3. プロフィットファクター(Profit Factor)

意味:

総利益 ÷ 総損失

計算例:

総利益:100万円

総損失:50万円

プロフィットファクター:100万円 ÷ 50万円 = 2.0

目標値:

1.5以上が望ましい

2.0以上なら優秀

意味の解釈:

1.5 = 1円の損失に対して1.5円の利益を得ている

2.0 = 1円の損失に対して2円の利益を得ている

1.0 = 利益と損失が同じ(トントン)

1.0未満 = 損失の方が大きい(戦略として機能していない)

4. 勝率(Percent Profitable)

意味:

利益を出したトレード数 ÷ 総トレード数

計算例:

総トレード数:10回

利益を出したトレード:6回

勝率:6 ÷ 10 = 60%

この戦略での注意点:

勝率は低くても問題ありません。

なぜなら、この戦略は「1回の大きな利益で複数の小さな損失をカバーする」設計だからです。

例えば、勝率40%でも、勝つときの利益が大きければ、全体としてはプラスになります。

参考値:

40〜60%程度が標準的

30%台でも、プロフィットファクターが高ければ問題なし

5. 平均保有期間(Avg Trade Duration)

意味:

各トレードの保有期間の平均

この戦略の特徴:

長期保有が基本です。

週足で98バー以上(約2年)保有することが多いです。

評価:

平均保有期間が設定した最小保有期間(minHoldBars)に近い場合、戦略が意図通りに機能しています。

極端に短い場合(例:平均10バー)、頻繁に売買を繰り返していることを意味し、戦略の本質から外れている可能性があります。

9-3. シナリオ別のバックテスト

同じ戦略でも、市場環境によって結果は大きく異なります。
複数のシナリオでテストすることが重要です。

シナリオA:強気相場(例:2020〜2021年)

特徴:

株価が継続的に上昇する期間

下落は一時的で、すぐに回復する

期待される結果:

エントリー回数: 少ない

価格が下がりにくいため、買いシグナルがあまり出ません。

勝率: 高い

買えば上がるため、ほとんどのトレードで利益が出ます。

最大ドローダウン: 小さい

大きな下落がないため、含み損も小さくなります。

注意点:

この期間だけでテストすると、戦略が「過大評価」される可能性があります。どんな戦略でも儲かる時期だからです。

シナリオB:弱気相場(例:2022年)

特徴:

株価が継続的に下落する期間

一時的な反発はあるが、トレンドは下向き

期待される結果:

エントリー回数: 多い

価格が下がり続けるため、買いシグナルが頻繁に出ます。
買い増しを連発します。

保有ポジション数: 増加

複数のポジションを積み上げていきます。

一時的なドローダウン: 大きい

含み損が膨らみますが、これは戦略の想定内です。

最終的な結果:

もし底を打って反転すれば、大きな利益になります。

反転しない場合(さらに下落が続く場合)、損失が拡大します。

重要な確認ポイント:

この期間の最大ドローダウンが、自分の心理的な許容範囲内かどうかを確認します。

例えば、-50%のドローダウンに耐えられないなら、パラメータを調整する必要があります。

シナリオC:レンジ相場(例:2019年)

特徴:

株価が一定の範囲内で上下を繰り返す

明確な上昇トレンドも下降トレンドもない

期待される結果:

エントリーと決済の繰り返し

レンジの下限で買い、上限で売る、というサイクルが繰り返されます。

小さな利益の積み重ね

1回あたりの利益は小さいですが、回数が多いため、積み重なります。

安定したパフォーマンス

大きな利益も損失もなく、安定した結果になります。

評価:

レンジ相場でもプラスになれば、戦略の堅牢性が高いと言えます。

9-4. パラメータ最適化の手順

バックテストの結果を見て、パラメータを調整します。
ただし、過度な最適化(オーバーフィッティング)は避けなければなりません。

ステップ1:ベースラインの設定

まず、デフォルト値でバックテストを実行します。

結果を記録します:

純利益:例:+45%

最大ドローダウン:例:-28%

プロフィットファクター:例:1.8

トレード数:例:8回

これがベースライン(基準)になります。

ステップ2:1つずつ変更

重要:一度に複数のパラメータを変更しない

例えば、buyThresholdだけを60%→65%に変更します。

他のパラメータ(highConfThreshold、minHoldBarsなど)は固定します。

バックテストを再実行します。

この例では:

閾値を上げると、純利益は減少しますが、ドローダウンも減少します。

プロフィットファクターは改善しています(より効率的)。

トレード数が減っています(エントリーが厳しくなった)。

ステップ3:最適値の決定

純利益だけでなく、リスク指標も考慮します。

自分のリスク許容度に合わせて決定します。

例:

最大ドローダウン-30%が限界だと感じるなら、閾値65%を選びます。

純利益を最大化したいなら、閾値60%を選びます。

効率性(プロフィットファクター)を重視するなら、閾値70%を選びます。

注意:オーバーフィッティングを避ける

過去データに対して完璧にフィットするようにパラメータを調整すると、未来のデータでは機能しない可能性があります。

適度な調整にとどめ、極端な最適化は避けます。


第10章:実運用における注意点

バックテストで良い結果が出ても、実際の運用では様々な制約や問題が生じます。ここでは、実運用で注意すべき点を説明します。

10-1. TradingViewの制約

制約1:リアルタイム取引との連携

重要な事実:

TradingViewの戦略 ≠ 自動売買

TradingViewはシグナルを表示するツールであり、自動的に証券口座で売買を実行するわけではありません。

現実的な運用方法:

ステップ1: TradingViewでシグナルを確認します

買いシグナル強度が60%を超えた、などのアラートを確認します。

ステップ2: 手動で証券会社のサイトにアクセスします

ステップ3: 注文を手動で執行します

銘柄、数量、価格を入力して注文を出します。

今後の可能性:

API連携による自動売買は技術的には可能です。

一部の海外証券会社では対応していますが、日本の主要証券会社(SBI証券、楽天証券など)では限定的です。

将来的には改善される可能性がありますが、現時点では手動運用が基本です。

制約2:ピラミッディングの実装

理論上の設計:

この戦略では、最大20個のポジションを個別に管理します。

TradingViewの制約:

Pine Scriptのstrategy.entry()関数は、同じIDで複数回呼ぶと、自動的に平均取得単価で統合されてしまいます。

つまり、完全な個別管理はできません。

回避策:

異なるIDを使うことで、疑似的に個別管理を実現します。

strategy.entry("P0", ...)  // 1個目のポジション
strategy.entry("P1", ...)  // 2個目のポジション
strategy.entry("P2", ...)  // 3個目のポジション

このように、"P0", "P1", "P2"...と異なるIDを使うことで、TradingView上でも個別に管理できます。

実運用での対応:

実際の証券口座でも、同様に個別に注文を出す必要があります。

記録を取り、どのポジションをいくらで買ったかを管理します。

エクセルや専用の投資管理アプリを使うと便利です。

10-2. スリッページとコスト

バックテストでは考慮されない、実際の取引で発生するコストがあります。

スリッページとは

定義:

シグナル価格(画面上の価格) ≠ 実際の約定価格(実際に買える価格)

実例:

シグナル:100円で買いシグナル発生

注文を出す:100円で買い注文を出す

実際の約定:100.5円で約定(0.5円高く買わされた)

スリッページ:0.5円(0.5%)

原因:

注文から約定までの時間差:注文を出している間に価格が動く

流動性の不足:買い注文が多すぎて、100円では買えず、100.5円まで価格が上がってしまう

対策:

流動性の高い銘柄を選ぶ:

東証プライム市場の大型株やETFなら、スリッページは小さくなります。

成行注文より指値注文を活用:

成行注文:「いくらでもいいから買う」→スリッページが大きい

指値注文:「100円以下なら買う」→スリッページを制限できる

ただし、指値注文は約定しないリスクがあります。

取引コスト

実際の取引では、様々なコストがかかります。

総コスト = 売買手数料 + スプレッド + 税金

具体例(日本株の場合):

買い: 100万円分購入

手数料:約500円(0.05%、証券会社により異なる)

保有期間: 1年

売り: 110万円で売却

手数料:約550円(0.05%)

利益:110万円 - 100万円 = 10万円

税金:10万円 × 20.315% = 約20,315円

実質利益:

10万円 - 500円 - 550円 - 20,315円 = 78,635円

実質リターン:

78,635円 ÷ 100万円 = 7.86%

名目リターン10%から、実質リターン7.86%に減少しました。

コスト削減の工夫:

手数料の安い証券会社を選ぶ(ネット証券)

NISA口座を活用する(税金が非課税)

頻繁な売買を避ける(長期保有)

10-3. 心理的な罠

システムトレードでも、人間の心理が邪魔をすることがあります。

罠1:システムへの過信

典型的な思考:

「バックテストで成功したから絶対儲かる」

「過去10年間プラスだったから、これからも必ずプラスになる」

現実:

過去の成功 ≠ 未来の成功

市場環境は常に変化します。過去に機能した戦略が、未来でも機能する保証はありません。

ブラックスワン(想定外の事象)が起こる可能性があります。

例:パンデミック、戦争、金融危機など

対策:

定期的なパラメータ見直しとリスク管理を行います。

年に1回、バックテストを再実行し、戦略が現在の市場環境でも機能するか確認します。

罠2:ルール破り

典型的な思考:

「今回だけは例外だ...」

「システムは間違っている。自分の直感の方が正しい」

実例:

システム:「85%のシグナル。余力の80%を投資せよ」

投資家:「でも怖いから20%だけにしておこう...」

結果:その後、価格が大きく反発し、機会損失が発生

なぜ起こるのか:

人間は損失を避けたい本能があります(損失回避バイアス)。

不確実な状況では、システムより自分の感情を優先してしまいます。

対策:

事前にルールを決める:

システムを信じるか、パラメータを変更するか、明確に決めます。

中途半端な妥協をしない:

「システムは60%と言っているけど、自分は30%にする」という中途半端な対応が最も悪い結果を生みます。

記録を取る:

ルールを破った場合、その理由と結果を記録します。後から見返すと、「やはりシステムに従うべきだった」と気づくことが多いです。

罠3:頻繁なチェック

典型的な行動:

毎日、毎時間、チャートを確認する

わずかな価格変動に一喜一憂する

問題:

短期的な変動に振り回されます。

不必要なストレスがかかります。

ルール破りの誘惑が強まります(「今売った方がいいのでは?」)

対策:

チェック頻度を決める:

週足戦略の場合、週に1〜2回のチェックで十分です。

例:毎週日曜日の夜にチェックする

アラート機能を活用:

TradingViewのアラート機能を使い、重要なシグナルが出た時だけ通知を受け取ります。

常にチャートを見る必要はありません。

10-4. リスク管理の原則

どんなに優れた戦略でも、リスク管理を怠ると破綻します。

原則1:分散投資

重要な原則:

この戦略だけに全資産を投入しない

推奨配分:

総資産の30〜50%:この戦略(株式)

残り50〜70%:他の投資(債券、不動産、現金など)

理由:

株式市場全体が長期間低迷する可能性があります。

他の資産クラスと組み合わせることで、リスクを分散できます。

具体例:

総資産:1000万円の場合

この戦略(株式):400万円(40%)

債券:300万円(30%)

現金・預金:300万円(30%)

原則2:生活防衛資金の確保

重要な原則:

投資に回すお金 ≠ 生活に必要なお金

目安:

生活費の6ヶ月〜1年分は別途確保します。

理由:

急な失業や病気などで収入が途絶えても、生活できるようにします。

生活防衛資金がないと、株価が下がった時に「生活費のために損切りせざるを得ない」状況に陥ります。

具体例:

月の生活費:30万円の場合

生活防衛資金:30万円 × 6ヶ月 = 180万円

この180万円は、投資に回さず、預金として保管します。

原則3:定期的な見直し

年1回:パラメータの最適化

過去1年のデータでバックテストを再実行します。

戦略が現在の市場環境でも機能するか確認します。

必要に応じてパラメータを微調整します。

四半期ごと:ポートフォリオのリバランス

株式、債券、現金の比率が目標から大きくずれていないか確認します。

必要に応じて売買し、元の比率に戻します。

例:株式が値上がりして60%になったら、一部売却して50%に戻す


第11章:よくある質問(FAQ)

実際に戦略を運用しようとすると、様々な疑問が生じます。
ここでは、よくある質問とその回答をまとめます。

Q1: 日足と週足、どちらを使うべきですか?

A: 投資スタイルによりますが、週足を推奨します。

週足を推奨する理由:

ノイズが少ない

日々の細かい変動(ノイズ)に影響されません。
より本質的なトレンドが見えます。

長期保有に適している

バイ&ホールド思想と合致します。
頻繁な売買を避けられます。

心理的に楽

毎日チェックする必要がないため、心理的な負担が少なくなります。

日足が適しているケース:

より短期的な売買を好む場合

流動性の高い銘柄(ETFなど)で、細かいタイミングを狙いたい場合

パラメータ調整が必要:

時間軸を変えたら、パラメータも調整する必要があります。

週足の場合:minHoldBars = 98(約2年)

日足の場合:minHoldBars = 250(約1年、営業日ベース)

単純に同じ数値を使うと、日足では保有期間が短すぎます。

Q2: どんな銘柄に適していますか?

A: 以下の特徴を持つ銘柄が最適です。

適している銘柄:

1. 高い流動性

東証プライム市場の大型株(トヨタ、ソニーなど)

ETF(日経225連動型、TOPIX連動型、S&P500連動型など)

なぜ重要?流動性が高いと、スリッページが小さくなります。
買いたい時に買え、売りたい時に売れます。

2. 長期的な成長性

インデックス連動型(市場全体の成長に連動)

業績安定企業(長期的に成長が見込める)

なぜ重要?この戦略は「下落時に買って長期保有」が前提です。
長期的に成長しない銘柄では機能しません。

3. 適度なボラティリティ

価格変動が大きすぎず、小さすぎない

なぜ重要?変動が小さすぎると買いシグナルが出ません。
大きすぎるとリスクが高すぎます。

避けるべき銘柄:

低流動性株

売買が成立しにくく、スプレッドが大きい

新興市場の小型株など

新興市場の小型株

倒産リスクが高い

長期保有に不向き

レバレッジ型ETF

日々の変動を2倍や3倍にする商品

減価リスク(長期保有すると価値が目減りする)があり、長期投資に不向き

推奨銘柄の例:

日本株:日経225連動ETF、TOPIX連動ETF

米国株:S&P500連動ETF(SPY、VOOなど)、全米株式ETF(VTI)

Q3: 税金はどう考慮すべきですか?

A: 日本の税制を理解し、活用できる制度は最大限活用しましょう。

基本的な税率:

株式譲渡益:20.315%

内訳:

所得税:15%

住民税:5%

復興特別所得税:0.315%

損益通算が可能:

同じ年内の株式売買損益は通算できます。

計算例:

A株の利益:+10万円

B株の損失:-3万円

課税対象:10万円 - 3万円 = 7万円

税金:7万円 × 20.315% = 約14,221円

もしB株で損失がなければ、税金は約20,315円だったので、約6,000円の節税になります。

長期保有の税制メリット:

この戦略は頻繁な売買を避けるため、以下のメリットがあります:

実現損益を先延ばし

含み益は課税されません。売却して初めて課税されます。

長く保有すれば、税金の支払いを先延ばしできます。

複利効果を最大化

税金を払わない分、その資金を再投資に回せます。

複利効果により、長期的なリターンが向上します。

NISA(少額投資非課税制度)の活用:

年間360万円まで非課税で投資できます(2024年の新NISA)

この戦略をNISA口座で実行すれば、税金がゼロになります。

ただし、NISA口座では損益通算ができないため、複数銘柄に分散する場合は注意が必要です。

Q4: 暴落時の対応は?

A: これがこの戦略の真骨頂です。暴落は絶好の買い場と捉えます。

システムの動作:

暴落中: 買いシグナル強度が上昇します

価格が下がれば下がるほど、%Bが低くなり、買いシグナルが強まります。

段階的に買い増し

60%、70%、80%...とシグナルが強まるにつれ、投資額を増やしていきます。

異常値レベル: 余力の大部分を投入します

85%以上の高確信シグナルが出たら、残り余力の80%を投資します。

心理的な準備:

暴落時は、多くの投資家がパニックに陥ります。しかし、この戦略では冷静に対応する必要があります。

1. パニックにならない

システムを信じます。

過去のバックテストを見返し、「暴落時に買った人が最終的に大きな利益を得ている」ことを確認します。

2. 追加資金の準備

給与の一部を投資に回します。

ただし、生活費は必ず確保します。

3. 長期視点の維持

一時的な含み損は想定内です。

歴史的に、市場は長期的には回復してきました。

歴史的な例:

2008年リーマンショック:市場は約50%下落しましたが、数年後には回復し、新高値を更新しました。

2020年コロナショック:市場は約30%下落しましたが、わずか数ヶ月で回復しました。

「暴落時に買えた人」が最大の勝者でした。

Q5: 85%以上のシグナルが出ません

A: 正常です。85%は「異常値」のレベルなので、頻繁には出ません。

出現頻度:

通常の市場:年に0〜2回程度

暴落時:年に数回

対策:

1. 閾値の調整

もっと頻繁に高確信買いをしたいなら、閾値を下げます。

highConfThreshold = 80%に変更

ただし、精度は下がります(「本当に異常値か?」の確度が下がる)。

2. 複数銘柄の監視

日経225、TOPIX、S&P500、個別株を同時に監視します。

どれかで高確信シグナルが出る可能性が高まります。

3. 忍耐

高確信シグナルは「ボーナス」と考えます。

通常のシグナル(60〜84%)でも、十分に利益を狙えます。

焦らず、チャンスを待ちます。

心構え:

「85%以上が出ない」からといって、戦略が機能していないわけではありません。

通常シグナルでの買い増しだけでも、長期的には十分なリターンが期待できます。


第12章:発展的なカスタマイズ

基本的な戦略を理解したら、さらに高度なカスタマイズに挑戦できます。

12-1. マルチタイムフレーム分析

概念:

複数の時間軸を組み合わせて判断精度を上げます。

理由:

日足で買いシグナルが出ていても、週足では割高かもしれません。

複数の時間軸で確認することで、より確実なタイミングを掴めます。

実装例:

// 週足の%Bを日足チャートで参照
weeklyBBR = request.security(syminfo.tickerid, "W", bbr)

// エントリー条件を追加
longCondition = ta.crossover(buySignalStrength, buyThreshold) and weeklyBBR < 0.2

この例では:

日足でbuySignalStrengthが60%を超えた、かつ

週足で%Bが0.2未満(十分に安い)の場合のみ、エントリーします。

効果:

より大局的な視点で判断できます。

ダマシ(偽のシグナル)が減少します。

ただし、エントリー機会も減る可能性があります。

12-2. ボリュームフィルター

概念:

出来高が少ない時のシグナルを除外します。

理由:

出来高が少ない時の価格変動は、ノイズである可能性が高いです。

出来高が多い時(多くの投資家が参加している時)のシグナルの方が信頼性が高いです。

実装例:

// 過去20期間の平均出来高を計算
avgVolume = ta.sma(volume, 20)

// 現在の出来高が平均の1.5倍以上かチェック
bool highVolume = volume > avgVolume * 1.5

// 出来高が十分に多い時だけエントリー
longCondition = ta.crossover(buySignalStrength, buyThreshold) and highVolume

効果:

市場参加者の確信度を考慮できます。

流動性が確保されるため、スリッページを減らせます。

ただし、エントリー機会が減る可能性があります。

12-3. セクターローテーション

概念:

複数のセクターETFを監視し、最も買いシグナルが強いものに投資します。

対象例:

TOPIX Core 30(大型株)

TOPIX Small(小型株)

東証REIT指数(不動産)

これらは、経済状況によって強弱が変わります。

戦略:

ステップ1: 各セクターの買いシグナル強度を計算します

ステップ2: 最も高いセクターに投資します

ステップ3: 定期的(例:四半期ごと)にリバランスします

効果:

経済サイクルに応じた最適なセクターに投資できます。

分散効果により、リスクが低減します。

注意点:

管理が複雑になります。

セクター間の相関が高い場合、分散効果が限定的です。

12-4. 相関分析

概念:

他の市場指標との相関を考慮します。

実装例:VIX(恐怖指数)を参照

VIXは市場のボラティリティ(変動性)を示す指標です。VIXが高い時、市場は不安定で、投資家が恐怖を感じている状態です。

// 米国VIX(恐怖指数)を参照
vix = request.security("VIX", "D", close)

// VIXが高い時(市場が不安定)は買いシグナルを強化
float vixBonus = vix > 30 ? 10.0 : 0.0
buySignalStrength = buySignalStrength + vixBonus

この例では:

VIXが30を超えている場合(市場が恐怖状態)、買いシグナル強度に10ポイント加算します。

つまり、「皆が怖がっている時こそ買い時」という発想です。

効果:

市場全体のセンチメント(感情)を考慮できます。

逆張り戦略(皆が売っている時に買う)を強化できます。

注意点:

VIXは米国市場の指標なので、日本株には直接対応しない場合があります。

過度に依存すると、本来の戦略から逸脱する可能性があります。


第13章:まとめと次のステップ

13-1. この戦略の本質

長い講義を通じて、私は%BBB戦略を学んできました。最後に、この戦略の本質を振り返りましょう。

3つの核心:

1. データドリブン(データ主導)

感情ではなく、統計で判断します。

「なんとなく安い」ではなく、「%Bがマイナス0.2で、標準偏差バンドを大きく下回っているから安い」と客観的に判断します。

再現可能な投資プロセスを構築します。

誰が実行しても、同じ結果が得られる仕組みです。

2. 心理的リアリズム

人間の自然な感情を受け入れます。

「下がれば不安、異常値なら確信」という感情の流れを、投資配分に反映させます。

段階的な確信度の変化を反映します。

初期30%、中盤20%、異常値80%という配分は、心理的に納得しやすい設計です。

3. 長期的視点

バイ&ホールドの哲学を貫きます。

短期的な利益ではなく、長期的な資産形成を目指します。

短期的な変動に惑わされません。

一時的な含み損は想定内。最終的な利益を重視します。

この戦略は、単なるテクニカル分析ツールではありません。

それは、投資における意思決定の枠組みであり、心理と統計の融合であり、長期的な資産形成の哲学なのです。

13-2. 実践へのロードマップ

理論を学んだら、次は実践です。しかし、いきなり大きな資金を投入するのは危険です。段階的に進めましょう。

ステップ1:学習期間(1〜2ヶ月)

目標: 戦略の理解とツールの習熟

タスク:

□ TradingViewアカウントを開設する

□ デモトレード(仮想資金)で操作に慣れる

□ 過去10年分のバックテストを実行する

複数の銘柄(日経225、TOPIX、S&P500など)でテストする

□ パラメータ調整の実験をする

各パラメータを変更して、結果への影響を理解する

□ この講義資料を繰り返し読む

理解が深まるまで、何度も読み返す

ステップ2:少額実戦(3〜6ヶ月)

目標: 実際の市場での経験を積む

タスク:

□ 投資予定額の10%で実運用を開始する

例:100万円投資予定なら、まず10万円で開始

□ エントリー・決済の実体験をする

システムの指示通りに売買し、その感覚を掴む

□ 心理的な反応を観察する

「本当に買って大丈夫か?」という不安をどう感じるか

□ 取引日誌を記録する

エントリー理由、決済理由、そのときの感情を記録

重要:

この期間は「学習」が目的です。利益を出すことではありません。

少額なので、失敗しても大きな損失にはなりません。

むしろ、失敗から学ぶことが重要です。

ステップ3:本格運用(6ヶ月〜)

目標: 戦略の本格的な実行

タスク:

□ 投資額を徐々に増やす

ステップ2で自信がついたら、投資額を20%、30%...と増やしていく

□ 複数銘柄への展開を検討する

リスク分散のため、複数の銘柄に分散投資する

□ 定期的な戦略見直しを行う

年1回、バックテストを再実行し、パラメータを調整する

□ コミュニティで知識を共有する

他の投資家と情報交換し、学び合う

注意:

焦らないことが重要です。

ステップ1を飛ばして、いきなりステップ3に進むのは危険です。

着実に経験を積み、自信をつけてから、本格運用に移行しましょう。

13-3. 成功のための5つの原則

最後に、この戦略で成功するための5つの原則をお伝えします。

原則1:システムを信じる

格言: 感情 < データ

特に暴落時、この原則が試されます。

周りの投資家がパニックに陥り、「もう株は終わりだ」と言っている時こそ、システムは「買え」と言います。

この時、システムを信じられるかどうかが、成功と失敗の分かれ目です。

実践方法:

過去の暴落時のバックテスト結果を印刷して、手元に置いておく。

不安になったら、それを見返す。

「過去の暴落でも、システムに従った人が最終的に利益を得ている」ことを確認する。

原則2:記録を取る

格言: 記録なき投資は、教訓なき失敗

すべてのトレードを記録します。

記録内容:

エントリー日時と価格

エントリー理由(買いシグナル強度など)

決済日時と価格

決済理由(%Bが1.0を超えたなど)

感情の状態(不安だった、確信があったなど)

結果(利益または損失)

記録の活用:

定期的に見返し、「どの判断が正しかったか、間違っていたか」を分析する。

パターンを発見する(例:「不安な時に買った方が、結果が良かった」)

次の投資判断に活かす。

原則3:継続的な学習

格言: 市場は変化する。戦略も進化させる。

市場環境は常に変わります。

10年前に機能した戦略が、今でも機能するとは限りません。

学習の方法:

投資関連の書籍を読む(年に数冊)

オンラインコース(YouTubeやUdemyなど)で学ぶ

他の投資家と情報交換する(SNS、コミュニティ)

新しい指標や戦略を研究する

ただし:

コロコロと戦略を変えるのは避けましょう。

基本的な枠組みは維持しつつ、細部を改善していくイメージです。

原則4:リスク管理第一

格言: 大きく儲けることより、大きく損しないこと

派手な利益よりも、堅実な成長を目指します。

具体的な行動:

全資産を一つの戦略に集中させない(分散投資)

生活防衛資金は必ず確保する

最大ドローダウンを常に意識する(「どこまで損失に耐えられるか」)

レバレッジ(借金)を使った投資は避ける

原則5:忍耐

格言: 短期的な結果 ≠ 戦略の良し悪し

少なくとも1〜2年の評価期間が必要です。

数ヶ月の結果だけで、「この戦略はダメだ」と判断してはいけません。

忍耐が必要な場面:

暴落時の含み損:一時的に資産が減っても、回復を待つ

シグナルが出ない期間:買いシグナルが数ヶ月出なくても、焦らない

周囲の成功話:他人が短期で儲けていても、自分の戦略を貫く

心構え:

投資は短距離走ではなく、マラソンです。

最終的なゴール(10年後、20年後の資産)を見据えて、着実に進みましょう。

13-4. さらなる学習リソース

この講義で基礎は学びましたが、さらに深く学びたい方のためのリソースを紹介します。

推奨書籍:

『ウォール街のランダム・ウォーカー』 バートン・マルキール著

市場の効率性と長期投資の重要性を説く名著。

『敗者のゲーム』 チャールズ・エリス著

プロでも市場に勝つのは難しいという現実を説明。インデックス投資の重要性。

『株式投資の未来』 ジェレミー・シーゲル著

過去200年のデータから、株式投資の長期的なリターンを分析。

オンラインリソース:

TradingView公式ドキュメント

https://www.tradingview.com/pine-script-docs/en/v5/

Pine Scriptの詳細な解説。

Pine Script言語リファレンス

関数やパラメータの詳細な説明。

投資コミュニティフォーラム

TradingViewのコミュニティ、Reddit(r/investing、r/algotrading)

他の投資家と情報交換できます。

データ分析ツール:

Python + pandas

より高度な分析をしたい場合。

プログラミング知識が必要ですが、強力なツールです。

Excel

簡易的な記録管理に便利。

トレード日誌や資産推移の記録に使えます。


おわりに

この講義を通じて、皆さんは単なる「テクニカル指標の使い方」ではなく、投資における意思決定の本質を学びました。

%BBB戦略は、データと心理を融合させた、実践的な投資アプローチです。

しかし、どんなに優れた戦略でも、それを使う人の理解と規律がなければ、成功は望めません。

%BBB戦略の成功は、ツールの性能だけでなく、それを使う投資家の理解と規律にかかっています。

市場は予測不可能です。明日、株価が上がるのか下がるのか、誰にもわかりません。

しかし、適切な準備と冷静な判断があれば、長期的に資産を増やすことは十分に可能です。

最後のアドバイス:

投資は孤独な戦いではありません。

一人で悩まず、コミュニティで学び合い、互いに高め合うことで、より良い投資家になれます。

失敗を恐れないでください。失敗から学ぶことが、最も価値ある経験です。

そして何より、楽しんでください。投資は、経済や企業を学ぶ知的な活動でもあります。

この講義が、皆さんの投資人生の一助となれば幸いです。

質問があれば、いつでもお気軽にどうぞ。

皆さんの成功を心から願っています。

いいなと思ったら応援しよう!

この記事は noteマネー にピックアップされました

noteマネーのバナー