কৌশলটি একাধিক টাইমফ্রেম এবং বোলিংজার ব্যান্ড জুড়ে সুপারট্রেন্ড সূচককে অন্তর্ভুক্ত করে ট্রেন্ডের দিক এবং মূল সমর্থন / প্রতিরোধের স্তরগুলি সনাক্ত করতে এবং অস্থিরতার সময় ব্রেকআউটের ট্রেডগুলিতে প্রবেশ করে। এটি মূলত স্বর্ণ, রৌপ্য, অপরিশোধিত তেল ইত্যাদির মতো অত্যন্ত অস্থির পণ্যের ভবিষ্যতের জন্য ডিজাইন করা হয়েছে।
কাস্টম পাইন স্ক্রিপ্ট ফাংশনpine_supertrend()
বিভিন্ন সময়সীমার (যেমন 1 মিনিট এবং 5 মিনিট) জুড়ে সুপার ট্রেন্ড গণনা এবং বৃহত্তর সময়সীমার প্রবণতার দিকনির্দেশ নির্ধারণের জন্য বাস্তবায়িত।
বোলিংজার ব্যান্ড উপরের/নিচের ব্যান্ডগুলি চ্যানেল হিসাবে কাজ করে। ব্রেকআউট প্রবণতার দিক নির্দেশনা করে। উপরের ব্যান্ডের উপরে বন্ধ হ'ল উত্থানের ব্রেকআউট। নীচের ব্যান্ডের নীচে বন্ধ হ'ল হ্রাসের ভাঙ্গন।
প্রবেশ সংকেত:
দীর্ঘঃ বন্ধ > উপরের ব্যান্ড এবং বন্ধ > সুপারট্রেন্ড (বহু TF) সংক্ষিপ্তঃ বন্ধ < নিম্ন ব্যান্ড AND বন্ধ < সুপার ট্রেন্ড (বহু TF)
প্রস্থানঃ
লং আউটঃ বন্ধ < ৫ মিটার সুপারট্রেন্ড সংক্ষিপ্ত প্রস্থানঃ বন্ধ > ৫ মিটার সুপারট্রেন্ড
সুতরাং এর লক্ষ্য সুপারট্রেন্ড এবং বিবি এর মধ্যে অস্থির গতিতে রেজোনেন্স ব্রেকআউট ধরা।
ঝুঁকি হ্রাসঃ
এই কৌশলটি সুপারট্রেন্ড এবং বোলিংজার ব্যান্ডের শক্তি একত্রিত করে ক্রস টাইমফ্রেম বিশ্লেষণ এবং চ্যানেল ব্রেকআউট ব্যবহার করে উচ্চ সম্ভাব্যতার ব্যবসায়ের জন্য। এটি কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে এবং অস্থির যন্ত্রগুলিতে ভাল মুনাফা অর্জন করতে পারে। আরও অপ্টিমাইজেশন এবং সূচক সংমিশ্রণ কর্মক্ষমতা উন্নত করতে পারে।
/*backtest start: 2023-10-24 00:00:00 end: 2023-11-23 00:00:00 period: 1h basePeriod: 15m 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/ // © ambreshc95 //@version=5 strategy("Comodity_SPL_Strategy_01", overlay=false) // function of st // [supertrend, direction] = ta.supertrend(3, 10) // plot(direction < 0 ? supertrend : na, "Up direction", color = color.green, style=plot.style_linebr) // plot(direction > 0 ? supertrend : na, "Down direction", color = color.red, style=plot.style_linebr) // VWAP // src_vwap = input(title = "Source", defval = hlc3, group="VWAP Settings") // [_Vwap,stdv,_] = ta.vwap(src_vwap,false,1) // plot(_Vwap, title="VWAP", color = color.rgb(0, 0, 0)) // The same on Pine Script® pine_supertrend(factor, atrPeriod,len_ma) => h= ta.sma(high,len_ma) l= ta.sma(low,len_ma) hlc_3 = (h+l)/2 src = hlc_3 atr = ta.atr(atrPeriod) upperBand = src + factor * atr lowerBand = src - factor * atr prevLowerBand = nz(lowerBand[1]) prevUpperBand = nz(upperBand[1]) lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand int direction = na float superTrend = na prevSuperTrend = superTrend[1] if na(atr[1]) direction := 1 else if prevSuperTrend == prevUpperBand direction := close > upperBand ? -1 : 1 else direction := close < lowerBand ? 1 : -1 superTrend := direction == -1 ? lowerBand : upperBand [superTrend, direction] len_ma_given = input(75, title="MA_SMA_ST") [Pine_Supertrend, pineDirection] = pine_supertrend(3, 10,len_ma_given) // plot(pineDirection < 0 ? Pine_Supertrend : na, "Up direction", color = color.green, style=plot.style_linebr) // plot(pineDirection > 0 ? Pine_Supertrend : na, "Down direction", color = color.red, style=plot.style_linebr) // // Define Supertrend parameters atrLength = input(10, title="ATR Length") factor = input(3.0, title="Factor") // // Calculate Supertrend [supertrend, direction] = ta.supertrend(factor, atrLength) st_color = supertrend > close ? color.red : color.green // // Plot Supertrend // plot(supertrend, "Supertrend", st_color) // // BB Ploting length = input.int(75, minval=1) maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.5, minval=0.001, maxval=50, title="StdDev") ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev offset = input.int(0, "Offset", minval = -500, maxval = 500) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) // h= ta.sma(high,60) // l= ta.sma(low,60) // c= sma(close,60) // hlc_3 = (h+l)/2 // supertrend60 = request.security(syminfo.tickerid, supertrend) // // Define timeframes for signals tf1 = input(title="Timeframe 1", defval="1") tf2 = input(title="Timeframe 2",defval="5") // tf3 = input(title="Timeframe 3",defval="30") // // // Calculate Supertrend on multiple timeframes supertrend_60 = request.security(syminfo.tickerid, tf1, Pine_Supertrend) supertrend_5m = request.security(syminfo.tickerid, tf2, supertrend) // supertrend3 = request.security(syminfo.tickerid, tf3, supertrend) // // Plot Supertrend_60 st_color_60 = supertrend_60 > close ? color.rgb(210, 202, 202, 69) : color.rgb(203, 211, 203, 52) plot(supertrend_60, "Supertrend_60", st_color_60) // // Plot Supertrend_5m st_color_5m = supertrend_5m > close ? color.red : color.green plot(supertrend_5m, "Supertrend_5m", st_color_5m) ma21 = ta.sma(close,21) // rsi = ta.rsi(close,14) // rsima = ta.sma(rsi,14) // Define the Indian Standard Time (IST) offset from GMT ist_offset = 5.5 // IST is GMT+5:30 // Define the start and end times of the trading session in IST // start_time = timestamp("GMT", year, month, dayofmonth, 10, 0) + ist_offset * 60 * 60 // end_time = timestamp("GMT", year, month, dayofmonth, 14, 0) + ist_offset * 60 * 60 // Check if the current time is within the trading session // in_trading_session = timenow >= start_time and timenow <= end_time in_trading_session = not na(time(timeframe.period, "0945-1430")) // bgcolor(inSession ? color.silver : na) out_trading_session = not na(time(timeframe.period, "1515-1530")) // // // Define buy and sell signals buySignal = close>upper and close > supertrend_5m and close > supertrend_60 and close > ma21 and in_trading_session //close > supertrend and sellSignal = close<lower and close < supertrend_5m and close < supertrend_60 and close < ma21 and in_trading_session //close < supertrend and var bool long_position = false var bool long_exit = false var float long_entry_price = 0 var float short_entry_price = 0 if buySignal and not long_position // label.new(bar_index, na, yloc = yloc.belowbar, style = label.style_label_up, color = color.green, size = size.small) long_position := true strategy.entry("Buy",strategy.long) long_exit := (close < supertrend_5m) if long_position and long_exit // label.new(bar_index, na, yloc = yloc.belowbar, style = label.style_xcross, color = color.green, size = size.tiny) long_position := false strategy.exit("Exit","Buy",stop = close) var bool short_position = false var bool short_exit = false if sellSignal and not short_position // label.new(bar_index, na, yloc = yloc.abovebar, style = label.style_label_down, color = color.red, size = size.small) short_position := true strategy.entry("Sell",strategy.short) short_exit := (close > supertrend_5m) if short_position and short_exit // label.new(bar_index, na, yloc = yloc.belowbar, style = label.style_xcross, color = color.red, size = size.tiny) short_position := false strategy.exit("Exit","Sell", stop = close) if out_trading_session long_position := false strategy.exit("Exit","Buy",stop = close) short_position := false strategy.exit("Exit","Sell", stop = close) // if long_position // long_entry_price := close[1] + 50//bar_index // if short_position // short_entry_price := close[1] - 50//bar_index // if (long_position and high[1] > long_entry_price) // label.new(bar_index, na, yloc = yloc.abovebar, style = label.style_triangledown, color = color.yellow, size = size.tiny) // if (short_position and low[1] < short_entry_price) // label.new(bar_index, na, yloc = yloc.belowbar, style = label.style_triangleup, color = color.yellow, size = size.tiny)