এই কৌশলটি একাধিক প্রযুক্তিগত সূচক ফিল্টারগুলির উপর ভিত্তি করে একটি প্রবণতা যুগান্তকারী ট্রেডিং সিস্টেম। এটি একাধিক প্রবণতা সূচককে ফিল্টার করে। একাধিক সংকেত নিশ্চিতকরণের মাধ্যমে মিথ্যা ব্রেকআউটগুলি ফিল্টার করতে এবং ট্রেডিংয়ের নির্ভুলতা উন্নত করতে এক্সপোনেনশিয়াল মুভিং অ্যাভারেজ (ইএমএ), ভলিউম ওয়েটেড গড় মূল্য (ভিডাব্লুএপি), আপেক্ষিক শক্তি সূচক (আরএসআই), গড় দিকনির্দেশক সূচক (এডিএক্স) ইত্যাদি সহ একাধিক প্রযুক্তিগত সূচককে একত্রিত করে। কৌশলটি উচ্চতর সময়সীমার প্রবণতা রায়কে অন্তর্ভুক্ত করে এবং কার্যকর ঝুঁকি নিয়ন্ত্রণের জন্য একটি এটিআর-ভিত্তিক গতিশীল স্টপ-লস এবং লাভ গ্রহণের স্কিম ব্যবহার করে।
কৌশলটির মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করেঃ
এই কৌশলটি একাধিক প্রযুক্তিগত সূচকগুলির সমন্বয়ের মাধ্যমে একটি অপেক্ষাকৃত সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। এর মূল সুবিধাটি মূলত মূলধন সুরক্ষার জন্য বৈজ্ঞানিক ঝুঁকি ব্যবস্থাপনা পদ্ধতি ব্যবহার করার সময় বহু-মাত্রিক সংকেত নিশ্চিতকরণের মাধ্যমে ট্রেডিংয়ের নির্ভুলতা উন্নত করার মধ্যে রয়েছে। যদিও কিছু সীমাবদ্ধতা বিদ্যমান, ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, এই কৌশলটির প্রকৃত ট্রেডিংয়ে স্থিতিশীল রিটার্ন অর্জনের সম্ভাবনা রয়েছে।
/*backtest start: 2024-11-19 00:00:00 end: 2024-12-18 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Trend-Filtered Scalping Strategy", overlay=true, shorttitle="TFSS") // Inputs emaShort = input.int(9, title="EMA Short", minval=1) emaLong = input.int(21, title="EMA Long", minval=1) rsiLength = input.int(14, title="RSI Length", minval=1) atrLength = input.int(14, title="ATR Length", minval=1) adxLength = input.int(20, title="ADX Length", minval=1) adxSmoothing = input.int(14, title="ADX Smoothing", minval=1) volMultiplier = input.float(1.5, title="Volume Spike Multiplier", minval=1.0) riskPercent = input.float(1, title="Risk % of Equity", minval=0.1, step=0.1) // Higher Time Frame for Trend Filter htfTimeframe = input.timeframe("15", title="Higher Time Frame") ema50HTF = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, 50)) // Indicators ema9 = ta.ema(close, emaShort) ema21 = ta.ema(close, emaLong) vwap = ta.vwap(close) rsi = ta.rsi(close, rsiLength) atr = ta.atr(atrLength) volAvg = ta.sma(volume, 10) // ADX Calculation with Smoothing [_, _, adx] = ta.dmi(adxLength, adxSmoothing) // Entry Conditions longCondition = (ta.crossover(ema9, ema21) and close > vwap and rsi > 55 and adx > 25 and close > ema50HTF and volume > volAvg * volMultiplier) shortCondition = (ta.crossunder(ema9, ema21) and close < vwap and rsi < 45 and adx > 25 and close < ema50HTF and volume > volAvg * volMultiplier) // Position Sizing Based on Risk % capitalPerTrade = (strategy.equity * (riskPercent / 100)) / atr longStop = close - 1.5 * atr longTarget = close + 3 * atr shortStop = close + 1.5 * atr shortTarget = close - 3 * atr // Entry Logic if longCondition and not strategy.opentrades strategy.entry("Long", strategy.long, qty=capitalPerTrade) strategy.exit("Exit Long", from_entry="Long", stop=longStop, limit=longTarget) if shortCondition and not strategy.opentrades strategy.entry("Short", strategy.short, qty=capitalPerTrade) strategy.exit("Exit Short", from_entry="Short", stop=shortStop, limit=shortTarget) // Alerts alertcondition(longCondition, title="Long Entry Alert", message="Long Condition Triggered!") alertcondition(shortCondition, title="Short Entry Alert", message="Short Condition Triggered!") // Plot Indicators plot(ema9, title="EMA 9", color=color.green) plot(ema21, title="EMA 21", color=color.red) plot(vwap, title="VWAP", color=color.blue) plot(ema50HTF, title="HTF EMA 50", color=color.purple) hline(55, "RSI Long Threshold", color=color.green) hline(45, "RSI Short Threshold", color=color.red)