
यह रणनीति मूल्य के टूटने की दिशा और ताकत को निर्धारित करने के लिए लाइटहाउस सूचकांक का उपयोग करती है, जिससे खरीद और बेचने के संकेत मिलते हैं। यह केवल खरीद और बेचने का संचालन करता है।
यह रणनीति एक लटकन सूचक पर आधारित है, जो मूल्य के उच्चतम, निम्नतम मूल्य और औसत वास्तविक उतार-चढ़ाव के आधार पर एक स्टॉप-लॉस लाइन स्थापित करता है। विशेष रूप से, यह रणनीति 22 दिनों की औसत वास्तविक उतार-चढ़ाव की गणना करती है और इसे एक गुणांक (डिफ़ॉल्ट 3) के साथ गुणा करती है। फिर इस संख्या के आधार पर एक लंबी लाइन स्टॉप-लॉस लाइन और एक छोटी लाइन स्टॉप-लॉस लाइन स्थापित करती है। रणनीति में कई ट्रेडों की स्थिति होती है, यदि कीमत लंबी लाइन स्टॉप-लॉस लाइन को तोड़ती है, तो यह एक बेचने का संकेत देता है; यदि कीमत खाली है, तो यह शॉर्ट लाइन स्टॉप-लॉस लाइन को तोड़कर एक खरीद का संकेत देता है।
इस रणनीति में केवल खरीद और खरीद का संचालन किया जाता है। विशेष रूप से, यह एक खरीद संकेत उत्पन्न करता है जब कीमत पिछली बार लंबी लाइन स्टॉपलॉस लाइन को तोड़ती है। फिर यह एक बेचने का संकेत उत्पन्न करता है और जब कीमत छोटी लाइन स्टॉपलॉस लाइन को तोड़ती है तो स्थिति को साफ करती है।
जोखिम समाधान:
इस रणनीति का उपयोग कर गतिशील स्टॉप-लॉस लाइन की पहचान कीमत पलटाव के अवसर. यह केवल खरीद जब कीमत ऊपर लंबी स्टॉप-लॉस लाइन को तोड़ने के लिए और बेचने जब कीमत कम स्टॉप-लॉस लाइन को तोड़ने के लिए, एक एकतरफा कार्रवाई को लागू करने के लिए, दोनों पक्षों में व्यापार पलटाव से बचने के लिए एक सरल रणनीति. इस रणनीति को प्रभावी ढंग से जोखिम पर नियंत्रण है, लेकिन कोई रोक और रोक की स्थापना. हम अन्य जोड़ने के द्वारा रणनीति को अनुकूलित कर सकते हैं सूचक फ़िल्टर और रोक की स्थापना, इसे और अधिक मजबूत बनाने के लिए.
/*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")