এটি একটি সহজ চলমান গড় ভিত্তিক কৌশল যা বিভিন্ন মুদ্রা জোড়ার সাথে ভালভাবে কাজ করে। এটি চলমান গড় উদ্বোধনী মূল্য এবং বন্ধের মূল্য প্লট করে এবং দুটি লাইন একে অপরকে অতিক্রম করেছে কিনা তার উপর ভিত্তি করে একটি দীর্ঘ অবস্থানে প্রবেশ বা প্রস্থান করার সিদ্ধান্ত নেয়। ধারণাটি হ'ল এটি যখন গড় বন্ধের দাম বাড়ছে তখন এটি একটি অবস্থানে প্রবেশ করে, যা দামের আপগ্রেডের গতি নির্দেশ করতে পারে। এটি তখন গড় বন্ধের দাম হ্রাস পায়, যা ডাউনগ্রেডের গতি নির্দেশ করতে পারে। এটি জল্পনাপ্রসূত, তবে কখনও কখনও এটি দামের ক্রিয়াকলাপটি খুব ভালভাবে পূর্বাভাস দিতে পারে।
এই কৌশলটি প্রথমে ইএমএ, এসএমএ, আরএমএ, ডাব্লুএমএ এবং ভিডাব্লুএমএ সহ চলমান গড়ের ধরণটি নির্বাচন করে। তারপরে এটি চলমান গড়ের জন্য লুকব্যাক সময়কাল নির্ধারণ করে, সাধারণত 10 থেকে 250 বারের মধ্যে। চলমান গড়ের ধরণ এবং লুকব্যাক সময়ের বিভিন্ন সংমিশ্রণ বিভিন্ন মুদ্রা জোড়ার জন্য খুব আলাদা ফলাফল তৈরি করতে পারে।
নির্দিষ্ট ট্রেডিং লজিক হলঃ
পজিশনে প্রবেশ করলে এটিকে মূল্যের ঊর্ধ্বমুখী গতির লক্ষণ বলে মনে করা হয়, যখন থেকে বেরিয়ে আসা মূল্যের ঊর্ধ্বমুখী গতির লক্ষণ বলে মনে করা হয়।
এই কৌশলটির প্রধান সুবিধাগুলো হল:
এই কৌশলটির সাথে কিছু ঝুঁকিও রয়েছেঃ
সমাধান এবং অপ্টিমাইজেশানঃ
সংক্ষেপে, এটি মূল্য প্রবণতা এবং inflection পয়েন্ট নির্ধারণের জন্য চলমান গড় সূচক ব্যবহার করে একটি সহজ কৌশল। এটি পরামিতিগুলি সামঞ্জস্য করে খুব ভাল ফলাফল অর্জন করতে পারে, এবং এটি আরও উন্নতি এবং প্রয়োগের মূল্যবান একটি কার্যকর প্রবণতা ট্র্যাকিং কৌশল। তবে ঝুঁকি ব্যবস্থাপনা লক্ষ্য করা উচিত, এর উপযোগিতা সর্বাধিক করার জন্য উপযুক্ত মুদ্রা জোড়া এবং পরামিতিগুলি চয়ন করুন।
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //Author @divonn1994 initial_balance = 100 strategy(title='Close v Open Moving Averages Strategy', shorttitle = 'Close v Open', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance) //Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading---------------------------------------------------------------- bars = input.int(66, "Moving average length (number of bars)", minval=1, group='Strategy') //66 bars and VWMA for BTCUSD on 12 Hours.. 35 bars and VWMA for BTCUSD on 1 Day strategy = input.string("VWMA", "Moving Average type", options = ["EMA", "SMA", "RMA", "WMA", "VWMA"], group='Strategy') redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display') greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display') maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display') startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy') startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy') startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy') endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy') endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy') endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy') //Strategy Calculations----------------------------------------------------------------------------------------------------------------------------------------------------------------------- inDateRange = true maMomentum = switch strategy "EMA" => (ta.ema(close, bars) > ta.ema(open, bars)) ? 1 : -1 "SMA" => (ta.sma(close, bars) > ta.sma(open, bars)) ? 1 : -1 "RMA" => (ta.rma(close, bars) > ta.rma(open, bars)) ? 1 : -1 "WMA" => (ta.wma(close, bars) > ta.wma(open, bars)) ? 1 : -1 "VWMA" => (ta.vwma(close, bars) > ta.vwma(open, bars)) ? 1 : -1 => runtime.error("No matching MA type found.") float(na) openMA = switch strategy "EMA" => ta.ema(open, bars) "SMA" => ta.sma(open, bars) "RMA" => ta.rma(open, bars) "WMA" => ta.wma(open, bars) "VWMA" => ta.vwma(open, bars) => runtime.error("No matching MA type found.") float(na) closeMA = switch strategy "EMA" => ta.ema(close, bars) "SMA" => ta.sma(close, bars) "RMA" => ta.rma(close, bars) "WMA" => ta.wma(close, bars) "VWMA" => ta.vwma(close, bars) => runtime.error("No matching MA type found.") float(na) //Enter or Exit Positions-------------------------------------------------------------------------------------------------------------------------------------------------------------------- if ta.crossover(maMomentum, 0) if inDateRange strategy.entry('long', strategy.long, comment='long') if ta.crossunder(maMomentum, 0) if inDateRange strategy.close('long') //Plot Strategy Behavior--------------------------------------------------------------------------------------------------------------------------------------------------------------------- plot(series = maOn == "On" ? openMA : na, title = "Open moving Average", color = color.new(color.purple,0), linewidth=3, offset=1) plot(series = maOn == "On" ? closeMA : na, title = "Close Moving Average", color = color.new(color.white,0), linewidth=2, offset=1) bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)