প্রবণতা অনুসরণকারী কৌশল হল চলমান গড়ের ক্রসওভারের উপর ভিত্তি করে একটি প্রবণতা ট্রেডিং কৌশল। এটি প্রবণতার দিক নির্ধারণ এবং সেই অনুযায়ী ট্রেডিং সংকেত তৈরির জন্য একটি এক্সপোনেনশিয়াল চলমান গড় (ইএমএ) এবং একটি হাল্ল চলমান গড় (এইচএমএ) এর ক্রসওভার ব্যবহার করে। কৌশলটি স্বল্পমেয়াদী দুর্যোগের পরিবর্তে দীর্ঘমেয়াদী মূল্য প্রবণতা অনুসরণ করার লক্ষ্যে।
কৌশলটি বিভিন্ন পরামিতি সহ দুটি চলমান গড় ব্যবহার করেঃ একটি দ্রুত EMA এবং একটি ধীর HMA। EMA মূল্য পরিবর্তনের জন্য দ্রুত প্রতিক্রিয়া জানায় এবং স্বল্পমেয়াদী প্রবণতা বিচার করতে ব্যবহৃত হয়, যখন HMA ধীর প্রতিক্রিয়া জানায় এবং দীর্ঘমেয়াদী প্রবণতা দিক অনুসরণ করে।
যখন দ্রুততম ইএমএ ধীরতম এইচএমএ এর উপরে অতিক্রম করে, এটি একটি আপগ্রেড প্রবণতার শুরু হিসাবে দেখা হয়, এবং কৌশলটি পরবর্তী বার খোলা বাজারের মূল্যে একটি দীর্ঘ অর্ডার স্থাপন করবে। যখন ইএমএ এইচএমএ এর নীচে অতিক্রম করে, এটি একটি নিম্নগামী প্রবণতার শুরু হিসাবে দেখা হয়, এবং কৌশলটি পরবর্তী বার খোলা বাজারের মূল্যে শর্ট হবে।
এন্ট্রি টাইমিং অপ্টিমাইজ করার জন্য, কৌশলটি একটি হেইকিন-আশি বিকল্প অন্তর্ভুক্ত করে। যখন সক্ষম করা হয়, তখন ক্রয় এবং বিক্রয় সংকেতগুলি সাধারণ মোমবাতিগুলির পরিবর্তে হেইকিন-আশি বারগুলির উপর ভিত্তি করে তৈরি করা হবে। হেইকিন-আশি বারগুলি মূল মোমবাতিগুলিতে স্বল্পমেয়াদী দামের দোলগুলি ফিল্টার করতে পারে এবং মিথ্যা সংকেতগুলি হ্রাস করতে পারে।
কৌশলটি স্টপ লস সেটিংও ব্যবহার করে। যখন পজিশন লস পূর্বনির্ধারিত স্টপ লস শতাংশে পৌঁছে যায়, তখন পজিশনটি বাজার মূল্যে বন্ধ হয়ে যায়, প্রতি ট্রেডের সর্বোচ্চ ক্ষতির সীমা নির্ধারণ করে।
এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ
প্রবণতা নির্ধারণের জন্য ইএমএ এবং এইচএমএ ক্রসওভার ব্যবহার করে বিভিন্ন সময়ের চলমান গড়ের সুবিধা গ্রহণ করা যায় এবং নির্ভুলতা উন্নত করা যায়।
প্রবণতার উপর ভিত্তি করে ট্রেডিং ছোটখাটো দোলন থেকে বিরত থাকে এবং অপ্রয়োজনীয় ট্রেডিং হ্রাস করে।
হেকিন-আশি বিকল্পটি মিথ্যা সংকেতগুলি ফিল্টার করে প্রবেশের সময়কে অনুকূল করে।
মুভিং স্টপ লস কার্যকরভাবে ট্রেড প্রতি সর্বোচ্চ ক্ষতি সীমাবদ্ধ করে।
কাস্টমাইজযোগ্য পরামিতি বিভিন্ন পণ্য এবং সময়সীমার জন্য অপ্টিমাইজেশান অনুমতি দেয়।
এই কৌশলের ঝুঁকিগুলির মধ্যে রয়েছেঃ
প্রবণতা অনুসরণকারী সিস্টেম হিসাবে, এটি ব্যাপ্তি-সীমাবদ্ধ বাজারে কম পারফর্ম করে।
ট্রেন্ড বিপরীত হলে এটি বড় ক্ষতির সম্মুখীন হতে পারে।
ভুল স্টপ লস সেটিং অপ্রয়োজনীয় স্টপ বা ক্ষতি বাড়িয়ে তুলতে পারে।
প্যারামিটারগুলির ভুল সমন্বয় ওভারট্রেডিং বা নিষ্ক্রিয়তার দিকে পরিচালিত করতে পারে।
বিভিন্ন পণ্য এবং সময়সীমার জন্য EMA এবং HMA সময়ের অপ্টিমাইজেশান প্রয়োজন।
হেইকিন-আশি সম্পূর্ণরূপে মিথ্যা পলায়নের ঝুঁকি এড়াতে পারে না।
কৌশলটি নিম্নলিখিত দিক থেকে উন্নত করা যেতে পারেঃ
ট্রেন্ডের সঠিকতা বাড়াতে এমএসিডি, কেডিজে-র মতো আরও সূচক ব্যবহার করুন।
ভলিউম, এটিআর এর মতো আরও ফিল্টার যুক্ত করুন যাতে মিথ্যা বিরতি কম হয়।
পণ্য এবং সময়সীমার উপর ভিত্তি করে চলমান গড়ের পরামিতিগুলি অপ্টিমাইজ করুন।
স্টপ লস হারের হারকে সূক্ষ্মভাবে সামঞ্জস্য করুন
মুনাফা গ্রহণের বৈশিষ্ট্য যেমন মুভিং মুনাফা স্টপ এবং আংশিক মুনাফা গ্রহণ বিবেচনা করুন।
অপ্টিমাইজেশনের জন্য অবস্থান খরচ ভিত্তি গণনা করার বিকল্প উপায় পরীক্ষা করুন।
প্রবণতা অনুসরণকারী কৌশলটি চলমান গড় ক্রসওভার ব্যবহার করে প্রবণতা সনাক্ত করে এবং হেইকিন-আশি এবং চলমান স্টপ লসের মাধ্যমে কর্মক্ষমতা অনুকূল করে। এটি মাঝারি থেকে দীর্ঘমেয়াদী প্রবণতা ট্রেডিংয়ের জন্য উপযুক্ত এবং প্যারামিটার টিউনিং এবং বৈশিষ্ট্য সম্প্রসারণের মাধ্যমে আরও উন্নত করা যেতে পারে। তবে ব্যবহারকারীদের বিপরীতমুখী এবং অনুপযুক্ত স্টপ লসের ঝুঁকি সম্পর্কে সচেতন হওয়া উচিত। সামগ্রিকভাবে এটি ট্রেন্ড ট্রেডিংয়ের জন্য একটি সর্বজনীন এবং কাস্টমাইজযোগ্য কাঠামো সরবরাহ করে যা বিভিন্ন পণ্য এবং সময়সীমার মধ্যে কাজ করে। এটি প্রয়োগ করার সময় সঠিক প্যারামিটার পরীক্ষার প্রয়োজন।
/*backtest start: 2022-10-30 00:00:00 end: 2023-11-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("𝐉𝐔𝐈𝐂𝐘 𝐓𝐑𝐄𝐍𝐃", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=15) //Heikin Ashi Option ha = input(true, title = "Heikin Ashi Source") src = ha ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, barmerge.gaps_off, barmerge.lookahead_off) : close usestoploss = input(true, title="Stop Loss") //EMA len1 = input.int(9, minval=1, title="EMA Length") ema = ta.ema(src, len1) emaline = plot(ema, title="EMA", color=color.blue, linewidth=2) //HMA len2 = input.int(69, minval=1, title="HMA Length") hma = ta.wma(2*ta.wma(src, len2/2)-ta.wma(src, len2), math.floor(math.sqrt(len2))) hmaline = plot(hma, title="HMA", color=color.purple, linewidth=2) fillcolor = hma < ema ? color.blue : color.purple fill(emaline, hmaline, title="EMA Fill", color=color.new(fillcolor, 80), editable=true) //Stop Loss Conditions stoplosspercent = input.float(title="Stop Loss (%)", defval=-6.5, minval=-50, maxval=0, step=.1) / 100 stoploss = strategy.position_avg_price * (1 + stoplosspercent) stop = stoploss > close and stoploss[1] < close[1] and strategy.position_size > 0 and usestoploss //Buy Sell Conditions buy = hma < ema sell = hma > ema //Trades and Alerts if buy strategy.entry("Long Position", strategy.long, comment="BUY") // alert("{\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar) if sell and strategy.openprofit > 0 strategy.close("Long Position", comment="SELL") // alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar) if stop strategy.close("Long Position", comment="STOP") // alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar) //Alternate Labels var pos = 0 if buy and pos <= 0 pos := 1 if sell and pos >= 0 pos := -1 buylabel = pos == 1 and (pos != 1)[1] selllabel = pos == -1 and (pos != -1)[1] //Plot Labels plotshape(buylabel, style=shape.labelup, location=location.belowbar, color=color.blue, text="BUY", textcolor=color.white, size=size.tiny) plotshape(selllabel, style=shape.labeldown, location=location.abovebar, color=color.purple, text="SELL", textcolor=color.white, size=size.tiny) plotshape(stop, style=shape.labeldown, location=location.abovebar, color=color.yellow, text="STOP", textcolor=color.white, size=size.tiny)