
এই কৌশলটির কেন্দ্রবিন্দু হল অ্যান্ড্রু আব্রাহামের দ্বারা সেপ্টেম্বর ১৯৯৮-এর ট্রেডিং ট্রেন্ডস পত্রিকার টিএএসসি কলামে প্রকাশিত একটি নিবন্ধের উপর ভিত্তি করে তৈরি করা একটি সূচক। এই সূচকটি বাজারের প্রবণতার দিকনির্দেশের জন্য গড় বাস্তব ওঠানামা এবং মূল্য চ্যানেল ব্যবহার করে এবং মাঝারি-দৈর্ঘ্য প্রবণতা ক্যাপচার করার জন্য MACD সূচকের সাথে মিলিত ট্রেডিং সিগন্যাল ফিল্টার করে।
এই কৌশলটি প্রথমে ২১ দিনের গড় বাস্তব ওঠা-বসা পরিসরের (ATR) ওজনের চলমান গড় গণনা করে বেসিক ওঠা-বসা পরিসর হিসেবে। তারপর গত ২১ দিনের সর্বোচ্চ এবং সর্বনিম্ন মূল্য গণনা করে বর্তমান K-লাইন ক্লোজ-আপ মূল্যকে বেসিক ওঠা-বসা পরিসরের উপরের এবং নীচের সীমানার সাথে তুলনা করে দেখা যায় যে দাম চ্যানেল ভেঙেছে কিনা, যার ফলে ট্রেন্ডের দিকনির্দেশনা পাওয়া যায়।
নির্দিষ্টভাবে, চ্যানেলের উপরের সীমাটি গত 21 দিনের সর্বোচ্চ মূল্য হ্রাস করে বেস ATR এর 3 গুণ এবং চ্যানেলের নীচের সীমাটি গত 21 দিনের সর্বনিম্ন মূল্যের সাথে বেস ATR এর 3 গুণ। যখন বন্ধের দাম চ্যানেলের উপরের সীমা থেকে বেশি হয়, তখন এটি একটি মন্দ প্রবণতা হিসাবে বিচার করা হয়। যখন বন্ধের দাম চ্যানেলের নীচের সীমা থেকে কম হয়, তখন এটি একটি মন্দ প্রবণতা হিসাবে বিচার করা হয়।
ট্রেন্ডের দিকনির্দেশনা নির্ধারণের পাশাপাশি, এই কৌশলটি MACD সূচককে ফিল্টার করার জন্যও প্রবর্তন করে। এটি কেবলমাত্র যখন MACD কলামটি সঠিক হয় তখনই একটি ক্রয় সংকেত তৈরি করে, যাতে ক্রয় পয়েন্টটি মিস করা যায় না।
এই কৌশলটি প্রবণতা বিচার এবং সূচক ফিল্টারিংয়ের সাথে মিলিত হয়, যা বাজারের দীর্ঘ লাইন প্রবণতার দিকনির্দেশকে কার্যকরভাবে নির্ধারণ করতে পারে এবং বাজারের স্বল্পমেয়াদী ওঠানামা দ্বারা বিভ্রান্ত হওয়া এড়াতে পারে। এর সুবিধাগুলি নিম্নরূপঃ
এই কৌশলটি বেশ ঝুঁকিপূর্ণ, বিশেষ করে নিম্নলিখিত দিকগুলোতেঃ
এই ক্ষেত্রে, অপ্টিমাইজড প্যারামিটার সেটিং, কঠোর পজিশন সাইজিং এবং সময়মতো ক্ষতি বন্ধ করে ঝুঁকি কমাতে পারে।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যায়ঃ
বিভিন্ন দৈর্ঘ্য প্যারামিটার বা মাল্টিপ্লায়ার প্যারামিটারগুলির সমন্বয় পরীক্ষা করা যেতে পারে, যাতে রিটার্ন ডেটার উপর ভিত্তি করে সর্বোত্তম রিটার্ন প্রদান করে এমন প্যারামিটার সমন্বয় খুঁজে পাওয়া যায়।
২. অন্যান্য সূচকগুলির সাথে মিলিতভাবে ফিল্টার করুন
আরএসআই, কেডিজে এবং অন্যান্য সূচকগুলির সাথে সংযুক্ত করে পরীক্ষা করা যেতে পারে, যাতে এটি রিটার্নের হার বাড়িয়ে তুলতে পারে।
৩. গতিশীল সমন্বয় প্যারামিটার
বাজারের অবস্থার উপর ভিত্তি করে প্যারামিটারগুলিকে গতিশীলভাবে সামঞ্জস্য করা যায়, যেমন প্রবণতা স্পষ্ট হলে চ্যানেলের পরিধি যথাযথভাবে প্রশস্ত করা যায় এবং ঝড়ের সময় চ্যানেলের পরিধি যথাযথভাবে শক্ত করা যায়।
এই কৌশলটি সামগ্রিকভাবে একটি অপেক্ষাকৃত স্থিতিশীল প্রবণতা ট্র্যাকিং কৌশল। এটি প্রবণতা দিক নির্ধারণের জন্য মূল্য চ্যানেল এবং MACD সূচক ফিল্টারিং সিগন্যালের পদ্ধতির সাথে মিলিত হয়, যা বাজারের দীর্ঘ লাইন প্রবণতাকে কার্যকরভাবে নির্ধারণ করতে পারে এবং স্থিতিশীল উপার্জন উত্পন্ন করে। প্যারামিটার অপ্টিমাইজেশন, ঝুঁকি ব্যবস্থাপনা এবং যথাযথ সংশোধন দ্বারা এই কৌশলটি একটি পরিমাণগত ট্রেডিং সিস্টেমের একটি গুরুত্বপূর্ণ অংশ হতে পারে।
/*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)