継続的な高ブレイクアウト戦略


作成日: 2023-12-08 10:50:54 最終変更日: 2023-12-08 10:50:54
コピー: 2 クリック数: 582
1
フォロー
1621
フォロワー

継続的な高ブレイクアウト戦略

概要

この戦略の核心的な論理は,連続したN根K線の閉盘価格が連続して上昇しているかどうかを検知し,もしそうなら,多めに行います.満足しない場合は,平仓します.このようにして,株価の上昇の傾向を捕捉し,利益を上げることができます.

戦略原則

この戦略の核心指標はnCounterで,現在のK線の閉盘価格と開盤価格を比較して,価格が上昇したかどうかを判断する.

具体的には,close[1]>=open[nCounter+1は上位を表示し,nCounter+1は上位を表示する.[1]

nCounterをnLengthの参数と比較すると,nCounter>=nLengthの場合,出力信号C1=1;C1=0となります.ここでnLengthは,我々が定義した,信号を生成するために必要な連続したK線の数です.

C1=1の信号を受け取ると,現在ポジションを持っていない場合は,多行を実行し,すでに多頭持っていた場合は,継続する.

さらに,この戦略は,停止と停止の条件を設定しています. 入場価格の一定比率を下回ると平仓を停止し,入場価格の一定比率を超えると止まります.

優位分析

これは典型的なトレンド追跡戦略で,以下の利点があります.

  1. 株価上昇の機会を捉え,多頭戦略に活用する
  2. N根の連続上は入場信号として,偽突破を効果的にフィルターし,不必要な取引を減らす
  3. ストップとストップの条件を設定し,下落のリスクを制限し,利益をロックします.
  4. 戦略の論理はシンプルで明快で,理解し,変更しやすい.
  5. nLengthパラメータを調整することで取引頻度を制御できます.

リスク分析

この戦略にはいくつかのリスクがあり,以下のような部分に重点を置いています.

  1. 株価上昇が逆転し,時効停止ができない場合,大きな損失を招く可能性があります.
  2. nLengthのパラメータが大きすぎると,よりよい入場チャンスを逃す可能性があります.
  3. 大市場環境を考慮せずに,大市場が下落したときに多頭ポジションを保有することは損なわれやすい.
  4. 異なる株の特性に合わせてパラメータを調整していないため,統一パラメータを使用すると,一部の株には適用されない場合があります.

これらのリスクを軽減するために,より厳しいストップ・ロスの条件を設定し,nLengthパラメータを最適化し,大ポケット判断ルールを追加したり,異なる株式に対して別々にパラメータをテストしたりすることができます.もちろん,いかなる戦略も完全に損失を回避することは困難であり,トレーダーのリスク好みに合わせる必要があります.

最適化の方向

リスクを考えると,この戦略を以下のように改善することができます.

  1. モバイル・ストップまたはストップ・トラッキング機能を追加.これは,価格の変化に応じてストップ・ポジションをタイムリーに調整し,損失のリスクを低減します.
  2. nLengthパラメータを最適化します. 異なる種類の株式を別々にテストして,各種の株式に適したパラメータ値を特定できます.
  3. 大市場環境の判断を高めること.例えば,大市場が下落したときに取引を停止し,逆市操作による追加の損失を避ける.
  4. 取引量の増加などの他の要因を補助条件として.例えば,上過程で取引量の増大を要求し,それによって突破の有効性を確保する.
  5. 撤回制御を設定する.最大許容損失比率,最大連続損失回数など,全損失を自動停止制御することができる.

要約する

この策略は,N根連続上K線を検知することで上のトレンドを捕捉し,効率的にトレンドを追跡することができる.論理的に単純で,パラメータ調整が柔軟で,偽突破をフィルタリングできるという利点がある.しかし,戦略をより包括的かつ安定させるために,ストップ損失,パラメータ最適化,環境判断などのモジュールを追加して改善する必要があるという一定のリスクもある.全体的に,この策略は,取引を量化するための価値ある基礎モデルを提供し,継続的に改善することで強力な取引ツールになることができる.

ストラテジーソースコード
/*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 
// of 1 when the condition is true or 0 when false.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="N Bars Up", shorttitle="NBU Backtest", overlay = false) 
nLength = input(4, minval=1)
input_takeprofit = input(20, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
nCounter = 0
nCounter := iff(close[1] >= open[1], nz(nCounter[1],0)+1,
             iff(close[1] < open[1], 0, nCounter))
C1 = iff(nCounter >= nLength, 1, 0)
posprice = 0.0
pos = 0
barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) 
posprice := iff(C1== 1, close, nz(posprice[1], 0)) 
pos := iff(posprice > 0, 1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == 1)
    strategy.entry("Long", strategy.long)
posprice := iff(low <= posprice - input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
plot(C1, title='NBU', color=color.green)