आलसी भालू निचोड़ गति रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो बोलिंगर बैंड, केल्टनर चैनलों और एक गति संकेतक को जोड़ती है। यह यह निर्धारित करने के लिए बोलिंगर बैंड और केल्टनर चैनलों का उपयोग करती है कि क्या बाजार वर्तमान में निचोड़ में है, फिर ट्रेडिंग संकेत उत्पन्न करने के लिए गति संकेतक का उपयोग करता है।
इस रणनीति का मुख्य लाभ यह है कि यह स्वचालित रूप से रुझानों की शुरुआत की पहचान करने और गति संकेतक के साथ प्रवेश समय निर्धारित करने में सक्षम है। हालांकि, कुछ जोखिम भी हैं जिन्हें विभिन्न उत्पादों में अनुकूलन के माध्यम से संबोधित करने की आवश्यकता है।
आलसी भालू निचोड़ गति रणनीति निम्नलिखित तीन संकेतकों के आधार पर निर्णय करती हैः
जब बोलिंगर का ऊपरी बैंड केल्टनर की ऊपरी रेखा के नीचे होता है और बोलिंगर का निचला बैंड केल्टनर की निचली रेखा के ऊपर होता है, तो हम निर्धारित करते हैं कि बाजार एक निचोड़ में है। यह आमतौर पर एक प्रवृत्ति चाल शुरू होने वाला है।
प्रवेश समय निर्धारित करने के लिए, हम मूल्य परिवर्तन की गति को मापने के लिए गति संकेतक का उपयोग करते हैं। एक खरीद संकेत तब उत्पन्न होता है जब गति अपने चलती औसत से ऊपर जाती है, और एक बिक्री संकेत जब गति अपने चलती औसत से नीचे जाती है।
आलसी भालू स्क्विज़ गति रणनीति के मुख्य लाभः
आलसी भालू स्क्विज़ गति रणनीति के लिए कुछ जोखिम भी हैंः
जोखिमों को कम करने के लिए, सिफारिशों में शामिल हैंः बोलिंगर और केल्टनर के लिए लंबाई का अनुकूलन, स्टॉप लॉस को समायोजित करना, तरल उत्पादों का चयन करना, अन्य संकेतकों के साथ संकेतों का सत्यापन करना।
प्रदर्शन को और बढ़ाने के लिए मुख्य दिशाएं:
कठोर परीक्षण और अनुकूलन के माध्यम से, रणनीति के बढ़त और लाभप्रदता में काफी सुधार किया जा सकता है।
आलसी भालू निचोड़ गति रणनीति में एक बहु-सूचक दृष्टिकोण के माध्यम से मजबूत संकेत उत्पादन है, और प्रभावी रूप से नई प्रवृत्ति शुरू की पहचान कर सकता है। लेकिन यह जोखिम भी ले जाता है जो ट्रेडिंग उपकरणों में अनुकूलन की आवश्यकता है। निरंतर परीक्षण और सुधार के साथ, यह एक मजबूत एल्गोरिथम ट्रेडिंग प्रणाली बन सकती है।
/*backtest start: 2024-01-31 00:00:00 end: 2024-02-01 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © mtahreemalam original strategy by LazyBear strategy(title = 'SQM Strategy, TP & SL', shorttitle = 'Squeeze.M Strat', overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 1000, commission_type=strategy.commission.percent, commission_value=0.0, process_orders_on_close=true, use_bar_magnifier=true) //Strategy logic strategy_logic = input.string("Cross above 0", "Strategy Logic", options = ["LazyBear", "Cross above 0"]) // Date Range testPeriodSwitch = input(false, "Custom Backtesting Date Range",group="Backtesting Date Range") i_startTime = input(defval = timestamp("01 Jan 2022 00:01 +0000"), title = "Backtesting Start Time",group="Backtesting Date Range") i_endTime = input(defval = timestamp("31 Dec 2022 23:59 +0000"), title = "Backtesting End Time",group="Backtesting Date Range") timeCond = true isPeriod = testPeriodSwitch == true ? timeCond : true //// Stoploss and Take Profit Parameters // Enable Long Strategy enable_long_strategy = input.bool(true, title='Enable Long Strategy', group='SL/TP For Long Strategy', inline='1') long_stoploss_value = input.float(defval=5, title='Stoploss %', minval=0.1, group='SL/TP For Long Strategy', inline='2') long_stoploss_percentage = close * (long_stoploss_value / 100) / syminfo.mintick long_takeprofit_value = input.float(defval=5, title='Take Profit %', minval=0.1, group='SL/TP For Long Strategy', inline='2') long_takeprofit_percentage = close * (long_takeprofit_value / 100) / syminfo.mintick // Enable Short Strategy enable_short_strategy = input.bool(true, title='Enable Short Strategy', group='SL/TP For Short Strategy', inline='3') short_stoploss_value = input.float(defval=5, title='Stoploss %', minval=0.1, group='SL/TP For Short Strategy', inline='4') short_stoploss_percentage = close * (short_stoploss_value / 100) / syminfo.mintick short_takeprofit_value = input.float(defval=5, title='Take Profit %', minval=0.1, group='SL/TP For Short Strategy', inline='4') short_takeprofit_percentage = close * (short_takeprofit_value / 100) / syminfo.mintick //// Inputs //SQUEEZE MOMENTUM STRATEGY length = input(20, title='BB Length', group = "Squeeze Momentum Settings") mult = input(2.0, title='BB MultFactor', group = "Squeeze Momentum Settings") source = close lengthKC = input(20, title='KC Length', group = "Squeeze Momentum Settings") multKC = input(1.5, title='KC MultFactor', group = "Squeeze Momentum Settings") useTrueRange = input(true, title='Use TrueRange (KC)', group = "Squeeze Momentum Settings") signalPeriod=input(5, title="Signal Length", group = "Squeeze Momentum Settings") show_labels_sqm = input(title='Show Buy/Sell SQM Labels', defval=true, group = "Squeeze Momentum Settings") h0 = hline(0) // Defining MA ma = ta.sma(source, length) // Calculate BB basis = ma dev = mult * ta.stdev(source, length) upperBB = basis + dev lowerBB = basis - dev // Calculate KC range_1 = useTrueRange ? ta.tr : high - low rangema = ta.sma(range_1, lengthKC) upperKC = ma + rangema * multKC lowerKC = ma - rangema * multKC // SqzON | SqzOFF | noSqz sqzOn = lowerBB > lowerKC and upperBB < upperKC sqzOff = lowerBB < lowerKC and upperBB > upperKC noSqz = sqzOn == false and sqzOff == false // Momentum val = ta.linreg(source - math.avg(math.avg(ta.highest(high, lengthKC), ta.lowest(low, lengthKC)), ta.sma(close, lengthKC)), lengthKC, 0) red_line = ta.sma(val,signalPeriod) blue_line = val // lqm = if val > 0 // if val > nz(val[1]) // long_sqm_custom // if val < nz(val[1]) // short_sqm_custom // Plots //plot(val, style = plot.style_line, title = "blue line", color= color.blue, linewidth=2) //plot(ta.sma(val,SignalPeriod), style = plot.style_line, title = "red line",color = color.red, linewidth=2) //plot(val, color=blue, linewidth=2) //plot(0, color=color.gray, style=plot.style_cross, linewidth=2) //plot(red_line, color=red, linewidth=2) //LOGIC //momentum filter //filterMom = useMomAverage ? math.abs(val) > MomentumMin / 100000 ? true : false : true //} ////SQM Long Short Conditions //Lazy Bear Buy Sell Condition // long_sqm_lazy = (blue_line>red_line) // short_sqm_lazy = (blue_line<red_line) long_sqm_lazy = ta.crossover(blue_line,red_line) short_sqm_lazy = ta.crossunder(blue_line,red_line) //Custom Buy Sell Condition dir_sqm = val < 0 ? -1 : 1 long_sqm_custom = dir_sqm == 1 //and dir_sqm[1] == -1 short_sqm_custom = dir_sqm == -1 //and dir_sqm[1] == 1 long_sqm = strategy_logic == "LazyBear" ? long_sqm_lazy : long_sqm_custom short_sqm = strategy_logic == "LazyBear" ? short_sqm_lazy : short_sqm_custom // Plot Stoploss & Take Profit Levels long_stoploss_price = strategy.position_avg_price * (1 - long_stoploss_value / 100) long_takeprofit_price = strategy.position_avg_price * (1 + long_takeprofit_value / 100) short_stoploss_price = strategy.position_avg_price * (1 + short_stoploss_value / 100) short_takeprofit_price = strategy.position_avg_price * (1 - short_takeprofit_value / 100) plot(enable_long_strategy and not enable_short_strategy ? long_stoploss_percentage : na, color=color.red, style=plot.style_linebr, linewidth=2, title='Long SL Level') plot(enable_long_strategy and not enable_short_strategy ? long_takeprofit_percentage : na, color=color.green, style=plot.style_linebr, linewidth=2, title='Long TP Level') plot(enable_short_strategy and not enable_long_strategy ? short_stoploss_price : na, color=color.red, style=plot.style_linebr, linewidth=2, title='Short SL Level') plot(enable_short_strategy and not enable_long_strategy ? short_takeprofit_price : na, color=color.green, style=plot.style_linebr, linewidth=2, title='Short TP Level') // Long Strategy if long_sqm and enable_long_strategy == true strategy.entry('Long', strategy.long) strategy.exit('Long SL/TP', from_entry='Long', loss=long_stoploss_percentage, profit=long_takeprofit_percentage) strategy.close('Long', comment = "L. CL") // Short Strategy if short_sqm and enable_short_strategy == true strategy.entry('Short', strategy.short) strategy.exit('Short SL/TP', from_entry='Short', loss=short_stoploss_percentage, profit=short_takeprofit_percentage) strategy.close('Short', comment = "S.Cl") plot_sqm_long = long_sqm and not long_sqm[1] plot_sqm_short = short_sqm and not short_sqm[1] plotshape(plot_sqm_long and show_labels_sqm, title='Buy', style=shape.labelup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0)) plotshape(plot_sqm_short and show_labels_sqm, title='Sell', style=shape.labeldown, location=location.abovebar, size=size.normal, text='Sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0)) // Date Range EXIT if (not isPeriod) strategy.cancel_all() strategy.close_all()