यह रणनीति मूल्य ब्रेकआउट की दिशा और गति निर्धारित करने और खरीद और बिक्री संकेत उत्पन्न करने के लिए चैंडिलियर एक्जिट संकेतक का उपयोग करती है। यह केवल खरीद संचालन करती है।
यह रणनीति चांडेलियर एक्जिट संकेतक पर आधारित है जो उच्चतम उच्चतम, निम्नतम निम्नतम और औसत सच्ची सीमा के आधार पर स्टॉप-लॉस लाइनें निर्धारित करता है। विशेष रूप से, यह एक 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")