ダイナミックトレーリングストップロス戦略


作成日: 2024-01-31 15:05:30 最終変更日: 2024-01-31 15:05:30
コピー: 0 クリック数: 655
1
フォロー
1617
フォロワー

ダイナミックトレーリングストップロス戦略

概要

この戦略は,動的に計算された尾行停止機構に基づいて,株式価格の最高価格と最低価格に基づいて長ポジションと短ポジションのストップラインを設定する.価格がストップラインに触れたときに,現在のポジションを平仓し,逆方向で新しいポジションを開きます.戦略は,簡単で理解しやすい,単一のリスクを効果的に制御します.

戦略原則

この戦略は主に以下のステップを踏まえて実行されます.

  1. 入力パラメータ:多量または空白の選択,サイクル長さの計算,トレーリングストップの滑点設定
  2. 最高値と最低値の計算:入力長さに基づいて周期内の最高値と最低値の計算
  3. フォローストップラインを計算する: オーバーの場合は,最低価格を滑り下げてストップラインとして計算する.空白の場合は,最高価格と滑り下げてストップラインとして計算する.
  4. 平和ポジションを開く:価格がストップラインに触れたとき,現在の方向に平定し,逆方向に新しいポジションを開く

以上は,戦略の基本動作論理である.価格が動作する時に,ストップラインが絶えず更新され,動的追跡が可能である.この追跡ストップ方法によって,単一損失を効果的に制御することができる.

優位分析

この戦略の利点は以下の通りです.

  1. 戦略はシンプルで明確で,理解し,実行しやすい.
  2. ダイナミック・フォロー・ストープを適用し,単一損失を効果的に制御する
  3. 市場環境によって多額の投資や空白の方向を柔軟に選択できる
  4. 計算周期と滑点をカスタマイズして最適化できます.

全体として,この戦略は,単純な追随の停止メカニズムによって,ポジションを効果的に管理することができ,典型的なリスク管理戦略である.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 価格の変動が大きい場合,ストップラインが頻繁にトリガーされ,取引が頻発する可能性があります.
  2. 高値と低値の不合理な周期が不適切なストップラインにつながる
  3. スライドポイントの設定が大きすぎると,止損線が緩やかになり,止損が間に合わない可能性があります.

これらのリスクについては,計算周期を調整し,滑点幅を適当に縮小するなどの方法によって最適化することができ,止損線設定をより合理的にすることができる.

最適化の方向

この戦略は以下の点で最適化できます.

  1. ストップラインの最適化メカニズムを追加し,ストップラインが過松または過緊を回避するために動的に調整できるようにする
  2. ポジション開設条件の判断を高め,不適切なタイミングでポジションを開くのを避ける
  3. トレンド指数とトレンド追跡の組み合わせにより,収益の余地が広がります.
  4. ポジション管理モジュールを追加し,リスク評価でポジションを動的に調整します.

要約する

この取引戦略は,単純な追随の止損方法によって,ポジションの動的管理を実現しています. 戦略は,理解しやすく,実行し,単一の損失を効果的に制御することができます. 我々は,戦略の優位性,潜在的なリスク,およびその後の最適化方向を分析しています. 全体として,これは非常に典型的で実用的リスク管理戦略です.

ストラテジーソースコード
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's Trailing-Stop Strategy", shorttitle = "Trailing", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, minval = 1)
shift = input(0.0, minval = 0, title = "Trailing Stop")
background = input(false)

//Levels
max = highest(high, length)
min = lowest(low, length)

//Trailing
size = strategy.position_size
longtrailing = 0.0
shorttrailing = 0.0
longtrailing := size <= 0 ? min - ((min / 100) * shift) : max(min - ((min / 100) * shift), longtrailing[1])
shorttrailing := size >= 0 ? max + ((max / 100) * shift) : min(max + ((max / 100) * shift), shorttrailing[1])
trailing = size <= 0 ? shorttrailing : longtrailing
col = size == size[1] ? size > 0 ? color.red : color.lime : na
plot(trailing, color = col, linewidth = 2, transp = 0)

//Background
bgcol = background ? size > 0 ? color.lime : color.red : na
bgcolor(bgcol, transp = 80)

if trailing > 0 and size <= 0
    strategy.entry("Long", strategy.long, needlong ? na : 0, stop = trailing)
if trailing > 0 and size >= 0
    strategy.entry("Short", strategy.short, needshort ? na : 0, stop = trailing)