ストップ・ロスの戦略は,ストップ・ロスの価格の割合に基づいてストップ・ロスの注文を設定し調整する戦略である.ストップ・ロスは,価格が一定の利益水準に達した後,エントリー価格に調整してブレイク・イブンストップ・ロスを実現することができる.
この戦略は,入力パラメータ,例えば 3% を介してロングポジションのトライリングストップ損失のパーセントを設定します.ポジションを開設した後,リアルタイムでトライリングストップ損失価格を計算します.計算方法は:
価格がエントリー価格を上回る場合* ((1 + トレイリングストップ損失パーセント),ストップ損失価格はブレイクペインを実現するためにエントリー価格に調整されます.
価格が上記の値を下回る場合,ストップ・ロスはエントリー価格* (%) となる.
これは,価格が一定の利益レベルに達するとブレイクイブストップロスを実現し,損失によってすべての利益を失うのを避け,価格の変動によって攻撃的なストップロスが打ち消されるのを防ぐことができます.
ストラテジーは,確認のためにトレーリングストップロスの価格をプロットし,ロングに行くだけ設定します. ゴールデンクロスでロングに行き,デスクロスでポジションを閉じる. ロングした後,ストップロスの論理を実現するためにトレーリングストップロスのオーダーを設定します.
この戦略の最大の利点は,ストップロスの遅れによって利益を得た後にブレイクイブンストップロスを実現でき,後期の市場がどうなろうと,少なくとも資本金は損失を避けるために保持できるということです.これは多くの投資家にとって重要です.
さらに,この戦略のストップ損失は比較的軽い.トライリングストップ損失範囲は大きすぎないため,固定ストップ損失と比較して通常の価格変動によって停止されない.より柔軟でスマートです.
この戦略の主なリスクは,ストップ・ロスの割合が正しく設定されていない場合である. 設定が小さすぎると,ブレイクイブンストップ・ロスを実現することは困難である. 設定が大きすぎると,通常の価格変動によって簡単に停止される. したがって,適切なストップ・ロスの割合は慎重にテストと評価する必要があります.
また,異常な市場では,価格が急に大きく格差することがあります.この場合,ストップ損失価格が間に合わずに更新され,無効なストップ損失が生じる可能性があります.しかし,その確率は比較的小さいです.
この戦略は,次の側面で最適化できます.
戦略をより包括的にするために,デッドクロス,SMAを突破する価格などの退出ルールを追加します.
ストップ・ロスの割合を動的調整するメカニズムを追加し,異なる市場環境でストップ・ロスの範囲を自動的に最適化します.
収益をロックするために,特定の範囲を走る価格の後,出口ポジションに出口戦略を追加します.
異なる楽器のストップ損失パーセントパラメータの違いを研究し,パラメータ自己適応最適化メカニズムを確立します.
%trailingストップロスの戦略は全体的に非常に実用的で,損失を避けるために利益を得た後にブレイクイブンストップロスを効果的に実現することができます.この戦略は最適化のための大きな余地があり,効率を改善するためにさらなる研究に値します.一般的に,この戦略は安定した投資利益を追求する投資家に適しています.
/*backtest start: 2023-12-08 00:00:00 end: 2024-01-07 00:00:00 period: 1h 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/ // © osmaras // based on https://kodify.net/tradingview/orders/percentage-trail/ //@version=5 strategy("Break even stop loss (% of instrument price)", overlay=true) // Configure trail stop level with input options (optional) longTrailPerc = input.float(defval=3.0,step=0.1,title="Trail Long Loss (%)")* 0.01 longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) // Determine trail stop loss prices longStopPrice = 0.0 lastEntryPrice = strategy.opentrades.entry_price(strategy.opentrades - 1) longStopPrice := if (strategy.position_size > 0 and close > (lastEntryPrice * (1 + longTrailPerc))) stopValue = lastEntryPrice math.max(stopValue, longStopPrice[1]) else longStopPrice := if (strategy.position_size > 0) stopValue = lastEntryPrice * (1 - longTrailPerc) math.max(stopValue, longStopPrice[1]) else 0 // Plot stop loss values for confirmation plot(series=(strategy.position_size > 0) ? longStopPrice : na, color=color.fuchsia, style=plot.style_cross, linewidth=2, title="Long Trail Stop") // set strategy only long strategy.risk.allow_entry_in(strategy.direction.long) // Submit entry orders if (longCondition) strategy.entry("Long", strategy.long) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) if (shortCondition) strategy.close("Long") // Submit exit orders for trail stop loss price if (strategy.position_size > 0) strategy.exit(id="Stop Loss", stop=longStopPrice)