এই কৌশলটির মূলটি অ্যান্ড্রু আব্রাহামের দ্বারা TASC ম্যাগাজিনের সেপ্টেম্বর ১৯৯৮ সংখ্যায় প্রকাশিত
কৌশলটি প্রথমে বেসলাইন ভোল্টেবিলিটি রেঞ্জ হিসাবে গড় সত্য পরিসীমা (এটিআর) এর 21-দিনের ওজনযুক্ত চলমান গড় গণনা করে। তারপরে এটি গত 21 দিনের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন মূল্য গণনা করে। বর্তমান বন্ধের মূল্যকে বেসলাইন পরিসরের উপরের এবং নীচের সীমাগুলির সাথে তুলনা করে, এটি প্রবণতার দিক নির্ধারণের জন্য চ্যানেল থেকে দামটি ভেঙে যায় কিনা তা বিচার করে।
বিশেষত, উপরের চ্যানেলের সীমাটি গত 21 দিনের সর্বনিম্ন মূল্য বিয়োগ 3 বার বেসলাইন ATR হিসাবে সংজ্ঞায়িত করা হয় এবং নিম্ন চ্যানেলের সীমাটি গত 21 দিনের সর্বনিম্ন মূল্য প্লাস 3 বার বেসলাইন ATR। যখন বন্ধের দাম উপরের সীমা থেকে বেশি হয়, তখন এটি একটি উত্থান প্রবণতা নির্দেশ করে। যখন বন্ধের দাম নিম্ন সীমা থেকে কম হয়, তখন এটি একটি bearish প্রবণতা নির্দেশ করে।
ট্রেন্ডের দিকনির্দেশনা নির্ধারণ করার সময়, এই কৌশলটি ফিল্টারিংয়ের জন্য MACD সূচকও প্রবর্তন করে। এটি কেবলমাত্র যখন MACD হিস্টোগ্রামটি ইতিবাচক হয় তখনই কেনার সুযোগগুলি মিস করা এড়াতে এটি ক্রয় সংকেত উত্পন্ন করে।
এই কৌশলটি প্রবণতা নির্ধারণ এবং সূচক ফিল্টারিংকে একত্রিত করে, যা স্বল্পমেয়াদী ওঠানামা দ্বারা বিভ্রান্ত না হয়ে মধ্যমেয়াদী বাজার প্রবণতা দিকটি কার্যকরভাবে সনাক্ত করতে পারে। প্রধান সুবিধা হলঃ
এই কৌশলটির কিছু ঝুঁকিও রয়েছে, প্রধানত নিম্নলিখিত দিকগুলিতেঃ
এই ঝুঁকিগুলি প্যারামিটারগুলি অনুকূল করে, কঠোর অবস্থান আকার এবং সময়মত স্টপ লস দ্বারা হ্রাস করা যেতে পারে।
কৌশলটি নিম্নলিখিত প্রধান দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ
ব্যাকটেস্টের উপর ভিত্তি করে সর্বোচ্চ রিটার্ন প্রদানকারী প্যারামিটার সংমিশ্রণটি খুঁজে পেতে দৈর্ঘ্য বা মাল্টিপ্লিফায়ারের বিভিন্ন সংমিশ্রণ পরীক্ষা করুন।
সিগন্যালগুলি ফিল্টার করতে এবং লাভজনকতা উন্নত করতে RSI, KDJ এবং অন্যান্য সূচক অন্তর্ভুক্ত করে পরীক্ষা।
বাজারের অবস্থার উপর ভিত্তি করে প্যারামিটারগুলিকে গতিশীলভাবে সামঞ্জস্য করুন, যেমন প্রবণতা শক্তিশালী হলে চ্যানেলের পরিসীমা যথাযথভাবে প্রসারিত করা বা বাজারটি আরও পরিসীমাযুক্ত হলে পরিসীমা সংকীর্ণ করা।
সংক্ষেপে, এটি একটি সামগ্রিকভাবে শক্তিশালী প্রবণতা অনুসরণকারী কৌশল। মূল্য চ্যানেল প্রবণতা নির্ধারণ এবং এমএসিডি ফিল্টারিংকে একত্রিত করে এটি কার্যকরভাবে মাঝারি-দীর্ঘমেয়াদী প্রবণতা সনাক্ত করতে এবং স্থিতিশীল রিটার্ন তৈরি করতে পারে। প্যারামিটার অপ্টিমাইজেশন, ঝুঁকি ব্যবস্থাপনা এবং উপযুক্ত সমন্বয়গুলির সাথে, এই কৌশলটি একটি ট্রেডিং সিস্টেমের অবিচ্ছেদ্য অংশ হয়ে উঠতে পারে।
/*backtest start: 2023-01-26 00:00:00 end: 2024-02-01 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/ // © melihtuna //@version=1 strategy("Trend Trader Strategy with MACD", overlay=true) // === Trend Trader Strategy === Length = input(21), Multiplier = input(3, minval=1) MacdControl = input(true, title="Control 'MACD Histogram is positive?' when Buy condition") avgTR = wma(atr(1), Length) highestC = highest(Length) lowestC = lowest(Length) hiLimit = highestC[1]-(avgTR[1] * Multiplier) loLimit = lowestC[1]+(avgTR[1] * Multiplier) ret = iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0))) pos = iff(close > ret, 1, iff(close < ret, -1, nz(pos[1], 0))) barcolor(pos == -1 ? red: pos == 1 ? green : blue ) plot(ret, color= blue , title="Trend Trader Strategy with MACD") // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2020, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // === MACD === [macdLine, signalLine, histLine] = macd(close, 12, 26, 9) macdCond= MacdControl ? histLine[0] > 0 ? true : false : true strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond) strategy.entry("SELL", strategy.short, when = window() and pos == -1)