
এই কৌশলটি উইলিয়াম সূচক ((%R), চলমান গড় প্রবণতা সূচক ((MACD) এবং সূচকীয় চলমান গড় ((EMA) এর উপর ভিত্তি করে একটি একাধিক সূচক সংমিশ্রণ কৌশল। বাজারের ওভারব্লুড ওভারসোল্ড অবস্থা বিচার করে, গতিশীলতার সূচকের পরিবর্তিত প্রবণতা এবং গড়রেখার সমর্থনকে একত্রিত করে, একটি সম্পূর্ণ প্রবণতা ট্র্যাকিং ট্রেডিং সিস্টেম তৈরি করে। এই কৌশলটি কেবলমাত্র প্রবেশের সংকেত তৈরি করে না, তবে একটি নিখুঁত ঝুঁকি ব্যবস্থাপনা ব্যবস্থাও ডিজাইন করেছে।
এই কৌশলটি মূলত নিম্নলিখিত তিনটি মূল সূচকের উপর ভিত্তি করে তৈরি করা হয়েছেঃ
কৌশলটি কেবল তখনই পজিশন খুলতে পারে যখন উপরের তিনটি শর্ত একই সাথে পূরণ করা হয়। তদতিরিক্ত, কৌশলটি ঝুঁকি-লাভের অনুপাতের উপর ভিত্তি করে স্টপ-স্টপ-লস প্রক্রিয়াটি অন্তর্ভুক্ত করে, নির্দিষ্ট স্টপ-লস শতাংশ এবং ঝুঁকি-লাভের অনুপাত সেট করে প্রতিটি লেনদেনের ঝুঁকি নিয়ন্ত্রণ করে।
এই কৌশলটি একাধিক প্রযুক্তিগত সূচকগুলির সমন্বয়মূলক সহযোগিতার মাধ্যমে একটি পরিপূর্ণ প্রবণতা ট্র্যাকিং ট্রেডিং সিস্টেম তৈরি করে। কৌশলটির প্রধান বৈশিষ্ট্য হ’ল সিগন্যাল নির্ভরযোগ্যতা, ঝুঁকি নিয়ন্ত্রণের স্পষ্টতা, তবে কিছু পিছিয়ে পড়া এবং প্যারামিটার সংবেদনশীলতার সমস্যা রয়েছে। সুপারিশকৃত অপ্টিমাইজেশনের দিকনির্দেশের মাধ্যমে কৌশলটি আরও বাড়ানোর জায়গা রয়েছে। রিয়েল-স্টোর প্রয়োগের ক্ষেত্রে, প্রথমে প্যারামিটার প্যারেঞ্জার পুরোপুরি যাচাইয়ের মাধ্যমে এবং বাজারের বৈশিষ্ট্যগুলির সাথে মিলিত লক্ষ্যযুক্ত অপ্টিমাইজেশনের পরামর্শ দেওয়া হয়।
/*backtest
start: 2025-02-19 00:00:00
end: 2025-02-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Williams %R & MACD Swing Strategy", overlay=true)
// INPUTS
length_wpr = input(14, title="Williams %R Length")
overbought = input(-20, title="Overbought Level")
oversold = input(-80, title="Oversold Level")
// MACD Inputs
fastLength = input(12, title="MACD Fast Length")
slowLength = input(26, title="MACD Slow Length")
signalSmoothing = input(9, title="MACD Signal Smoothing")
// EMA for Trend Confirmation
ema_length = input(55, title="EMA Length")
ema55 = ta.ema(close, ema_length)
// INDICATORS
wpr = ta.wpr(length_wpr)
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
// LONG ENTRY CONDITIONS
longCondition = ta.crossover(wpr, oversold) and ta.crossover(macdLine, signalLine) and close > ema55
if longCondition
strategy.entry("Long", strategy.long)
// SHORT ENTRY CONDITIONS
shortCondition = ta.crossunder(wpr, overbought) and ta.crossunder(macdLine, signalLine) and close < ema55
if shortCondition
strategy.entry("Short", strategy.short)
// RISK MANAGEMENT
riskRewardRatio = input(1.5, title="Risk-Reward Ratio")
stopLossPerc = input(2, title="Stop Loss %") / 100
takeProfitPerc = stopLossPerc * riskRewardRatio
longSL = strategy.position_avg_price * (1 - stopLossPerc)
longTP = strategy.position_avg_price * (1 + takeProfitPerc)
shortSL = strategy.position_avg_price * (1 + stopLossPerc)
shortTP = strategy.position_avg_price * (1 - takeProfitPerc)
strategy.exit("Take Profit / Stop Loss", from_entry="Long", loss=longSL, profit=longTP)
strategy.exit("Take Profit / Stop Loss", from_entry="Short", loss=shortSL, profit=shortTP)