এই কৌশলটি একটি প্রবণতা অনুসরণকারী পরিবর্তনশীল অবস্থান গ্রিড কৌশল যা মূলত প্রবণতা দিক এবং প্রবেশের সময় নির্ধারণের জন্য ইএমএ, আরএসআই এবং গ্রাস প্যাটার্নগুলি ব্যবহার করে। কৌশলটি ব্যবহারকারীদের শুধুমাত্র দীর্ঘ, শুধুমাত্র সংক্ষিপ্ত বা উভয়ই বেছে নিতে দেয়। অতিরিক্তভাবে, কৌশলটি একটি প্রবণতা ফিল্টার হিসাবে এমএসিডি ব্যবহার করার বিকল্প সরবরাহ করে।
কৌশলটি সামগ্রিক প্রবণতা দিক নির্ধারণের জন্য 200-পরিঘরের ইএমএ ব্যবহার করে। যখন মূল্য ইএমএর উপরে থাকে, তখন এটি একটি আপট্রেন্ড হিসাবে বিবেচিত হয় এবং যখন ইএমএর নীচে থাকে, তখন এটি একটি ডাউনট্রেন্ড হিসাবে বিবেচিত হয়। গতির পরিমাপ করতে একটি 9-পরিঘরের আরএসআই ব্যবহার করা হয়, 50 এর উপরে একটি আরএসআই শক্তিশালী বুলিশ গতি নির্দেশ করে এবং 50 এর নীচে শক্তিশালী হ্রাস গতি নির্দেশ করে। কৌশলটি প্রবেশ সংকেত হিসাবে বুলিশ এবং হ্রাস গ্লোফিং প্যাটার্নগুলিও ব্যবহার করে। যখন ইএমএ, আরএসআই এবং গ্লোফিং প্যাটার্ন সংকেতগুলি একমত হয়, তখন কৌশলটি একটি অবস্থান খোলে।
স্টপ-লস এবং টেক-লাভ পজিশনগুলি গ্রাসকারী প্যাটার্নের দেহের আকারের উপর ভিত্তি করে নির্ধারিত হয়। স্টপ-লসটি গ্রাসকারী দেহের আকারের দ্বিগুণে সেট করা হয়, স্টপ-লসের সর্বনিম্ন শতাংশ 0.3% এন্ট্রি মূল্য থেকে ছোট স্টপ-লস দূরত্বের কারণে ঘন ঘন স্টপ-আউট এড়াতে। স্টপ-লস দূরত্বকে একটি নির্দিষ্ট ঝুঁকি-পুরষ্কার অনুপাত নিশ্চিত করার জন্য একটি পূর্বনির্ধারিত ঝুঁকি-পুরষ্কার অনুপাত দ্বারা গুণ করে লাভের অবস্থান নির্ধারণ করা হয়। অতিরিক্তভাবে, কৌশলটি একটি স্থির ঝুঁকি-পুরষ্কার অনুপাত নিশ্চিত করার জন্য ম্যাকডিকে একটি ট্রেন্ড ফিল্টার হিসাবে ব্যবহার করার বিকল্প সরবরাহ করে, যখন ম্যাকডি লাইন সিগন্যাল লাইনের উপরে থাকে তখন একটি শক্তিশালী উত্থান প্রবণতি এবং যখন ম্যাকডি লাইন সিগন্যাল লাইনের নীচে থাকে তখন একটি শক্তিশালী হ্রাস প্রবণতা বিবেচনা করে।
প্রবণতা অনুসরণঃ কৌশলটি প্রবণতা নির্ধারণের জন্য একাধিক সূচক ব্যবহার করে, প্রবণতা গঠনের প্রাথমিক পর্যায়ে প্রবেশ করতে এবং প্রবণতা চলার ধরন ধরতে সহায়তা করে।
ডায়নামিক স্টপ-লস এবং টেক-প্রফিটঃ স্টপ-লস এবং টেক-প্রফিট পজিশনগুলি গ্রাসকারী প্যাটার্নের আকারের উপর ভিত্তি করে সামঞ্জস্য করে, কৌশলটি প্রবণতা শক্তিশালী হলে লাভের পরিসীমা প্রসারিত করে এবং প্রবণতা দুর্বল হলে স্টপ-লস পরিসীমা সংকীর্ণ করে, নমনীয় অবস্থান পরিচালনার অনুমতি দেয়।
ব্যবহারকারীরা বিভিন্ন ব্যবহারকারীর প্রয়োজন অনুসারে ট্রেডিং দিকনির্দেশনা, ঝুঁকি পছন্দ এবং অন্যান্য পরামিতিগুলি কাস্টমাইজ করতে পারেন।
ট্রেন্ড ফিল্টার হিসেবে MACD ব্যবহার করার বিকল্পটি ট্রেন্ডের শক্তিকে আরও নিশ্চিত করে এবং প্রবেশের নির্ভুলতা উন্নত করে।
ভুল প্রবণতা সনাক্তকরণঃ যদিও কৌশলটি প্রবণতা নির্ধারণের জন্য একাধিক সূচক ব্যবহার করে, তবুও এমন ঘটনা ঘটতে পারে যেখানে প্রবণতাটি ভুলভাবে সনাক্ত করা হয়, যার ফলে ক্ষতি হয়।
সংকীর্ণতা পরিসীমাঃ যদি গ্রাসকারী প্যাটার্নের দেহটি ছোট হয়, তবে স্টপ-লস এবং ট্যাক-লাভ দূরত্ব খুব কাছাকাছি হবে, যা ঝুঁকি-পুরষ্কার অনুপাতের অবনতি ঘটাবে। এই পরিস্থিতি অস্থির বাজারে আরও সাধারণ।
প্যারামিটার অপ্টিমাইজেশনঃ অপ্টিমাম প্যারামিটারগুলি বিভিন্ন যন্ত্র এবং সময়সীমার মধ্যে উল্লেখযোগ্যভাবে পরিবর্তিত হতে পারে, যা ব্যবহারকারীদের ক্রমাগত পরীক্ষা এবং অপ্টিমাইজ করার প্রয়োজন।
প্রবণতা সনাক্তকরণঃ প্রবণতা সনাক্তকরণের নির্ভুলতা উন্নত করতে বোলিংজার ব্যান্ড, গড় দিকনির্দেশক সূচক (এডিএক্স) ইত্যাদির মতো অতিরিক্ত প্রবণতা নিশ্চিতকরণ সরঞ্জাম প্রবর্তন বিবেচনা করুন।
স্টপ-লস এবং টেক-প্রফিট অপ্টিমাইজেশনঃ স্টপ-লস এবং টেক-প্রফিট দূরত্বকে গতিশীলভাবে সামঞ্জস্য করার জন্য ATR এর মতো অস্থিরতা সম্পর্কিত সূচকগুলি অন্তর্ভুক্ত করার বিষয়টি বিবেচনা করুন, ছোট পরিসরের সাথে যুক্ত ঝুঁকি হ্রাস করুন।
পজিশনের আকার নির্ধারণঃ প্রবণতা শক্তি, অ্যাকাউন্ট লাভজনকতা ইত্যাদির উপর ভিত্তি করে অবস্থান আকারকে গতিশীলভাবে সামঞ্জস্য করুন, যখন প্রবণতা শক্তিশালী এবং ধারাবাহিকভাবে লাভজনক হয় তখন অবস্থান আকার বৃদ্ধি করুন এবং ঘন ঘন ট্রেডিংয়ের ব্যয় হ্রাস করুন।
একাধিক সময়সীমা এবং একাধিক যন্ত্রের সমন্বয়ঃ একক যন্ত্র বা সময়সীমার ঝুঁকিকে বৈচিত্র্যময় করে প্রবণতা সনাক্তকরণের নির্ভুলতা উন্নত করতে সময়সীমা এবং যন্ত্রগুলির মধ্যে প্রবণতা সংকেতগুলি বৈধ করুন।
এই প্রবণতা অনুসরণকারী পরিবর্তনশীল অবস্থান গ্রিড কৌশলটি প্রবণতা দিক এবং শক্তি নির্ধারণের জন্য একাধিক সূচক ব্যবহার করে প্রবণতা বাজারে ভাল সম্পাদন করে, প্রবণতা ক্যাপচার এবং অতিরিক্ত রিটার্ন অর্জনের জন্য গতিশীলভাবে স্টপ-লস, লাভ-লাভ এবং অবস্থান আকার সামঞ্জস্য করে। তবে, কৌশলটির পারফরম্যান্স অস্পষ্ট বা ঘন ঘন ওঠানামা বাজারে গড়। অতএব, এই কৌশলটি ব্যবহার করার সময়, ট্রেন্ডিং সরঞ্জাম নির্বাচন এবং বাজারের অবস্থার পরিবর্তনের সাথে সাথে পরামিতিগুলি সামঞ্জস্য করার দিকে মনোনিবেশ করা গুরুত্বপূর্ণ। তদতিরিক্ত, প্রবণতা সনাক্তকরণ, স্টপ-লস এবং লাভ-লাভের স্থান, অবস্থান আকার এবং বহু-সময়সীমা এবং বহু-সরঞ্জাম সমন্বয় আরও অপ্টিমাইজেশনের জন্য জায়গা রয়েছে।
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © niosupetranmartinez //@version=5 strategy("Trend Follower Scalping Strategy", overlay=true, process_orders_on_close = true) // Inputs emaLen = input(200, 'EMA Length') rsiLen = input(9, 'RSI Length') trendDirection = input.string("Both", 'Trend Direction', options=["Long Only", "Short Only", "Both"]) risk_reward_ratio = input(2, 'Risk Reward Ratio') useMacdFilter = input.bool(true, "Use MACD Filter") macdTimeframe = input("5", "MACD Timeframe") // EMA and RSI ema200 = ta.ema(close, emaLen) customRsi = ta.rsi(close, rsiLen) // MACD Filter [macdLine, signalLine, _] = request.security(syminfo.tickerid, macdTimeframe, ta.macd(close, 12, 26, 9)) // Majority Body Candle Identification Function isMajorityBodyCandle(candleOpen, candleClose, high, low) => bodySize = math.abs(candleClose - candleOpen) fullSize = high - low bodySize / fullSize > 0.6 // Engulfing Patterns isBullishEngulfing = close > open and close[1] < open[1] and (close - open) > (open[1] - close[1]) and isMajorityBodyCandle(open, close, high, low) isBearishEngulfing = close < open and close[1] > open[1] and (open - close) > (close[1] - open[1]) and isMajorityBodyCandle(open, close, high, low) // Entry Conditions with MACD Filter longCondition = close > ema200 and customRsi > 50 and isBullishEngulfing and (not useMacdFilter or macdLine > signalLine) shortCondition = close < ema200 and customRsi < 50 and isBearishEngulfing and (not useMacdFilter or macdLine < signalLine) // Trade Execution var float stopLossPrice = na var float entryPrice = na // Long Entry if (longCondition and (trendDirection == "Long Only" or trendDirection == "Both")) entryPrice := close engulfingBodySize = math.abs(close - open) minimumStopLoss = entryPrice * 0.997 calculatedStopLoss = entryPrice - (engulfingBodySize * 2) stopLossPrice := calculatedStopLoss < minimumStopLoss ? calculatedStopLoss : minimumStopLoss risk = entryPrice - stopLossPrice takeProfitPrice = entryPrice + (risk_reward_ratio * risk) strategy.entry("Long", strategy.long) strategy.exit("Exit Long", "Long", stop = stopLossPrice, limit = takeProfitPrice) // Short Entry if (shortCondition and (trendDirection == "Short Only" or trendDirection == "Both")) entryPrice := close engulfingBodySize = math.abs(open - close) minimumStopLoss = entryPrice * 1.003 calculatedStopLoss = entryPrice + (engulfingBodySize * 2) stopLossPrice := calculatedStopLoss > minimumStopLoss ? calculatedStopLoss : minimumStopLoss risk = stopLossPrice - entryPrice takeProfitPrice = entryPrice - (risk_reward_ratio * risk) strategy.entry("Short", strategy.short) strategy.exit("Exit Short", "Short", stop = stopLossPrice, limit = takeProfitPrice) // Plotting plot(ema200, color=color.blue, linewidth=2, title="EMA 200")