この戦略は,Bitmex
ストラテジーは主に3つの指標を使用します.最高価格,最低価格,閉じる価格.longoffset
長距離の遅延停止距離のため,およびshortoffset
短距離の遅延停止距離 標準的な長距離は228.5ポイント 短距離は243.5ポイント
ストップ価格を調整するために,次の論理を使用します.trailstop
:
最新のキャンドルの最低価格が前回のキャンドルのトレーリングストップ価格よりも低く,それ以前のキャンドルの最低価格が前回の2個のキャンドルのトレーリングストップ価格よりも高くなった場合,現在のキャンドルのトレーリングストップ価格 = 閉じる価格 + 短いトレーリングストップ距離
最新キャンドルの最高価格が前のキャンドルのトレーリングストップ価格よりも高く,それ以前のキャンドルの最高価格が前の2キャンドルのトレーリングストップ価格よりも低い場合,現在のキャンドルのトレーリングストップ価格 = 閉じる価格 - 長いトレーリングストップ距離
最新のキャンドルの最高価格が前回のキャンドルのトレーリングストップ価格よりも高い場合,現在のキャンドルのトレーリングストップ価格 = max ((前回のキャンドルのトレーリングストップ価格,最新のキャンドルの最高価格 - 長いトレーリングストップ距離)
最新キャンドルの最低価格が前回のキャンドルのトレーリングストップ価格より低い場合,現在のキャンドルのトレーリングストップ価格 = min ((前回のキャンドルのトレーリングストップ価格,最新のキャンドルの最低価格 + 短いトレーリングストップ距離)
ローリングストップ価格 = 閉じる価格
これは,動的ストップを達成するために,最も高い価格と最も低い市場価格の変化に基づいて,トレーリングストップ価格を動的に調整します.
この戦略の最大の利点は,本当に動的で柔軟なトレリングストップの実装である.固定ストップ損失価格と比較して,動的トレリングは,市場変動に基づいてストップ損失範囲を調整し,あまりにも大きなストップ距離による不必要な損失を回避し,距離が小さすぎると通常の価格変動によって停止されない.これは不必要な損失を軽減し,早期ストップの確率も減少させる.
また,ストップ損失距離がカスタマイズされ,最適化できるという利点もあります.ユーザーは,異なる製品や取引スタイルの特徴に応じて,自分自身に適したストップ損失範囲を選択できます. これにより,戦略はより幅広いシナリオに適用できます.
最後に,この戦略のストップ損失論理は単純で明確であり,理解しやすく,他の戦略にさらに開発し統合することが容易です. これはまた,その利点の1つです.
この戦略の主なリスクは,
ダイナミックストップは,通常の市場条件下で損失を減らすしかありませんが,大きな出来事や極端な市場条件に耐えることはできません.これは固有の制限です.
トレイリングストップ距離が大きすぎると,より大きな損失を引き起こす可能性がある.小さすぎると,早速停止する可能性があります.設定は,製品の特性に基づいて慎重にテストおよび最適化する必要があります.
ポジションを開いた最初の数カ月の間,トレーリング・ストップのメカニズムにより,ストップ距離が大きすぎる可能性があります.この期間中に追加のリスクが生じる可能性があります.
この戦略は,次の側面で最適化できます.
異なる製品に対するパラメータ最適化: 不安定性,日中の範囲,および異なる製品のための他のメトリックに基づいて,合理的な長距離と短距離のストップ距離を選択する.これは最も重要な方向です.
ポジションを開いた後の初期キャンドルの追加のリスクを軽減します. 距離が大きすぎないように,最初のキャンドルの遅延停止距離の調整範囲を制限します.
取引量の指標を組み込む.例えば,取引量の急上昇時にストップ距離を減らして,仲介によって停止されないようにする.
他のエントリー/エグジット戦略と組み合わせる:この戦略の主な機能は,ストップ損失を追跡する.それはエントリーとエグジットのルールを持つ他の戦略と統合することができます.
この戦略は,市場価格の最高値と最低値の変化に基づいて動的トレーリングストップロスを実装する. 通常の市場状況下で不必要な損失を効果的に削減し,固定距離が大きすぎるか小さいかの問題を解決する. キー最適化方向は,異なる製品で適切なパラメータをテストし,ポジションを開いた後の早期キャンドルでのリスクを制御する.ストップロスの論理はシンプルで明確で,理解し,他の戦略に統合し,またはストップロスのツールとして単独で使用することが容易です.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //By River strategy("BitMex Trailing Stop Strategy", overlay=true) longoffset = input(defval=228.5, title="Long Trailing Stop Size", type=float, minval=0.5, maxval=1000, step=0.5) shortoffset = input(defval=243.5, title="Short Trailing Stop Size ", type=float, minval=0.5, maxval=1000, step=0.5) hiprice = request.security(syminfo.tickerid, "1", high) loprice = request.security(syminfo.tickerid, "1", low) price = request.security(syminfo.tickerid, "1", close) trailstop = price trailstop := (loprice <= trailstop[1] and loprice[1] >= trailstop[2]) ? price + shortoffset : ((hiprice >= trailstop[1] and hiprice[1] <= trailstop[2]) ? price - longoffset : (hiprice > trailstop[1] ? max(hiprice - longoffset, trailstop[1]) : (loprice < trailstop[1] ? min(loprice + shortoffset, trailstop[1]) : price))) trailcol = trailstop > price ? red : green plot(trailstop, color=trailcol) longCondition = trailcol == green alertcondition(longCondition, "Long Stop alert", "BUY") if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trailcol == red alertcondition(shortCondition, "Short alert", "SELL") if (shortCondition) strategy.entry("Short", strategy.short)