यह रणनीति तेजी/बैरिश छाया लंबाई के अनुपात की गणना करके वर्तमान प्रवृत्ति की दिशा का आकलन करती है, और एटीआर संकेतक के साथ प्रवृत्ति की पहचान करती है। यह ब्रेकआउट बिंदुओं पर रिवर्स स्थिति खोलती है और अल्पकालिक रुझानों को पकड़ने के लिए स्टॉप लॉस और ले लाभ सेट करती है।
रणनीति मुख्य रूप से तेजी/बिरिश छाया अनुपात की गणना करके वर्तमान प्रवृत्ति का आकलन करती है। लंबी मंदी नीचे की प्रवृत्ति को दर्शाती है जबकि लंबी तेजी ऊपर की प्रवृत्ति को दर्शाती है।
विशिष्ट तर्क यह हैः
उपरोक्त बुनियादी ट्रेडिंग तर्क है, रुझान का पता लगाने के साथ रिवर्स ब्रेकआउट बिंदुओं की पहचान करना और स्टॉप लॉस/टेक प्रॉफिट के साथ लाभ का अनुकूलन करना।
जोखिमों को उचित स्टॉप लॉस, पैरामीटर अनुकूलन और समय पर स्थिति से बाहर निकलने से प्रबंधित किया जा सकता है।
इस रणनीति को निम्नलिखित तरीकों से अनुकूलित किया जा सकता हैः
बहुआयामी परीक्षण और अनुकूलन के साथ, रणनीति प्रदर्शन को अधिकतम किया जा सकता है।
कुल मिलाकर, यह रणनीति रुझान पहचान और जोखिम प्रबंधन के माध्यम से अल्पकालिक मूल्य उतार-चढ़ाव से लाभान्वित होती है। जब अनुकूलित किया जाता है, तो यह क्वांट ट्रेडिंग के लिए एक मजबूत अल्पकालिक ब्रेकआउट रणनीति बन सकती है।
/*backtest start: 2022-11-08 00:00:00 end: 2023-11-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ondrej17 //@version=4 strategy("longWickstrategy", overlay=true ) // Inputs st_yr_inp = input(defval=2020, title='Backtest Start Year') st_mn_inp = input(defval=01, title='Backtest Start Month') st_dy_inp = input(defval=01, title='Backtest Start Day') en_yr_inp = input(defval=2025, title='Backtest End Year') en_mn_inp = input(defval=01, title='Backtest End Month') en_dy_inp = input(defval=01, title='Backtest End Day') sltp_inp = input(defval=0.8, title='N - % offset for N*SL and (2N)*TP')/100 // Dates start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00) end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00) canTrade = time >= start and time <= end // Indicators Setup // Strategy Calcuations lowerWick = (open > close) ? close-low : open - low upperWick = (open > close) ? high-open : high-close wickLength = max(lowerWick,upperWick) candleLength = high-low wickToCandleRatio = wickLength / candleLength entryFilterCandleLength = candleLength > 0.75*atr(48) // Entries and Exits longCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick > upperWick and canTrade and strategy.position_size == 0 shortCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick < upperWick and canTrade and strategy.position_size == 0 strategy.entry("pendingLong", strategy.long, limit=low+wickLength/2, when = longCondition) strategy.entry("pendingShort", strategy.short, limit=high-wickLength/2, when = shortCondition) longStop = strategy.position_size > 0 ? strategy.position_avg_price*(1-sltp_inp) : na longTP = strategy.position_size > 0 ? strategy.position_avg_price*(1+2*sltp_inp) : na shortStop = strategy.position_size < 0 ? strategy.position_avg_price*(1+sltp_inp) : na shortTP = strategy.position_size < 0 ? strategy.position_avg_price*(1-2*sltp_inp) : na strategy.exit("longSLTP","pendingLong", stop=longStop, limit = longTP) strategy.exit("shortSLTP","pendingShort", stop=shortStop, limit = shortTP) plot(longStop, color=color.red, style=plot.style_linebr, linewidth=2) plot(shortStop, color=color.red, style=plot.style_linebr, linewidth=2) plot(longTP, color=color.green, style=plot.style_linebr, linewidth=2) plot(shortTP, color=color.green, style=plot.style_linebr, linewidth=2) plotLongCondition = longCondition ? high+abs(open-close) : na plot(plotLongCondition, style=plot.style_circles, linewidth=4, color=color.green) plotShortCondition = shortCondition ? high+abs(open-close) : na plot(plotShortCondition, style=plot.style_circles, linewidth=4, color=color.red)