এই কৌশলটি দুটি ক্লাসিক মোমবাতি প্যাটার্নের উপর ভিত্তি করে একটি পরিমাণগত ট্রেডিং সিস্টেম: হ্যামার এবং হ্যাং ম্যান। এটি এই বিপরীত প্যাটার্নগুলি সনাক্ত করে সম্ভাব্য বাজার টার্নিং পয়েন্টগুলি পূর্বাভাস দেয়। সিস্টেমটি মোমবাতি দেহ এবং ছায়া, প্রবণতা দিক এবং অন্যান্য উপাদানগুলির মধ্যে সম্পর্ক সহ সংকেত বৈধতা নিশ্চিত করার জন্য একাধিক প্রযুক্তিগত সূচককে একত্রিত করে, বাজারের বিপরীত পয়েন্টগুলির সুনির্দিষ্ট ক্যাপচার অর্জন করে।
কৌশলটির মূল যুক্তি হল প্রোগ্রাম্যাটিকভাবে দুটি মূল মোমবাতি প্যাটার্ন সনাক্ত করাঃ ১. হ্যামার: নিম্নমুখী প্রবণতায় দেখা যায়, যা সম্ভাব্য ঊর্ধ্বমুখী বিপরীতের পরামর্শ দেয়। একটি ছোট শরীর, দীর্ঘ নীচের ছায়া (দেহের দৈর্ঘ্যের কমপক্ষে দ্বিগুণ) এবং সামান্য বা কোনও উপরের ছায়া দ্বারা চিহ্নিত। ২. হ্যাং ম্যানঃ আপট্রেন্ডে দেখা যায়, যা সম্ভাব্য নেমে যাওয়া বিপরীতের পরামর্শ দেয়। হ্যামারের মতো বৈশিষ্ট্যযুক্ত তবে বিপরীত প্রভাবের সাথে বিভিন্ন স্থানে উপস্থিত হয়।
কৌশলটি কঠোর পরামিতিগুলির মাধ্যমে এই নিদর্শনগুলি পরিমাপ করে, যার মধ্যে রয়েছেঃ - ন্যূনতম মোমবাতি শরীর দৈর্ঘ্য গুণক - নীচের ছায়া থেকে মোমবাতি উচ্চতা অনুপাত - ধরে রাখার সময়কাল
এই কৌশলটি পরিমাপের মাধ্যমে ক্লাসিকাল প্রযুক্তিগত বিশ্লেষণ তত্ত্বকে পদ্ধতিগতভাবে বাস্তবায়ন করে, শক্তিশালী ব্যবহারিক মূল্য প্রদর্শন করে। প্যারামিটার অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণ প্রক্রিয়া পরিমার্জনের মাধ্যমে কৌশলটি বিভিন্ন বাজারের পরিবেশে স্থিতিশীল কর্মক্ষমতা বজায় রাখতে পারে। মডুলার ডিজাইন পরবর্তী অপ্টিমাইজেশনের জন্য একটি শক্ত ভিত্তি সরবরাহ করে।
/*backtest start: 2024-12-10 00:00:00 end: 2025-01-08 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Hammer and Hanging Man Strategy", overlay=true) // Input parameters length = input.int(5, title="Minimum Candle Body Length (Multiplier)", minval=1) shadowRatio = input.float(1, title="Lower Shadow to Candle Height Ratio", minval=1.0) holdPeriods = input.int(26, title="Hold Periods (Bars)", minval=1) // Holding period in bars // Function to calculate the absolute value absValue(x) => x >= 0 ? x : -x // Function to check if it is a Hammer isHammer() => bodyLength = absValue(close - open) candleHeight = high - low lowerShadow = math.min(open, close) - low upperShadow = high - math.max(open, close) smallBody = bodyLength <= candleHeight / length longLowerShadow = lowerShadow >= bodyLength * shadowRatio shortUpperShadow = upperShadow <= bodyLength smallBody and longLowerShadow and shortUpperShadow and close > open // Function to check if it is a Hanging Man isHangingMan() => bodyLength = absValue(close - open) candleHeight = high - low lowerShadow = math.min(open, close) - low upperShadow = high - math.max(open, close) smallBody = bodyLength <= candleHeight / length longLowerShadow = lowerShadow >= bodyLength * shadowRatio shortUpperShadow = upperShadow <= bodyLength smallBody and longLowerShadow and shortUpperShadow and close < open // Detect the candles hammer = isHammer() hangingMan = isHangingMan() // Trading logic: Long on Hammer, Short on Hanging Man if hammer strategy.entry("Long", strategy.long) // Long entry on Hammer if hangingMan strategy.entry("Short", strategy.short) // Short entry on Hanging Man // Exit after X bars if strategy.position_size > 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods strategy.close("Long") if strategy.position_size < 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods strategy.close("Short") // Visualization of signals plotshape(hammer, title="Hammer", location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer") plotshape(hangingMan, title="Hanging Man", location=location.abovebar, color=color.red, style=shape.labeldown, text="Hanging Man")