
এই কৌশলটি দুটি ভিন্ন প্যারামিটারের চলমান গড় গণনা করে, যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে তখন একটি কেনার সংকেত উত্পন্ন করে। একই সাথে গড় সত্যিকারের ওঠানামা পরিসীমা ব্যবহার করে স্টপ মূল্যের ট্র্যাকিং করা হয়, যখন দামটি এই স্টপ মূল্যের নীচে পড়ে যায় তখন একটি বিক্রয় সংকেত উত্পন্ন করা হয়। এই কৌশলটি কার্যকরভাবে বাজারের প্রবণতা অনুসরণ করতে পারে, লাভের পরে সময়মতো স্টপ করে।
এই কৌশলটি ট্রেন্ড ট্র্যাকিং এবং স্টপ ম্যানেজমেন্টের সমন্বয় করে, যা মাঝারি-দীর্ঘ লাইন দিকনির্দেশ অনুসরণ করতে পারে এবং স্টপ লস দ্বারা একক ক্ষতি নিয়ন্ত্রণ করতে পারে।
চলমান গড়ের প্যারামিটারগুলি যথাযথভাবে অনুকূলিত করা যেতে পারে, বা স্টপ লস ব্যালেন্সের জন্য এটিআর গুণকগুলিকে সামঞ্জস্য করা যেতে পারে। প্রবেশের সময়কে উন্নত করার জন্য ফিল্টার শর্ত হিসাবে অন্যান্য সূচকগুলির সাথেও মিলিত হতে পারে।
এই কৌশলটি মুভিং এভারেজের ট্রেন্ড ট্র্যাকিং এবং এটিআর ডায়নামিক স্টপ লসকে সফলভাবে একত্রিত করে। প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে বিভিন্ন স্টক বৈশিষ্ট্যের সাথে খাপ খাইয়ে নেওয়া যায়। এই কৌশলটি পরিষ্কার ক্রয় সীমানা এবং স্টপ লস সীমানা তৈরি করে, যা ট্রেডিং লজিককে সহজ করে তোলে। সামগ্রিকভাবে, এই ডাবল মুভিং এভারেজ ট্র্যাকিং স্টপ লস কৌশলটি স্থিতিশীল, সহজ, অপ্টিমাইজ করা সহজ এবং স্টক ট্রেডিংয়ের জন্য উপযুক্ত।
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//created by XPloRR 24-02-2018
strategy("XPloRR MA-Buy ATR-MA-Trailing-Stop Strategy",overlay=true, initial_capital=1000,default_qty_type=strategy.percent_of_equity,default_qty_value=100)
testStartYear = input(2005, "Start Year")
testStartMonth = input(1, "Start Month")
testStartDay = input(1, "Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2050, "Stop Year")
testStopMonth = input(12, "Stop Month")
testStopDay = input(31, "Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriodBackground = input(title="Background", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
emaPeriod = input(12, "Exponential MA")
smaPeriod = input(45, "Simple MA")
stopPeriod = input(12, "Stop EMA")
delta = input(6, "Trailing Stop #ATR")
testPeriod() => true
emaval=ema(close,emaPeriod)
smaval=sma(close,smaPeriod)
stopval=ema(close,stopPeriod)
atr=sma((high-low),15)
plot(emaval, color=blue,linewidth=1)
plot(smaval, color=orange,linewidth=1)
plot(stopval, color=lime,linewidth=1)
long=crossover(emaval,smaval)
short=crossunder(emaval,smaval)
//buy-sell signal
stop=0
inlong=0
if testPeriod()
if (long and (not inlong[1]))
strategy.entry("buy",strategy.long)
inlong:=1
stop:=emaval-delta*atr
else
stop:=iff((nz(emaval)>(nz(stop[1])+delta*atr))and(inlong[1]),emaval-delta*atr,nz(stop[1]))
inlong:=nz(inlong[1])
if ((stopval<stop) and (inlong[1]))
strategy.close("buy")
inlong:=0
stop:=0
else
inlong:=0
stop:=0
plot(stop,color=green,linewidth=1)