パーセンテージ トレーリング ストップ戦略


作成日: 2023-09-19 21:18:39 最終変更日: 2023-09-19 21:18:39
コピー: 0 クリック数: 636
1
フォロー
1617
フォロワー

概要

この戦略は,取引リスクを制御するための構成可能なパーセンテージ・トラッキング・ストップ・メカニズムを実現している.これは,ロングポジションとショートポジションのストップ・幅のパーセンテージを設定し,エントリー価格から継続的に有利な方向に最高価格または最低価格を追跡し,ダイナミック・ストップを実現することを可能にする.

戦略原則

この戦略の主な論理は:

  1. 長いポジションと短いポジションを入力するストップの割合
  2. ロングポジションでは,低値を追跡し,最低価格に基づいてストップラインを計算します.
  3. ショートポジション:高値を追跡し,最高値からストップラインを計算する
  4. 価格がストップラインに触れたら,すぐにストップして,現在のポジションを退出します.

策略は,カスタムストップパーセンテージを許可します.例えば,10%に設定します.長いポジションの場合,それは最低価格の10%以上をストップラインとしてリアルタイムで計算します.短いポジションの場合,最高価格の10%以下をストップラインとして計算します.

この方法で,ストップラインは有利な方向に常に移動し,ダイナミックなストップを追跡し,利潤を最大限に保護し,同時にリスクを制御します.

戦略的優位性

  • 自動で追跡し,手動で操作する必要はありません.
  • ダイナミック・ストップ・ローンは,利潤を最大限に守ります.
  • 取引品種に合わせてカスタマイズ可能なストップ・ローズパーセント
  • リスク管理に役立て,予想以上の損失を減らす
  • 多種多様な取引戦略に対応し,簡単に統合できます.

戦略的リスクと対応

  • 追跡速度が遅いため,無防備なリスクがある.
  • ストップ・ロスの過度な緩和は,損失の拡大を招く可能性がある.
  • ストップは過度に締め付けられ,頻繁にストップする可能性があります.

どう対処するか?

  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)