এই কৌশলটি দ্বৈত চলমান গড় ব্যবহার করে, বিশেষত 8-পরিয়ড এবং 21-পরিয়ডের। এটি দীর্ঘ সংকেত তৈরি করে যখন স্বল্পতম এমএ দীর্ঘতমের উপরে অতিক্রম করে এবং সংক্ষিপ্ত সংকেত তৈরি করে যখন স্বল্পতম এমএ দীর্ঘতমের নীচে অতিক্রম করে।
এই কৌশলটি চলমান গড় রেখার ঢালকেও অন্তর্ভুক্ত করে যা কিছু প্রবণতাহীন সময়কালকে ফিল্টার করে এবং যখন প্রবণতা আরও স্পষ্ট হয় তখনই সংকেত দেয়।
এই কৌশলটির মূলটি স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী চলমান গড়ের ক্রসওভারে রয়েছে। স্বল্পমেয়াদী এমএ দ্রুত প্রবণতা পরিবর্তনগুলি ক্যাপচার করতে পারে, যখন দীর্ঘতম এমএতে আরও ভাল গোলমাল ফিল্টারিং প্রভাব রয়েছে। যখন সংক্ষিপ্ত এমএ দীর্ঘতম এমএ অতিক্রম করে, দীর্ঘ সংকেতের দিকে পরিচালিত করে, তখন একটি আপট্রেন্ড প্রতিষ্ঠার পরামর্শ দেওয়া হয়; যখন সংক্ষিপ্ত এমএ দীর্ঘতম এমএ এর নীচে অতিক্রম করে, তখন একটি সংক্ষিপ্ত সংকেতের দিকে পরিচালিত করে, তখন একটি ডাউনট্রেন্ড প্রতিষ্ঠার পরামর্শ দেওয়া হয়।
কৌশলটি একটি ঢাল থ্রেশহোল্ডও সেট করে। শুধুমাত্র যখন ঢালটি ইতিবাচক থ্রেশহোল্ড মানের চেয়ে বড় হয় তখন একটি দীর্ঘ সংকেত তৈরি করা হবে। শুধুমাত্র যখন ঢালটি নেতিবাচক থ্রেশহোল্ড মানের চেয়ে কম হয় তখন একটি সংক্ষিপ্ত সংকেত তৈরি করা হবে। এটি এমন অঞ্চলগুলি ফিল্টার করতে সহায়তা করে যেখানে কোন স্পষ্ট প্রবণতা বিদ্যমান নেই, যার ফলে উচ্চ মানের ট্রেডিং সংকেত তৈরি হয়।
বিশেষ করে, ট্রেডিং সিগন্যাল তৈরির যুক্তি হলঃ
এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ
এই কৌশলের সাথে কিছু ঝুঁকিও রয়েছেঃ
এই ঝুঁকিগুলির উপর ভিত্তি করে অপ্টিমাইজ করার কিছু উপায়ঃ
কৌশলটি অপ্টিমাইজ করার জন্য কিছু দিকনির্দেশঃ
সংক্ষেপে, এই দ্বৈত এমএ কৌশলটি সহজ এবং ব্যবহারিক। দুটি সময়ের পরামিতিগুলির মাধ্যমে বিভিন্ন প্রবণতা বৈশিষ্ট্যগুলি ক্যাপচার করে এবং ট্রেডিং সংকেত তৈরি করতে তাদের একত্রিত করে। এদিকে, ঢালের প্রান্তিককরণ সংকেত মান উন্নত করে। এই কৌশলটি বিস্তারের জন্য একটি মৌলিক হিসাবে কাজ করতে পারে, প্রচুর অপ্টিমাইজেশান স্থান এবং সম্ভাবনার সাথে।
/*backtest start: 2024-01-09 00:00:00 end: 2024-01-16 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //written by sixpathssenin //@version=4 strategy(title="Dual Moving Average",initial_capital=10000,overlay=true) ma1= sma(close,8) ma2= sma(close,21) angleCriteria = input(title="Angle", type=input.integer, defval=7, minval=1, maxval=13) i_lookback = input(2, "Angle Period", input.integer, minval = 1) i_atrPeriod = input(10, "ATR Period", input.integer, minval = 1) i_angleLevel = input(6, "Angle Level", input.integer, minval = 1) i_maSource = input(close, "MA Source", input.source) f_angle(_src, _lookback, _atrPeriod) => rad2degree = 180 / 3.141592653589793238462643 //pi ang = rad2degree * atan((_src[0] - _src[_lookback]) / atr(_atrPeriod)/_lookback) ang _angle = f_angle(ma2, i_lookback, i_atrPeriod) plot(ma1,color=#FF0000) plot(ma2,color=#00FF00) crosso=crossover(ma1,ma2) crossu=crossunder(ma1,ma2) _lookback = 15 f_somethingHappened(_cond, _lookback) => bool _crossed = false for i = 1 to _lookback if _cond[i] _crossed := true _crossed longcrossed = f_somethingHappened(crosso,_lookback) shortcrossed = f_somethingHappened(crossu,_lookback) long = longcrossed and _angle > angleCriteria short= shortcrossed and _angle < -(angleCriteria) if(long) strategy.entry("Long",strategy.long) if(short) strategy.entry("short",strategy.short)