連続高値ブレイクアウト戦略
概要
本戦略の核となるロジックは、連続N本のローソク足の終値が連続して上昇しているかを検出し、条件を満たせばロングエントリーし、満たさなければ決済するというものです。これにより株価上昇トレンドを捉え、利益を獲得します。
戦略の原理
本戦略の主要指標はnCounterであり、現在のローソク足の終値と始値を比較して価格が上昇したかどうかを判定します。
具体的には、close[1]>=open[1]の場合、nCounterを1増やし、上昇を示します。close[1]<open[1]の場合、nCounterは0にリセットされます。これにより、連続して上昇したローソク足の本数を集計します。
そして、nCounterをパラメータnLengthと比較し、nCounter>=nLengthの場合、シグナルC1=1を出力し、そうでなければC1=0とします。ここでのnLengthは、シグナルを生成するために必要な連続上昇ローソク足の本数として定義されます。
C1=1のシグナルを受信した場合、現在ポジションがなければロングエントリーを実行し、すでにロングポジションを保有している場合はそのまま保有を続けます。
さらに、本戦略はストップロスと利確条件も設定しています。価格がエントリー価格から一定割合下落した場合はストップロスで決済し、一定割合上昇した場合は利確します。
優位性分析
これは比較的典型的なトレンドフォロー戦略であり、以下のような利点があります。
- 株価上昇トレンドの機会を捉えることができ、ロング戦略として適しています。
- N本の連続上昇をエントリーシグナルとすることで、偽りのブレイクアウトを効果的にフィルタリングし、不要な取引を減らします。
- ストップロスと利確条件を設定することで、下落リスクを制限し、利益を確定できます。
- 戦略ロジックはシンプルで明確であり、理解や修正が容易です。
- パラメータnLengthを調整することで、取引頻度をコントロールできます。
リスク分析
本戦略には以下のようなリスクも存在します。
- 上昇トレンドが反転した場合、適時にストップロスがかけられず、大きな損失が発生する可能性があります。
- nLengthパラメータが大きすぎると、良いエントリーチャンスを逃す可能性があります。
- 相場全体の環境を考慮していないため、相場下落時にロングポジションを保有すると損害を受けやすくなります。
- 各銘柄の特性に応じてパラメータを調整しておらず、統一パラメータでは一部の銘柄に適さない可能性があります。
これらのリスクを低減するために、より厳格なストップロス条件の設定、nLengthパラメータの最適化、相場全体の判断ルールの追加、または銘柄ごとにパラメータをテストするなどの対策が考えられます。もちろん、いかなる戦略も損失を完全に回避することは難しく、トレーダーのリスク許容度に合わせる必要があります。
最適化の方向性
上記のリスクを考慮し、以下の点から本戦略をさらに最適化することができます。
- トレーリングストップの機能を追加する。これにより価格変動に応じてストップロス位置を調整し、損失リスクを低減できます。
- nLengthパラメータの最適化。異なるタイプの銘柄ごとにテストを行い、最適なパラメータ値を見つけます。
- 相場全体の環境判断を追加。例えば相場下落時には取引を停止し、逆張りによる追加損失を回避します。
- 出来高など他の要素を補助条件として追加。例えば上昇過程で出来高が増加することを要求し、ブレイクアウトの有効性を確保します。
- ドローダウン管理を設定。例えば最大許容損失率、最大連続損失回数などにより、自動的にストップロスをかけて全体損失を制御します。
まとめ
本戦略は、N本連続上昇ローソク足を検出することで上昇トレンドを捉え、効果的にトレンドフォローを行うことができます。ロジックがシンプルでパラメータ調整が柔軟であり、偽のブレイクアウトをフィルタリングできるという利点があります。しかし、一定のリスクも存在するため、ストップロス、パラメータ最適化、環境判断などのモジュールを追加して改善し、戦略をより総合的かつ安定したものにする必要があります。全体として、本戦略は定量取引において価値のある基本モデルを提供しており、継続的な改良を加えることで強力な取引ツールとなり得ます。
/*backtest
start: 2023-01-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive higher closes. Returns a value - 1

