シャンデリアの出口戦略


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

シャンデリアの出口戦略

概要

この策略は,価格突破の方向と強さを判断するために吊灯指標を使用し,購入と販売のシグナルを生成します.

戦略原則

この戦略は吊灯指数に基づいている.吊灯指数は,価格の最高値,最低値,および平均実際の波動幅度に基づいてストップ・ローンを設定する.具体的には,この戦略は22日の平均実際の波動幅を計算し,係数 ((デフォルト3)) で掛けます.それから,この数値に基づいて長線ストップ・ローンを設定し,短線ストップ・ローンを設定します.戦略は,多頭位を取ったとき,価格が長線ストップ・ローンを破ると,売り込みシグナルを生じます.空頭位を取ったとき,価格が短線ストップ・ローンを破ると,買取りシグナルを生じます.

この戦略は,単に買入操作を行うのみである.具体的には,価格が最後の長線ストップラインを突破したときに買入シグナルを生成する.そして,価格が短い長線ストップラインを突破したときに売りシグナルを生成し,平仓する.

優位分析

  • 吊灯の指示を動的に設定する止損線を使用して,リスクを効果的に制御できます.
  • 価格の突破と組み合わせた取引シグナルで,価格のトレンドを捉える Features
  • 買い買いのみで,両方向の逆転を回避する戦略
  • 複数の条件で誘発されるAlertのリマインダーを設定し,戦略の状態を即座に監視できます.

リスク分析

  • 吊灯指標は波動幅に敏感であり,異常な価格変動が発生した場合,誤報信号を出す可能性があります.
  • 購入後,ストップ・ロスを設定せず,損失リスクを効果的にコントロールできない
  • ストップトラッキングを考慮せず,利益をロックすることはできません.

リスク対策:

  1. 他の指標と組み合わせたフィルタリング信号は,誤報を回避します.
  2. ストップラインを設定し,最大損失の割合を制限します.
  3. トラッキング・ストップ・メカニズムに追加し,ダイナミック・アジュレーション・セールアウト・ラインまたは部分オフを考慮する

最適化の方向

  1. 異なるパラメータ設定をテストし,購入と販売のタイミングを最適化できます.
  2. 誤報信号を避けるために,他の指標の確認を添えることができます.
  3. 買取と販売の同時進行を考慮する
  4. ストップ・アンド・ストップ・メカニズムを設定できます.

要約する

この策略は,吊灯指標のダイナミックなストップ・ペア・ラインを活用して価格逆転の機会を識別する.これは,価格が長ストップ・ペア・ラインを上方突破したときにのみ購入し,価格が短ストップ・ペア・ラインを下方突破したときに販売する.この策略は,リスクを効果的に制御する,しかし,ストップ・ペアとストップ・ペアが設定されていない.我々は,他の指標のフィルターとストップ・ペアを設定することで,この策略を最適化して,より堅牢にすることができます.

ストラテジーソースコード
/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chandelier Exit Strategy", overlay=true)

length = input(title='ATR Period', defval=22)
mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
showLabels = input(title='Show Buy/Sell Labels ?', defval=true)
useClose = input(title='Use Close Price for Extremums ?', defval=true)
highlightState = input(title='Highlight State ?', defval=true)

atr = mult * ta.atr(length)

longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop

shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop

var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir

var color longColor = color.green
var color shortColor = color.red

longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.new(longColor, 0))
buySignal = dir == 1 and dir[1] == -1
plotshape(buySignal ? longStop : na, title='Long Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(longColor, 0))
plotshape(buySignal and showLabels ? longStop : na, title='Buy Label', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(longColor, 0), textcolor=color.new(color.white, 0))

shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.new(shortColor, 0))
sellSignal = dir == -1 and dir[1] == 1
plotshape(sellSignal ? shortStop : na, title='Short Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(shortColor, 0))
plotshape(sellSignal and showLabels ? shortStop : na, title='Sell Label', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(shortColor, 0), textcolor=color.new(color.white, 0))

changeCond = dir != dir[1]
alertcondition(changeCond, title='Alert: CE Direction Change', message='Chandelier Exit has changed direction!')
alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!')
alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!')

// Define initial capital
initial_capital =25

// Trigger buy order and close buy order on sell signal
if buySignal
    strategy.entry("Buy", strategy.long, qty = initial_capital / close)

if sellSignal
    strategy.close("Buy")