यह रणनीति केल्टनर चैनल संकेतक के आधार पर एक पुलबैक ट्रेडिंग रणनीति तैयार करती है। यह केल्टनर चैनल के ऊपरी और निचले रेल के साथ कीमत की तुलना करके संभावित मूल्य उलटों के समय का आकलन करती है, और उपयुक्त लंबी और छोटी स्थिति लेती है।
यह रणनीति कीमत के रुझानों का न्याय करने के लिए केल्टनर चैनल संकेतक का उपयोग करती है। केल्टनर चैनल में एक चलती औसत और औसत सच्ची सीमा (एटीआर) होती है। ऊपरी रेल चलती औसत प्लस एन गुना एटीआर के बराबर होती है; निचली रेल चलती औसत माइनस एन गुना एटीआर के बराबर होती है। जब कीमत नीचे से ऊपर की ओर चैनल की निचली रेल के माध्यम से टूटती है, तो यह माना जाता है कि तेजी की शक्ति बढ़ जाती है और लंबी स्थिति ली जा सकती है; जब कीमत ऊपर से नीचे की ओर ऊपरी रेल के माध्यम से टूटती है, तो यह माना जाता है कि मंदी की शक्ति बढ़ जाती है और छोटी स्थिति ली जा सकती है।
इसके अलावा, पॉलबैक अवसरों का न्याय करने के लिए रणनीति का आधार यह है कि कीमत चैनल की सीमा को फिर से छूती है या तोड़ती है। उदाहरण के लिए, निचले रेल को तोड़ने के लिए कीमत बढ़ने के बाद, यदि यह ऊपरी रेल को छूने के बिना निचले रेल को छूने के लिए फिर से गिर जाती है, तो यह एक लंबा पॉलबैक लेने का अवसर है। रणनीति इस समय लंबी स्थिति खोलेगी।
यह एक व्यापारिक रणनीति है जो कीमतों की पलकबैक विशेषताओं का उपयोग करती है। इसके फायदे हैंः
इस रणनीति के मुख्य जोखिम निम्नलिखित हैंः
विरोधी उपाय:
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
यह रणनीति ट्रेंड जजमेंट और पॉलबैक ट्रेडिंग विधियों को एकीकृत करती है, और रिवर्स ट्रेंड को पकड़ने में अनूठे फायदे हैं। मापदंडों को समायोजित करके और कार्यों का विस्तार करके, रणनीति की स्थिरता और लाभप्रदता को और बढ़ाया जा सकता है।
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Keltner bounce from border. No repaint. (by Zelibobla)", shorttitle="Keltner border bounce", overlay=true) price = close // build Keltner keltnerLength = input(defval=200, minval=1, title="Keltner EMA Period Length") keltnerATRLength = input(defval=200, minval=1, title="Keltner ATR Period Length (the same as EMA length in classic Keltner Channels)") keltnerDeviation = input(defval=8, minval=1, maxval=15, title="Keltner band width (in ATRs)") closeOnEMATouch = input(type=bool, defval=false, title="Close trade on EMA touch? (less drawdown, but less profit and higher commissions impact)") enterOnBorderTouchFromInside = input(type=bool, defval=false, title="Enter on border touch from inside? (by default from outside, which is less risky but less profitable)") SL = input(defval=50, minval=0, maxval=10000, title="Stop loss in ticks (leave zero to skip)") EMA = sma(price, keltnerLength) ATR = atr(keltnerATRLength) top = EMA + ATR * keltnerDeviation bottom = EMA - ATR * keltnerDeviation buyEntry = crossover(price, bottom) sellEntry = crossunder(price, top) plot(EMA, color=aqua,title="EMA") p1 = plot(top, color=silver,title="Keltner top") p2 = plot(bottom, color=silver,title="Keltner bottom") fill(p1, p2) tradeSize = input(defval=1, minval=1, title="Trade size") if ( enterOnBorderTouchFromInside and crossunder(price, bottom) ) strategy.entry("BUY", strategy.long, qty=tradeSize, comment="BUY") else if( crossover(price, bottom) ) strategy.entry("BUY", strategy.long, qty=tradeSize, comment="BUY") if( crossover(price,EMA) and closeOnEMATouch ) strategy.close("BUY") if( 0 != SL ) strategy.exit("EXIT BUY", "BUY", qty=tradeSize, loss=SL) strategy.exit("EXIT SELL", "SELL", qty=tradeSize, loss=SL) if( enterOnBorderTouchFromInside and crossover(price, bottom) ) strategy.entry("SELL", strategy.long, qty=tradeSize, comment="SELL") else if ( crossunder(price, top) ) strategy.entry("SELL", strategy.short, qty=tradeSize, comment="SELL") if( crossunder(price, EMA) and closeOnEMATouch ) strategy.close("SELL")