
トラッキングストップパーセンテージ戦略は,取引品種価格のパーセンテージに基づいてストップを設定し,調整する戦略である.価格が一定の利益レベルに達した後,ストップを入場価格に調整して,保安ストップを実現することができる.
この戦略は,インプットパラメータを設定して,長期ポジションのトラッキングストロップの割合を,例えば3%とします. ポジションを開設した後に,トラッキングストロップ価格をリアルタイムで計算します. 計算方法は:
価格がエントリー価格を超えると*(1+追跡ストップパーセンテージ) は,ストップ価格を入場価格に調整し,保証を実現します.
価格が上記のレベルを下回ると,入場価格が止まります.*ストップ・ローズ・パーセンテージを追跡する
このようにして,価格が一定の利潤に達したときに保証ストップを実現し,利潤の全利益が損なわれるのを防ぎ,過剰に激進的なストップ損失が価格の正常な波動に打ち上げられるのを防ぎます.
戦略はまた,確認のためにストップ・ロスの価格を追跡するグラフを描画し,多頭取引のみを設定する.金叉時に多頭し,死叉時に平仓する.多頭した後,ストップ・ロスの指示を設定し,戦略のストップ・ロジックを実現する.
この戦略の最大の利点は,ストップ・ローズを追跡することで,利益の実現を後保本にすることが可能であり,後市場がどうであれ,少なくとも資本を保ち,損失を回避することが可能である.これは多くの投資家にとって重要な意味である.
また,この戦略のストップは温和で,ストップを追跡する幅はそれほど大きくないため,価格の正常な変動を防止してストップが出場される.これは,一般的な固定ストップに比べて,より柔軟でスマートである.
この戦略の主なリスクは,ストップ・幅の設定が不適切である.設定が小さすぎると,保本ストップを達成することが困難である.設定が大きすぎると,価格の正常な波動で打ち上げられる可能性が高い.したがって,適切なストップ・幅を注意深くテストし,評価する必要がある.
もう一つのリスクは,異常な市場において,価格が突然大幅に上昇すると,ストップ・プライスが更新されず,ストップ・損失が無効になる可能性がある.しかし,その確率は低い.
この戦略は以下の点で最適化できます.
この戦略は,死叉やSMAを下回るなど,平仓条件の追加により,より包括的になる.
ストップ・パーセンテージの動的調整メカニズムが追加され,異なる市場環境で自動的にストップ・パーセンテージの幅を最適化します.
価格が一定の距離を走った後に退場し,固定利益を得る.
異なる品種の停止損失パーセントパラメータの差異を研究し,パラメータの自己適応最適化メカニズムを確立することができる.
ストップ・パーセンテージ・トラッキング戦略は,全体的に非常に実用的で,利益後のストップ・キャピタルを効果的に実現し,損失を避けることができる.この戦略の最適化スペースは大きく,効果を高めるためのさらなる研究に値する.全体的に,この戦略は,安定した投資収益を追求する投資家に適している.
/*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)