
এটি একটি পরিমাণগত ট্রেডিং কৌশল যা একাধিক গড় লাইন ক্রস-কনজুম্যাটিক ট্রাফিক ফিল্টার ভিত্তিক। এই কৌশলটি তিনটি ভিন্ন সময়ের চলমান গড় ব্যবহার করে (দ্রুত ইএমএ, ধীর ইএমএ এবং প্রবণতা এসএমএ) একটি কেন্দ্রীয় সূচক হিসাবে এবং ট্রেডিং সিগন্যালের কার্যকারিতা নিশ্চিত করার জন্য একটি ট্রাফিক ফিল্টার সংযুক্ত করে। কৌশলটি স্টপ লস এবং স্টপ ফাংশনও অন্তর্ভুক্ত করে যা ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করতে পারে।
কৌশলটি মূলত নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করে:
এই কৌশলটি একাধিক প্রযুক্তিগত সূচকের সমন্বয় দ্বারা একটি অপেক্ষাকৃত নিখুঁত ট্রেডিং সিস্টেম তৈরি করে। কৌশলটির মূল সুবিধা হল একাধিক নিশ্চিতকরণ ব্যবস্থা এবং নিখুঁত ঝুঁকি নিয়ন্ত্রণ, তবে প্রকৃত বাজারের অবস্থার উপর নির্ভর করে প্যারামিটার অপ্টিমাইজেশন এবং কৌশলগত উন্নতি করা প্রয়োজন। যুক্তিসঙ্গত অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণের মাধ্যমে, কৌশলটি ট্রেন্ডিং বাজারে স্থিতিশীল আয় পাওয়ার সম্ভাবনা রয়েছে।
/*backtest
start: 2024-02-22 00:00:00
end: 2024-12-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Optimized Moving Average Crossover Strategy with Volume Filter", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs for Moving Averages
fastLength = input.int(9, title="Fast MA Length")
slowLength = input.int(21, title="Slow MA Length")
trendFilterLength = input.int(50, title="Trend Filter Length")
// Risk Management Inputs
stopLossPercent = input.float(1, title="Stop Loss (%)", step=0.1)
takeProfitPercent = input.float(400, title="Take Profit (%)", step=0.1)
// Volume Filter Input
volumeMultiplier = input.float(1.5, title="Volume Multiplier", step=0.1) // Multiplier for average volume
// Moving Averages
fastMA = ta.ema(close, fastLength)
slowMA = ta.ema(close, slowLength)
trendMA = ta.sma(close, trendFilterLength) // Long-term trend filter
// Volume Calculation
avgVolume = ta.sma(volume, 20) // 20-period average volume
volumeCondition = volume > avgVolume * volumeMultiplier // Volume must exceed threshold
// Plotting Moving Averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
plot(trendMA, color=color.green, title="Trend Filter MA")
// Entry Conditions (Filtered by Trend and Volume)
longCondition = ta.crossover(fastMA, slowMA) and close > trendMA and volumeCondition
shortCondition = ta.crossunder(fastMA, slowMA) and close < trendMA and volumeCondition
// Execute Trades
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit Conditions: Stop Loss and Take Profit
if (strategy.position_size > 0)
strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price * (1 - stopLossPercent / 100), limit=strategy.position_avg_price * (1 + takeProfitPercent / 100))
if (strategy.position_size < 0)
strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price * (1 + stopLossPercent / 100), limit=strategy.position_avg_price * (1 - takeProfitPercent / 100))
// Additional Alerts
alertcondition(longCondition, title="Long Signal", message="Go Long!")
alertcondition(shortCondition, title="Short Signal", message="Go Short!")
// Debugging Labels
if (longCondition)
label.new(bar_index, close, "Long", style=label.style_label_up, color=color.green, textcolor=color.white)
if (shortCondition)
label.new(bar_index, close, "Short", style=label.style_label_down, color=color.red, textcolor=color.white)