% トレイリングストップ損失戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-19 21:18:39
タグ:

概要

この戦略は,トレードリスクを管理するために設定可能な%トラッキングストップロスを実装する.ダイナミックストップロスの追跡のために,エントリー価格からロングとショートストップロスのパーセントを設定することができます.

戦略の論理

主な論理は

  1. 入力ストップ・ロスト・ロング・ショート・ロストの割合
  2. ロングの場合:継続的に低値を追跡し,ストップ損失線を計算する.
  3. ショート:継続的に高値を追跡し,ストップ・ロスの線を計算する
  4. 価格がストップ・ロスのラインに触れたとき,ポジションを終了する.

この戦略はストップパーセント,例えば10%をカスタマイズすることができます. ロングの場合,ストップラインとして低値の10%を動的に計算します. ショートの場合,高値の10%を下回ります.

リスクをコントロールしながら 利益の保護を最大化するために ストップラインが 順調に動き続けます

利点

  • 手動による介入なしで自動ストップ損失
  • ダイナミックストップラインは,利益をできるだけ保護します.
  • ストップロスのパーセンテージは,異なるインstrumentに対して調整できる.
  • リスクをコントロールし,過大損失を減らす
  • 他の戦略に簡単に組み込む

リスク と 軽減

  • 遅い追尾は止まらないリスクです
  • ストップ・ロスは,損失を増やす可能性があります.
  • ストップ・ロスは過度に狭いリスク ストップが過度に頻繁である

緩和策

  1. バランス効果を保つために停止パーセントを最適化
  2. タイムベースのストップなどの他のストップタイプを組み込む
  3. 市場変動に基づいて調整停止
  4. 停止の一貫性を維持し,任意の変更を避ける

増進 の 機会

改善の機会:

  1. 停止を動的に最適化するための機械学習
  2. 最大抽出メトリクスに基づいて自動調整
  3. ストップ位置の移動平均値のような指標を組み込む
  4. 不安定性 制度 に基づく 異なる 構成 を 使う
  5. 部分停止後に利益停止を設定し,利益をロックする

結論

この戦略は,ストップ損失を動的に調整するための効果的な百分比トレーリングストップ方法を提供します.リスクを制御しながら利益保護を最大化します.パラメータ最適化,指標統合による改善により,ストップをよりスマートにすることができます.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster

//@version=4
strategy("Percent Trailing Stop %", overlay=true)

//ENTER SOME SETUP TRADES FOR TSL EXAMPLE
longCondition = crossover(sma(close, 10), sma(close, 20))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 10), sma(close, 20))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
    

//TRAILING STOP CODE
trailStop = input(title="Long Trailing Stop (%)", type=input.float, minval=0.0, step=0.1, defval=10) * 0.01

longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + trailStop)
    min(stopValue, shortStopPrice[1])
else
    999999

//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=1, title="Long Trail Stop", offset=1, title="Long Trail Stop")
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=1, title="Short Trail Stop", offset=1, title="Short Trail Stop")


//EXIT TRADE @ TSL
if strategy.position_size > 0
    strategy.exit(id="Close Long", stop=longStopPrice)
if strategy.position_size < 0
    strategy.exit(id="Close Short", stop=shortStopPrice)


もっと