এই কৌশলটি ম্যাকডি প্রযুক্তিগত সূচকের দ্বৈত চলমান গড় ক্রসওভারের উপর ভিত্তি করে একটি স্বয়ংক্রিয় ট্রেডিং কৌশল। এটি প্রবণতা অনুসরণের প্রবণতা দিক নির্ধারণের জন্য ম্যাকডি এর সংকেত লাইন ক্রসওভার ব্যবহার করে।
কৌশলটি প্রথমে এমএসিডি সূচকের তিনটি লাইন গণনা করেঃ দ্রুত লাইন, ধীর লাইন এবং হিস্টোগ্রাম। দ্রুত লাইনটি স্বল্প সময়ের মধ্যে দ্রুততর চলমান গড় যখন ধীর লাইনটি দীর্ঘ সময়ের মধ্যে ধীরতর চলমান গড়। হিস্টোগ্রামটি দ্রুত এবং ধীর লাইনের মধ্যে পার্থক্য। যখন দ্রুত লাইনটি ধীর লাইনের উপরে অতিক্রম করে, এটি একটি সোনার ক্রস সংকেত যা একটি ক্রয় সংকেত নির্দেশ করে। যখন দ্রুত লাইনটি ধীর লাইনের নীচে অতিক্রম করে, এটি একটি মৃত্যু ক্রস সংকেত যা বিক্রয় সংকেত নির্দেশ করে।
এই কৌশলটি স্বর্ণের ক্রসগুলিতে দীর্ঘ এবং মৃত্যুর ক্রসগুলিতে কাছাকাছি অবস্থানের জন্য এই যুক্তিটি ব্যবহার করে; অথবা স্বয়ংক্রিয়ভাবে প্রবণতা অনুসরণ করতে মৃত্যুর ক্রস এবং স্বর্ণের ক্রসগুলিতে কাছাকাছি অবস্থানের জন্য স্বল্প যান। এদিকে, কৌশলটি মিথ্যা সংকেত এড়াতে এবং সত্যিকারের ট্রেন্ড বিপরীত পয়েন্টগুলি ক্যাপচার করার জন্য নিখুঁত এমএসিডি লাইনটি ইতিবাচক বা নেতিবাচক কিনা তাও বিচার করে।
ঝুঁকি হ্রাসঃ
কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
সিগন্যাল নিশ্চিত করতে এবং মিথ্যা সিগন্যাল ফিল্টার করতে KDJ, Bollinger Bands ইত্যাদি অন্যান্য সূচক অন্তর্ভুক্ত করুন
প্রবেশাধিকার প্রক্রিয়া উন্নত করুন, উদাহরণস্বরূপ অকাল বা দেরী প্রবেশ এড়ানোর জন্য ব্রেকআউট ফিল্টার যুক্ত করুন
প্যারামিটার সেটিংস অপ্টিমাইজ করুন, বিভিন্ন সময়সীমা এবং বাজার ব্যবস্থার উপর ভিত্তি করে দ্রুত এবং ধীর লাইন সময়কাল সামঞ্জস্য করুন
একক ট্রেড লস নিয়ন্ত্রণে স্টপ লস যোগ করুন
ফরেক্স, ক্রিপ্টোকারেন্সি ইত্যাদির মতো অন্যান্য পণ্যগুলিতে প্রসারিত করুন
ডুয়াল মুভিং এভারেজ ক্রসওভার এমএসিডি ট্রেন্ড অনুসরণকারী কৌশলটি সিগন্যাল লাইন ক্রসওভারের সাথে একত্রিত হয়ে ট্রেন্ডের দিক নির্ধারণের জন্য এমএসিডি সূচক ব্যবহার করে কার্যকরভাবে সংকেতগুলি ফিল্টার করতে এবং স্বয়ংক্রিয় ট্রেন্ড অনুসরণের জন্য প্রবণতা বিপরীতগুলি ক্যাপচার করতে। সুবিধাগুলি সঠিক প্রবণতা বিচার, বাজারের পরিবেশের জন্য নমনীয় পরামিতি টিউনিংয়ের মধ্যে রয়েছে। মিথ্যা সংকেত এড়াতে ঝুঁকি ব্যবস্থাপনা গুরুত্বপূর্ণ। অতিরিক্ত প্রযুক্তিগত সূচক এবং পরামিতি টিউনিংয়ের সাথে আরও অপ্টিমাইজেশন কৌশল কর্মক্ষমতা উন্নত করতে পারে।
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © DeMindSET //@version=4 strategy("MACD Trend Follow Strategy", overlay=false) // Getting inputs LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"]) fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) plot(macd, title="MACD", color=col_macd, transp=0) plot(signal, title="Signal", color=col_signal, transp=0) // Bull= macd > signal Bear= macd < signal ConBull=macd>0 ConBear=macd<0 // Green= Bull and ConBull Red= Bear and ConBear Yellow= Bull and ConBear Blue= Bear and ConBull // bcolor = Green ? color.green : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na barcolor(color=bcolor) // === INPUT BACKTEST RANGE === FromYear = input(defval = 2019, title = "From Year", minval = 1920) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2009) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" if LSB == "Long only" and Green strategy.entry("L",true) if LSB == "Long only" and Red strategy.close("L",qty_percent=100,comment="TP Long") if LSB == "Both" and Green strategy.entry("L",true) if LSB == "Both" and Red strategy.entry("S",false) if LSB == "Short only" and Red strategy.entry("S",false) if LSB == "Short only" and Green strategy.close("S",qty_percent=100,comment="TP Short")