
এই কৌশলটি একটি সহজ ব্রেকআউট কৌশল যা দুটি ভিন্ন শূন্য-সময়-বিলম্বিত EMA এর পার্থক্য ব্যবহার করে লক্ষ্যবস্তুর উত্থান বা পতনের গতিবেগ অনুসরণ করে। যখন পার্থক্যটি একটি নির্দিষ্ট সংখ্যক গুণিতক অতিক্রম করে, তখন বেস EMA এর দিকনির্দেশের উপর নির্ভর করে একটি ওভার বা ডাউন সিগন্যাল তৈরি করা হয়।
এই কৌশলটি দুটি বিশেষ ধরনের ইএমএ সূচক ব্যবহার করে উর্ধ্বমুখীতার পার্থক্য গণনা করে। এই দুটি ইএমএ সূচকের গণনা সূত্র হলঃ
hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))
dif = (hJumper / lJumper) - 1
এই সূচকটি দামের ব্যাপক ওঠানামার সাথে সাথে সাড়া দেয়, কোন বিলম্ব ছাড়াই।
যখন ডিএফ বুলিন ব্যান্ডের উপরে থাকে, তখন একটি প্রবেশের সংকেত উত্পন্ন হয়; যখন ডিএফ বুলিন ব্যান্ডের নীচে থাকে, তখন একটি প্রস্থান সংকেত উত্পন্ন হয়। বেসিক ইএমএ দিকটি অতিরিক্ত বা খালি করার সিদ্ধান্ত নেয়।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল যে এটি ব্রেকিং সিগন্যালকে দ্রুত এবং কোন বিলম্ব ছাড়াই ধরতে পারে। এটি দুটি বিশেষ শূন্য-সময় বিলম্বিত ইএমএ গণনা করে সম্পন্ন করা হয়। এটি কৌশলটিকে তাত্ক্ষণিকভাবে মূল্য ব্রেকিং ইভেন্টের প্রতিক্রিয়া জানাতে সক্ষম করে, যার ফলে প্রবণতা গঠনের প্রথম দিকে উচ্চতর দক্ষতা ধরা যায়।
আরেকটি সুবিধা হল যে এই কৌশলটি শুধুমাত্র একটি প্যারামিটার lx ব্যবহার করে। কম প্যারামিটারগুলি কৌশলটিকে সহজেই সামঞ্জস্য করে এবং অতিরিক্ত অপ্টিমাইজেশনের ঝুঁকি হ্রাস করে।
এই কৌশলটির প্রধান ঝুঁকি হল যে একটি ব্রেকিং সিগন্যালের ফলে ভুয়া ব্রেকিং হতে পারে। যখন দামের ঝড় হয়, তখন ক্রমাগত ভুয়া ব্রেকিং হতে পারে। এই ধরনের ঝুঁকি হ্রাস করার জন্য, ব্রিনের বেন্ডের গুণককে যথাযথভাবে বড় করা যেতে পারে, যাতে সংকেতটি আরও স্থিতিশীল হয়।
আরেকটি ঝুঁকি হল ঘন ঘন ক্ষুদ্র ক্ষয়ক্ষতি যা একটি অস্থিরতার সময় ঘটে। এটি একটি আউট-অফ-ইন প্রক্রিয়াকে সামঞ্জস্য করে প্রশমিত করা যেতে পারে। উদাহরণস্বরূপ, স্টপ-ড্রপ বা স্টপ-অফ মূল্য নির্ধারণ করা।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
অন্যান্য সূচকগুলির সাথে মিলিতভাবে, প্রবেশাধিকার সংকেতগুলি ফিল্টার করে, মিথ্যা ভাঙ্গার সম্ভাবনা হ্রাস করে
পজিশন হোল্ডিং ঝুঁকি পরিচালনার জন্য ক্ষতিপূরণ ব্যবস্থা বাড়ানো
ট্রেডিং ভলিউম নিশ্চিতকরণ প্রবর্তন করে, অসংখ্য ভুয়া সংকেত এড়াতে
বাজারের ওঠানামা অনুযায়ী প্যারামিটারগুলি সামঞ্জস্য করার জন্য স্বনির্ধারিত ব্রিন-ব্যান্ড প্যারামিটার ব্যবহার করে
মেশিন লার্নিং পদ্ধতির উপর ভিত্তি করে গতিশীল অপ্টিমাইজেশান কৌশল প্যারামিটার
এই তাত্ক্ষণিকভাবে অস্থিরতার ইএমএ কৌশলটি মূল্যের প্রবণতার গতিবেগকে শূন্য-ঘন্টা পিছিয়ে থাকা ইএমএ গণনা করে ক্যাপচার করে, দ্রুত প্রতিক্রিয়া এবং প্যারামিটারগুলির সহজতার সুবিধাগুলি রয়েছে। পরবর্তী পদক্ষেপটি ফিল্টারিং সিগন্যাল, স্টপ লস স্টপ এবং ট্রেডিং ভলিউম নিশ্চিতকরণ ইত্যাদির দিক থেকে অপ্টিমাইজ করা যেতে পারে, যাতে কৌশলটি বিভিন্ন বাজারের পরিবেশে স্থিতিশীলভাবে কাজ করতে পারে।
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin
//@version=5
strategy("Zero-lag Volatility-Breakout EMA Trend Strategy",overlay=false)
tt1 = "If selected, the strategy will not close long or short positions until the opposite signal is received. This"+
" exposes you to more risk but potentially could generate larger returns."
src = input.source(close,"Source")
lx = input.int(200,"EMA Difference Length")
bbmult = input.float(2.0,"Standard Deviation Multiple")
useBinaryStrategy = input.bool(true,"Use Binary Strategy",tooltip = tt1)
hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))
dif = (hJumper / lJumper) - 1
[bbm,bbu,bbl] = ta.bb(dif,lx,bbmult)
plot(dif,color=color.white,title="Zero lag EMA Difference")
plot(bbu,color=color.lime,title="Bollinger Top")
plot(bbl,color=color.red,title="Bollinger Bottom")
plot(bbm,color=color.yellow,title="Bollinger Middle")
sigEnter = ta.crossover(dif,bbu)
sigExit = ta.crossunder(dif,bbm)
emaBase = ta.ema(src,lx)
enterLong = sigEnter and emaBase > emaBase[1]
enterShort = sigEnter and emaBase < emaBase[1]
plotshape(enterLong,style=shape.labelup,location=location.bottom,color=color.green,size=size.tiny)
plotshape(enterShort,style=shape.labeldown,location=location.top,color=color.red,size=size.tiny)
if enterLong
strategy.entry("Long",strategy.long)
if enterShort
strategy.entry("Short",strategy.short)
if not useBinaryStrategy and sigExit
strategy.close("Long")
strategy.close("Short")