এই কৌশলটি দামের ভোল্টেবিলিটির উপর ভিত্তি করে দামের ব্যাণ্ড তৈরি করে এবং যখন দাম ব্যান্ডগুলি ভেঙে যায় তখন ট্রেডিং সংকেত তৈরি করে।
কৌশলটি প্রথমে একটি নির্দিষ্ট সময়ের মধ্যে দামের গড় অস্থিরতা পরিসীমা গণনা করে, তারপরে একটি এক্সপোনেনশিয়াল চলমান গড় ব্যবহার করে একটি মসৃণ অস্থিরতা তৈরি করতে অস্থিরতা পরিসীমা মসৃণ করে। একটি সহগ দ্বারা গুণিত মসৃণ অস্থিরতা ব্যান্ডগুলির পরিসীমা দেয়। যখন দাম উপরের ব্যান্ডের উপরে ভঙ্গ করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন দাম নীচের ব্যান্ডের নীচে ভঙ্গ করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
বিশেষত, মসৃণতাযুক্ত অস্থিরতা স্ম্রং ফাংশন দ্বারা গণনা করা হয়। দামের ব্যান্ডগুলির উপরের ব্যান্ড hband এবং নিম্ন ব্যান্ড lband তারপর স্ম্রং এর উপর ভিত্তি করে গণনা করা হয়। দীর্ঘ শর্ত longCondition এবং সংক্ষিপ্ত শর্ত shortCondition এর উপর ভিত্তি করে সেট আপ করা হয়। যখন longCondition পূরণ করা হয়, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন শর্টCondition পূরণ করা হয়, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
এই কৌশলটির সুবিধাগুলো হল:
ট্রেডিং সিগন্যাল তৈরির জন্য দামের অস্থিরতা ব্যবহার করে বাজারের পরিবর্তনগুলি কার্যকরভাবে ট্র্যাক করা যায়।
এক্সপোনেনশিয়াল মুভিং মিডিয়ার সাথে অস্থিরতা মসৃণ করা গোলমাল ফিল্টার করতে পারে এবং আরও নির্ভরযোগ্য ট্রেডিং সংকেত তৈরি করতে পারে।
ভোল্টেবিলিটি কোয়ালিটির মাধ্যমে ব্যাংকের পরিসীমা সামঞ্জস্য করা যেতে পারে, যা কৌশলটিকে আরও নমনীয় করে তোলে।
এটি ব্রেকআউট বিচারের সাথে মিলিয়ে ট্রেডিংয়ের সুযোগগুলি সময়মতো ধরতে পারে যখন প্রবণতা বিপরীত হয়।
এই কৌশলের কিছু ঝুঁকিও রয়েছেঃ
অস্বাভাবিক বাজারের অস্থিরতার ক্ষেত্রে, মসৃণ অস্থিরতা প্রকৃত অস্থিরতা সঠিকভাবে প্রতিফলিত করতে ব্যর্থ হতে পারে, যা ভুল সংকেতগুলির দিকে পরিচালিত করে। মডেলটি উন্নত করতে পরামিতিগুলি অনুকূলিত করা যেতে পারে।
ভুল ব্যান্ড ব্যাপ্তি সেটিং ওভারট্রেডিং বা অপর্যাপ্ত সংকেত হতে পারে। সর্বোত্তম ব্যাপ্তি খুঁজে পেতে বিভিন্ন পরামিতি পরীক্ষা করা যেতে পারে।
ব্রেকআউট সিগন্যালগুলিতে সময় বিলম্ব রয়েছে, যা অকাল প্রবেশ বা বিলম্বিত প্রবেশের কারণ হতে পারে। নিশ্চিতকরণের জন্য অন্যান্য সূচকগুলি চালু করা যেতে পারে।
কৌশলটি নিম্নলিখিতগুলির মাধ্যমে অপ্টিমাইজ করা যেতে পারেঃ
ভোল্টেবিলিটি গণনা করার জন্য সবচেয়ে উপযুক্ত সময়সীমা খুঁজে পেতে বিভিন্ন মূল্য তথ্য চক্র পরীক্ষা করা।
বিভিন্ন চলমান গড় অ্যালগরিদম চেষ্টা করা যেমন ওজনযুক্ত চলমান গড়.
ব্রেকআউট সংকেত নিশ্চিত করার জন্য ট্রেডিং ভলিউম বা অন্যান্য সূচক প্রবর্তন করা।
ট্রেড প্রতি ক্ষতি নিয়ন্ত্রণ করতে স্টপ লস বা ট্রেলিং স্টপ সেট করা।
সর্বোত্তম ব্যান্ড পরিসীমা নির্ধারণের জন্য অস্থিরতা সহগ মাল্টকে অপ্টিমাইজ করা।
এই কৌশলটির সামগ্রিক যুক্তি স্পষ্ট, দামের অস্থিরতা ব্যবহার করে ব্যান্ড তৈরি করা এবং ট্রেডিং সংকেত তৈরি করার জন্য মূল্যের ব্রেকআউট, যা কার্যকরভাবে বাজারের প্রবণতা পরিবর্তনগুলি ট্র্যাক করতে পারে। তবে কৌশলটিকে আরও শক্তিশালী করার জন্য প্যারামিটার অপ্টিমাইজেশন, সংকেত নিশ্চিতকরণ ইত্যাদির মাধ্যমে উন্নতির সুযোগ রয়েছে।
/*backtest start: 2023-01-22 00:00:00 end: 2024-01-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("1SmSm1 Strategy", shorttitle="1SmSm1", overlay=true) // Source src = input(defval=close, title="Source") // Sampling Period per = input(defval=100, minval=1, title="Sampling Period") // Range Multiplier mult = input(defval=3.0, minval=0.1, title="Range Multiplier") // Smooth Average Range smoothrng(x, t, m) => wper = (t * 2) - 1 avrng = ema(abs(x - x[1]), t) smoothrng = ema(avrng, wper) * m smoothrng smrng = smoothrng(src, per, mult) // Range Filter rngfilt(x, r) => rngfilt = x rngfilt := x > nz(rngfilt[1]) ? ((x - r) < nz(rngfilt[1]) ? nz(rngfilt[1]) : (x - r)) : ((x + r) > nz(rngfilt[1]) ? nz(rngfilt[1]) : (x + r)) rngfilt filt = rngfilt(src, smrng) // Filter Direction upward = 0.0 upward := filt > filt[1] ? nz(upward[1]) + 1 : filt < filt[1] ? 0 : nz(upward[1]) downward = 0.0 downward := filt < filt[1] ? nz(downward[1]) + 1 : filt > filt[1] ? 0 : nz(downward[1]) // Target Bands hband = filt + smrng lband = filt - smrng // Breakouts longCondition = (src > filt) and (src > src[1]) and (upward > 0) shortCondition = (src < filt) and (src < src[1]) and (downward > 0) strategy.entry("Buy", strategy.long, when = longCondition) strategy.entry("Sell", strategy.short, when = shortCondition) // Plotting plot(filt, color=upward > 0 ? color.lime : downward > 0 ? color.red : color.orange, linewidth=3, title="Range Filter") hbandplot = plot(hband, color=color.aqua, transp=100, title="High Target") lbandplot = plot(lband, color=color.fuchsia, transp=100, title="Low Target") // Fills fill(hbandplot, lbandplot, color=color.aqua, title="Target Range") // Bar Color barcolor(longCondition ? color.green : shortCondition ? color.red : na) // Alerts alertcondition(longCondition, title="Buy Alert", message="BUY") alertcondition(shortCondition, title="Sell Alert", message="SELL")