資源の読み込みに... 荷物...

改善されたスウィング・ハイ/ロー・ブレイクアウト戦略

作者: リン・ハーンチャオチャン開催日:2024年5月17日15時05分29秒
タグ:エイマRR

img

概要

この戦略は,スウィング高/低ブレイクアウト戦略の改良された変種であり,バリーッシュとベアッシュに包まれたキャンドルスティックパターンによって示された潜在的なトレンド逆転をキャピタライズすることを目的としています.この戦略は,スウィング高と低を特定し,価格がこれらのキーレベルを突破すると取引信号を生成します.さらに,この戦略は,よりよいリスク管理のために利益とストップロスのレベルを設定するために,事前に定義されたリスク・リターン比率を使用します.

戦略の原則

  1. トレーディング・シグナルを生成する.上昇傾向の格差が起き,価格がスイング・ハイを突破すると,ロング・シグナルが生成される.下落傾向の格差が起き,価格がスイング・ローを突破すると,ショート・シグナルが生成される.
  2. 利潤とストップ・ロスの設定:利潤とストップ・ロスのレベルは,事前に定義されたリスク・リターン比に基づいて計算され,取引を実行する際に設定されます.

利点分析

  1. 価格アクションとキャンドルスタイクパターンを組み合わせる: 戦略は,主要レベルでの価格ブレイクだけでなく,上昇と下落の飲み込みパターンを組み込み,取引信号の信頼性を高めます.
  2. リスク管理: リスク・リターン比を元に,利益とストップ・ロスのレベルを設定することで,戦略は個々の取引のリスク暴露を制御し,全体的なリスク管理を改善します.
  3. 異なる市場状況に適応可能: 戦略は,長期と短期の両方向を考慮し,さまざまな市場動向で取引機会を見つけることができます.

リスク分析

  1. 偽信号リスク: 価格ブレイクやキャンドルスタイクパターンは,誤った方向に取引につながる偽信号を生む場合もあります.このリスクは,追加の確認指標やフィルタリング条件を追加することで軽減できます.
  2. 市場変動リスク:非常に変動する市場では,価格が重要なレベルを急速に突破し,ストップ・ロスを引き起こすことが起こり,連続した損失につながる可能性があります.ストップ・ロスのレベルを調整したり,ダイナミックなストップ・ロスの戦略を使用することで,このリスクを軽減することができます.
  3. 取引頻度とコスト:頻繁な取引は取引コストを増加させ,戦略の全体的なパフォーマンスに影響を与える可能性があります. 入場条件を最適化するか,パラメータを適切に調整することで,取引頻度を制御するのに役立ちます.

オプティマイゼーションの方向性

  1. トレンド確認指標の導入: 価格ブレイクの有効性を検証するために移動平均値や他のトレンド指標を組み合わせることで,取引信号の質が向上します.
  2. ストップ・ロスの動的調整: 市場の変動や価格変動に基づいてストップ・ロスのレベルを動的に調整することで,異なる市場状況により良く適応することができます.
  3. パラメータ最適化: 異なるパラメータの組み合わせをバックテストして最適化することで,戦略の安定性と収益性を向上させる最適なパラメータ設定を見つけることができます.

概要


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Markoline007

//@version=5
strategy("Improved Swing High/Low Breakout Strategy", overlay=true)

// Define input variables
length = input(14, title="Swing Length")
multiplier = input(3, title="Multiplier")
risk_reward_ratio = input(1.6, title="Risk-Reward Ratio")
target_multiplier = input(2, title="Target Multiplier")

// Calculate swing highs and swing lows
var float lastHigh = na
var float lastLow = na
var bool isHigh = na
var bool isLow = na

if high[1] < high and high[2] < high[1]
    lastHigh := high[1]
    isHigh := true
    isLow := false
else if low[1] > low and low[2] > low[1]
    lastLow := low[1]
    isLow := true
    isHigh := false
else
    isHigh := false
    isLow := false

// Define buy and sell conditions
buySignal = close > lastHigh and close > open and close[1] < open[1] // Bullish engulfing
sellSignal = close < lastLow and close < open and close[1] > open[1] // Bearish engulfing

// Calculate stop and target levels
stopLevel = close
targetLevel = close + (close - stopLevel) * risk_reward_ratio

// Execute buy and sell trades
if buySignal
    strategy.entry("Buy", strategy.long)
    strategy.exit("TP/SL", "Buy", profit=targetLevel, loss=stopLevel)
if sellSignal
    strategy.entry("Sell", strategy.short)
    strategy.exit("TP/SL", "Sell", profit=targetLevel, loss=stopLevel)




関連性

もっと