Strategi keluar candelier


Tarikh penciptaan: 2024-01-05 15:57:51 Akhirnya diubah suai: 2024-01-05 15:57:51
Salin: 0 Bilangan klik: 1139
1
fokus pada
1617
Pengikut

Strategi keluar candelier

Gambaran keseluruhan

Strategi ini menggunakan indikator lampu gantung untuk menentukan arah dan kekuatan penembusan harga, yang menghasilkan isyarat beli dan jual. Ia hanya melakukan operasi beli.

Prinsip Strategi

Strategi ini adalah berdasarkan indikator lampu gantung, yang menetapkan garis stop loss berdasarkan harga tertinggi, harga terendah, dan purata pergerakan sebenar harga. Secara khusus, strategi ini mengira purata pergerakan sebenar pada hari ke-22 dan dikalikan dengan faktor ((default 3)). Kemudian, berdasarkan nilai ini, ia menetapkan garis stop loss panjang dan garis stop loss pendek. Apabila strategi memegang banyak kedudukan, ia akan menghasilkan isyarat jual jika harga menembusi garis stop loss panjang; jika harga menembusi garis stop loss pendek ia akan menghasilkan isyarat beli.

Strategi ini hanya melakukan operasi beli. Secara khusus, ia menghasilkan isyarat beli apabila harga menembusi garis henti panjang terakhir. Ia kemudian menghasilkan isyarat jual dan melonggarkan kedudukan apabila harga menembusi garis henti pendek.

Analisis kelebihan

  • Garis kerosakan berhenti yang digunakan untuk menetapkan indikator lampu gantung secara dinamik, dapat mengawal risiko dengan berkesan
  • Penembusan harga digabungkan untuk menghasilkan isyarat dagangan yang dapat menangkap harga yang sedang trending.
  • Hanya melakukan pembelian, strategi untuk mengelakkan perubahan arah.
  • Tetapkan peringatan Alert yang dicetuskan oleh pelbagai syarat untuk memantau status dasar dalam masa nyata

Analisis risiko

  • Indeks lampu gantung lebih sensitif terhadap ketinggian turun naik yang boleh memberi isyarat yang salah jika berlaku turun naik harga yang tidak normal
  • Tidak ada setup stop loss selepas membeli, tidak dapat mengawal risiko kerugian dengan berkesan
  • Tidak ada pertimbangan untuk menjejaki stop loss, tidak dapat mengunci keuntungan

Penyelesaian risiko:

  1. Menapis isyarat dengan penunjuk lain untuk mengelakkan laporan palsu
  2. Tetapkan garis hentian, hadkan kadar kerugian maksimum
  3. Menambah mekanisme penghentian pengesanan, anda boleh mempertimbangkan untuk menyesuaikan dinamika keluar atau keluar dari padang

Arah pengoptimuman

  1. Anda boleh menguji parameter yang berbeza untuk mengoptimumkan masa pembelian dan penjualan
  2. Pengesahan yang boleh ditambah dengan penunjuk lain untuk mengelakkan isyarat yang salah
  3. Anda boleh mempertimbangkan untuk membeli dan menjual pada masa yang sama.
  4. Mekanisme Hentikan Kerosakan dan Hentikan

ringkaskan

Strategi ini menggunakan indikator lampu gantung untuk mengenal pasti peluang harga berbalik. Ia hanya membeli apabila harga menembusi garis hentian panjang ke atas dan menjual apabila harga menembusi garis hentian pendek, mewujudkan strategi sederhana yang bertindak satu sisi, mengelakkan pergerakan yang berbalik di kedua-dua belah pihak.

Kod sumber strategi
/*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")