ブレイクアウトポイント反転戦略


作成日: 2023-09-27 16:35:26 最終変更日: 2023-09-27 16:35:26
コピー: 0 クリック数: 808
1
フォロー
1617
フォロワー

概要

突破点逆転戦略は,最近のサポートポイントより高い株を購入し,最近のレジスタンスポイントより低い株を売却することで,トレンドの変化を捉えるためのトレンド追跡戦略である.この戦略はシンプルで直接であり,市場に対してあまり先入観がないだけでトレンドを追跡したい投資家には適している.

戦略原則

この戦略は,特定の日の最高価格と最低価格のミドルポイントを計算することによって,近隣のレジスタンスラインとサポートラインを決定します.価格がこれらのキーポイントを突破すると,トレンドが変化していることを示すので,その変化の方向を追跡して取引することができます.

具体的には,戦略は,過去N1日の最高価格の中央点を抵抗線として,過去N2日の最低価格の中央点をサポート線として計算する. 買い方では,その日の最高価格が最近の抵抗線を超えた場合,買い信号を発信する. 売り方では,その日の最低価格が最近のサポート線を下回った場合,売り信号を発信する. 投資家は,N1とN2の値を自分で設定して,戦略の敏感性を調整することができる.

この戦略は簡単で直接的なもので,市場を予測する必要なく,ただ重要なポイントの突破を追跡することでトレンドを捉えることができます.トレンドが上向きにレジスタンスラインを突破したときに購入し,下向きにサポートラインを突破したときに販売し,順番を保つため.

優位分析

  • シンプルで操作が簡単で,あらゆるレベルの投資家に適しています.

この戦略はシンプルで直感的で,予測のスキルが必要なく,レジスタンス・サポートポイントの突破を追跡するだけで実現できます.これは操作の難易度を軽減し,あらゆるレベルの投資家に使用できるようにします.

  • トレンドの変化を効果的に捉え,タイミングでポジションを調整する

キーポイントの突破は,市場で認められたトレンド変化のシグナルである. この戦略は,トレンドが変化する時に,迅速に反応し,ポジションを調整し,閉じ込められることを避けることができる.

  • カスタマイズ可能なパラメータ,戦略の柔軟性

投資家は,左側と右側のデータを見る日数を自分で設定して,戦略の感性を調整することができます.より多くの日数を参照すると,レジスタンスサポートラインがより安定し,少ない日数を参照すると,戦略がより柔軟に敏感になります.

  • 戦略の組み合わせに柔軟性がある

この戦略は主にトレンド追跡機能を実現し,他の選択タイミングの戦略の組み合わせで簡単に使用され,全体的なリターンを向上させることができる.

リスク分析

  • 遅滞がある

この戦略は,トレンドの変化を識別するために,一定のデータ蓄積を必要とし,購入や販売のポイントが一定の遅滞を引き起こす可能性があります.価格が逆転し,シグナルが元のトレンドを継続しているかどうかについて注意する必要があります.

  • 偽の突破の危険性

市場が短期的に偽の突破口に突入する可能性がある場合,投資家は,囚われを避けるために何らかの対応能力を持つ必要があります.

  • リスクが高い

この戦略は全ポジションのトレンドを追跡するので,大きな撤回リスクがある. 投資家は自分のリスク承受能力を考えなければならない. 撤回を減らすために適切なポジションの規模を縮小することもできる.

  • 取引頻度管理に注目する

パラメータ設定が過度に敏感である場合,取引頻度が過度に高くなる可能性があります.取引頻度を減らすために最小保有時間を設定することもできます.

最適化の方向

  • パラメータの設定を最適化

長期からN日間の最高最低価格のパラメータを最適化して,最適のパラメータの組み合わせを見つけることができる.また,市場状況の動的調整パラメータと組み合わせて,トレンドが明らかであるときにより敏感なパラメータを設定することもできる.

  • 突破口に加わろう

突破に対する最小幅を設定して,小幅の偽の突破に誤解されないようにする.突破の強度が大きいほど,トレンド転換の可能性が大きい.

  • 他の指標と組み合わせたフィルタリング

RSI,KDなどの他の技術指標を添加することができる. キーポイントが突破すると同時に指標も背離すると,シグナルがより効果的になる. 突破のみに依存するシグナルを避ける.

  • ポジション管理の最適化

市場状況に応じてポジションを調整することでリスクを制御することができる.大損を避けるため,衝動に対してストップロスを設定することができる.また,トレンドの運行状況に応じてポジションを動的に調整することもできる.

要約する

突破点逆転戦略は,簡単なキーポイント突破によってトレンドを追跡し,あらゆるタイプの投資家に広く適用できます. この戦略の優点は,操作が簡単で,トレンドの変化を効果的に捕捉できるという点にあるが,一定の遅れ,偽の突破リスク,および大きな引き戻りがある.パラメータ最適化,フィルターを追加,ポジション管理の改善などの手段によって戦略の安定性を高めることができます. 全体的に,この戦略は,単純なトレンドを追跡する投資家に適していますが,リスクを制御する必要があります.

ストラテジーソースコード
/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EduardoMattje

//@version=5
strategy("Pivot Point Breakout", "PPB", true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, process_orders_on_close=true)

// Constants

var L_PIVOT_HIGH = "Pivot high"
var L_PIVOT_LOW = "Pivot low"

var LEFT = "Left"
var RIGHT = "Right"

var BOTH = "Both"
var LONG = "Long"
var SHORT = "Short"

var DATES = "Date selection"
var DATES_TOOLTIP = "Change it to limit the trades for the given time interval.\n\nLeave it to disable this behaviour."

// Inputs

var orderDirection = input.string(LONG, "Order direction", options=[BOTH, LONG, SHORT])

var leftHigh = input.int(3, LEFT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)
var rightHigh = input.int(3, RIGHT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)

var leftLow = input.int(3, LEFT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)
var rightLow = input.int(3, RIGHT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)

var startDate = input(0, "Starting date", group=DATES)
var endDate = input(0, "Final date", group=DATES)

//

var float lastHigh = na
var float lastLow = na

lowPivot = ta.pivotlow(leftLow, rightLow)
highPivot = ta.pivothigh(leftHigh, rightHigh)

f_updateLevels(pivot_) => 
    var float pastLevel = na
    
    if not na(pivot_)
        pastLevel := pivot_
    
    pastLevel
    
lastLow := f_updateLevels(lowPivot)
lastHigh := f_updateLevels(highPivot)

// Validates the time interval

validTrade =  true

// Orders

if high > lastHigh
    strategy.entry("Long", strategy.long, when=orderDirection != SHORT and validTrade)
    strategy.close("Short", when=orderDirection == SHORT)
if low < lastLow
    strategy.entry("Short", strategy.short, when=orderDirection != LONG and validTrade)
    strategy.close("Long", when=orderDirection == LONG)
    
// Plots

plot(lastLow, "Last pivot low", color.red, offset=1)
plot(lastHigh, "Last pivot high", color.teal, offset=1)

plotshape(lowPivot, "Pivot low", location=location.belowbar, color=color.red, offset=-rightLow)
plotshape(highPivot, "Pivot high", color=color.teal, offset=-rightHigh)