এই কৌশলটি বাজারের প্রবণতার পরিবর্তনগুলি নির্ধারণের জন্য দুটি চলমান গড়ের ক্রসওভার ব্যবহার করে এবং প্রবণতার দিকের উপর ভিত্তি করে কেনা / বিক্রয় সিদ্ধান্ত নেয়। যখন স্বল্পমেয়াদী এমএ দীর্ঘমেয়াদী এমএ অতিক্রম করে তখন দীর্ঘমেয়াদী এমএ অতিক্রম করে এবং যখন স্বল্পমেয়াদী এমএ দীর্ঘমেয়াদী এমএ অতিক্রম করে তখন সংক্ষিপ্ত হয়, প্রবণতা অনুসরণ করার লক্ষ্যে।
এই কৌশলটির মূলত দুটি চলমান গড়ঃ একটি দ্রুত এমএ (ডিফল্ট সময়কাল 32) এবং একটি ধীর এমএ (এছাড়াও ডিফল্ট সময়কাল 32, পরামিতিগুলির মাধ্যমে সামঞ্জস্যযোগ্য) । যখন বন্ধের মূল্য এই দুটি এমএ দ্বারা গঠিত চ্যানেলের উপরে / নীচে অতিক্রম করে, এটি একটি প্রবণতা বিপরীত নির্দেশ করে এবং কৌশলটি ক্রয় / বিক্রয় সংকেত প্রেরণ করেঃ
এই এমএ ক্রসওভার পদ্ধতির মাধ্যমে, কৌশলটি ট্রেন্ড অনুসরণ করতে পারে, আপট্রেন্ডে দীর্ঘ পজিশন এবং ডাউনট্রেন্ডে সংক্ষিপ্ত পজিশন ধরে রাখতে পারে, যতক্ষণ না বিপরীত সংকেত উপস্থিত হয়।
এই ঝুঁকিগুলি মোকাবেলা করার জন্য, ব্যাপ্তি বাজারে ওভারট্রেডিং হ্রাস করার জন্য উপযুক্ত ফিল্টারগুলি যেমন এটিআর বা গড় সত্য পরিসীমা ফিল্টারগুলি যুক্ত করার বিষয়টি বিবেচনা করা যেতে পারে; একক ব্যবসায়ের ক্ষতি নিয়ন্ত্রণের জন্য যুক্তিসঙ্গত স্টপ-লস সেট করা; এবং বাজারে অভিযোজিত হওয়ার জন্য পরামিতিগুলিকে ক্রমাগত অনুকূল করা। তবে কৌশলটির অন্তর্নিহিত সীমাবদ্ধতাগুলি সম্পূর্ণরূপে এড়ানো কঠিন।
উপরের অপ্টিমাইজেশানগুলি জটিল বাজারগুলি পরিচালনা করার কৌশলটির ক্ষমতা বাড়িয়ে তুলতে পারে, তবে অত্যধিক অপ্টিমাইজেশান এড়াতে যত্নবান হওয়া উচিত যা বাঁক ফিটিং এবং ভবিষ্যতের দুর্বল পারফরম্যান্সের দিকে পরিচালিত করতে পারে।
ডাবল এমএ ট্রেন্ড অনুসরণকারী কৌশলটি এমএ ক্রসওভারের মাধ্যমে প্রবণতা ক্যাপচার করে। এটি সহজ, ব্যবহার করা সহজ এবং ব্যাপকভাবে প্রয়োগযোগ্য। তবে, এটি ব্যাপ্তি বাজারে দুর্বল পারফর্ম করে, চরম আন্দোলনের প্রতি অপর্যাপ্ত প্রতিক্রিয়া জানায় এবং প্যারামিটার অপ্টিমাইজেশনে অসুবিধার মুখোমুখি হয়।
কৌশলটি আরও ফিল্টারিং সূচক, গতিশীল স্টপ-লস, পজিশন সাইজিং, মাল্টি-টাইমফ্রেম বিশ্লেষণ এবং অভিযোজিত পরামিতিগুলি প্রবর্তন করে অনুকূলিত করা যেতে পারে। তবে এমএ কৌশলগুলির অন্তর্নিহিত সীমাবদ্ধতাগুলি সম্পূর্ণরূপে এড়ানো কঠিন এবং বাজারের বৈশিষ্ট্যগুলির উপর ভিত্তি করে নমনীয় সমন্বয় সহ লাইভ ট্রেডিংয়ে এখনও সতর্কতার প্রয়োজন।
সামগ্রিকভাবে, এই কৌশলটি একটি মৌলিক প্রবণতা অনুসরণকারী কৌশল হিসাবে কাজ করতে পারে, তবে এটি একা দাঁড়িয়ে থাকা কঠিন এবং কৌশলগুলির একটি পোর্টফোলিওর অংশ হিসাবে আরও উপযুক্ত।
/*backtest start: 2023-03-16 00:00:00 end: 2024-03-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //study(title="Demo - SSL Basic", shorttitle="Demo - SSL Basic", overlay=true) strategy(title='Demo - SSL Basic', shorttitle='Demo - SSL Basic', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, commission_value=0.15) // Backtest Date Range start_date_long = input(title='Backtest Long Start Date', defval=timestamp('01 Jan 2018 00:00 +0530')) end_date_long = input(title='Backtest Long End Date', defval=timestamp('25 Jan 2030 00:00 +0530')) backtest_range = true // Inputs maType = input.string(title='SSL MA Type', options=['SMA', 'EMA', 'WMA'], defval='SMA') sslLen = input(title='SSL Length', defval=32) showCross = input(title='Show Crossover?', defval=true) showEntry = input(title='Show Entry?', defval=true) showTrend = input(title='Show Trend Colors?', defval=true) // Calc MA for SSL Channel calc_ma(close, len, type) => float result = 0 if type == 'SMA' // Simple result := ta.sma(close, len) result if type == 'EMA' // Exponential result := ta.ema(close, len) result if type == 'WMA' // Weighted result := ta.wma(close, len) result result // Add SSL Channel maHigh = calc_ma(high, sslLen, maType) maLow = calc_ma(low, sslLen, maType) Hlv = int(na) Hlv := close > maHigh ? 1 : close < maLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? maHigh : maLow sslUp = Hlv < 0 ? maLow : maHigh ss1 = plot(sslDown, title='Down SSL', linewidth=2, color=showTrend ? na : color.red) ss2 = plot(sslUp, title='Up SSL', linewidth=2, color=showTrend ? na : color.lime) // Conditions longCondition = ta.crossover(sslUp, sslDown) shortCondition = ta.crossover(sslDown, sslUp) // Strategy if shortCondition strategy.close('Long', comment='Long Exit', alert_message='JSON') if longCondition strategy.close('Short', comment='Short Exit', alert_message='JSON') if backtest_range and longCondition strategy.entry('Long', strategy.long, comment='Long Entry', alert_message='JSON') if backtest_range and shortCondition strategy.entry('Short', strategy.short, comment= 'Short Entry', alert_message='JSON') // Plots fill(ss1, ss2, color=showTrend ? sslDown < sslUp ? color.new(color.lime, transp=75) : color.new(color.red, transp=75) : na, title='Trend Colors')