ポイントブレイクストラテジー

作者: リン・ハーンチャオチャン, 日時: 2023-09-27 16:35:26
タグ:

概要

ピボットポイントブレイクアウト戦略は,価格が最近のレジスタンスを超えると株を購入し,価格が最近のサポートを下回ると売却するトレンドフォロー戦略です.このシンプルで直接的な戦略は,強い市場観を持たない投資家に適しています.ただ,トレンドを追求したいだけです.

戦略の論理

この戦略は,最近のレジスタンスとサポートラインとして,最高価格と最低価格の中間点を計算します.価格がこれらのピボットポイントを突破すると,トレンドの変化を信号し,取引することができます.

具体的には,過去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)


もっと