এটি একটি বুদ্ধিমান ট্রেডিং কৌশল যা RSI এর সাথে দ্বৈত টাইমফ্রেম সুপারট্রেন্ড সূচকগুলিকে একত্রিত করে। কৌশলটি 5 মিনিটের এবং 60 মিনিটের টাইমফ্রেম থেকে সুপারট্রেন্ড সূচকগুলি সমন্বয় করে, RSI এর সাথে ট্রেডিং সংকেতগুলি নিশ্চিত করে এবং বিস্তৃত অবস্থান পরিচালনার প্রক্রিয়াগুলি অন্তর্ভুক্ত করে। এটি ইনট্রা-ডে এবং পজিশনাল ট্রেডিং মোড উভয়ই সমর্থন করে, লাভ গ্রহণ, স্টপ-লস এবং ট্রেলিং স্টপ-লস সেটিংসের জন্য নমনীয় বিকল্প সরবরাহ করে।
কৌশলটি নিম্নলিখিত মূল যুক্তির উপর কাজ করেঃ
এটি একটি ভাল ডিজাইন করা, যৌক্তিকভাবে কঠোর প্রবণতা অনুসরণকারী কৌশল। এটি মাল্টি-টাইমফ্রেম সমন্বয় এবং আরএসআই নিশ্চিতকরণের মাধ্যমে নির্ভরযোগ্য ট্রেডিং সংকেত অর্জন করে। বিস্তৃত ঝুঁকি নিয়ন্ত্রণ প্রক্রিয়া এবং নমনীয় পরামিতি সেটিংস এটিকে ব্যবহারিক প্রয়োগের জন্য মূল্যবান করে তোলে। ব্যবসায়ীদের লাইভ বাস্তবায়নের আগে পরামিতিগুলি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করার এবং নির্দিষ্ট ট্রেডিং যন্ত্র এবং বাজারের অবস্থার অনুযায়ী তাদের অনুকূলিত করার পরামর্শ দেওয়া হয়।
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Author: Debabrata Saha strategy("Supertrend Dual Timeframe with RSI", overlay=true) // Input for System Mode (Positional/Intraday) systemMode = input.string("Intraday", title="System Mode", options=["Intraday", "Positional"]) // Input for Intraday Session Times startSession = input(timestamp("2023-10-01 09:15"), title="Intraday Start Session (Time From)") endSession = input(timestamp("2023-10-01 15:30"), title="Intraday End Session (Time To)") // Input for Target Settings (Off/Points/%) targetMode = input.string("Off", title="Target Mode", options=["Off", "Points", "%"]) target1Value = input.float(10, title="Target 1 Value", step=0.1) target2Value = input.float(20, title="Target 2 Value", step=0.1) // Input for Stoploss Settings (Off/Points/%) stoplossMode = input.string("Off", title="Stoploss Mode", options=["Off", "Points", "%"]) stoplossValue = input.float(10, title="Stoploss Value", step=0.1) // Input for Trailing Stop Loss (Off/Points/%) trailStoplossMode = input.string("Off", title="Trailing Stoploss Mode", options=["Off", "Points", "%"]) trailStoplossValue = input.float(5, title="Trailing Stoploss Value", step=0.1) // Supertrend settings atrPeriod = input(10, title="ATR Period") factor = input(3.0, title="Supertrend Factor") // Timeframe definitions timeframe5min = "5" timeframe60min = "60" // Supertrend 5-min and 60-min (ta.supertrend returns two values: [Supertrend line, Buy/Sell direction]) [st5minLine, st5minDirection] = ta.supertrend(factor, atrPeriod) [st60minLine, st60minDirection] = request.security(syminfo.tickerid, timeframe60min, ta.supertrend(factor, atrPeriod)) // RSI 5-min rsi5min = ta.rsi(close, 14) // Conditions for Buy and Sell signals isSupertrendBuy = (st5minDirection == 1) and (st60minDirection == 1) isSupertrendSell = (st5minDirection == -1) and (st60minDirection == -1) buyCondition = isSupertrendBuy and (rsi5min > 60) sellCondition = isSupertrendSell and (rsi5min < 40) // Exit conditions exitBuyCondition = st5minDirection == -1 exitSellCondition = st5minDirection == 1 // Intraday session check inSession = true // Strategy Logic (Trades only during the intraday session if systemMode is Intraday) if (buyCondition and inSession) strategy.entry("Buy", strategy.long) if (sellCondition and inSession) strategy.entry("Sell", strategy.short) // Exit logic using strategy.close() to close the position at market price if (exitBuyCondition) strategy.close("Buy") if (exitSellCondition) strategy.close("Sell") // No Sell when 60-min Supertrend is green and no Buy when 60-min Supertrend is red if isSupertrendSell and (st60minDirection == 1) strategy.close("Sell") if isSupertrendBuy and (st60minDirection == -1) strategy.close("Buy") // Target Management if (targetMode == "Points") strategy.exit("Target 1", "Buy", limit=close + target1Value) strategy.exit("Target 2", "Sell", limit=close - target2Value) if (targetMode == "%") strategy.exit("Target 1", "Buy", limit=close * (1 + target1Value / 100)) strategy.exit("Target 2", "Sell", limit=close * (1 - target2Value / 100)) // Stoploss Management if (stoplossMode == "Points") strategy.exit("Stoploss", "Buy", stop=close - stoplossValue) strategy.exit("Stoploss", "Sell", stop=close + stoplossValue) if (stoplossMode == "%") strategy.exit("Stoploss", "Buy", stop=close * (1 - stoplossValue / 100)) strategy.exit("Stoploss", "Sell", stop=close * (1 + stoplossValue / 100)) // Trailing Stop Loss if (trailStoplossMode == "Points") strategy.exit("Trail SL", "Buy", trail_price=na, trail_offset=trailStoplossValue) strategy.exit("Trail SL", "Sell", trail_price=na, trail_offset=trailStoplossValue) if (trailStoplossMode == "%") strategy.exit("Trail SL", "Buy", trail_price=na, trail_offset=trailStoplossValue / 100 * close) strategy.exit("Trail SL", "Sell", trail_price=na, trail_offset=trailStoplossValue / 100 * close)