یہ حکمت عملی ایک جدید تجارتی نظام ہے جو ہارمونک پیٹرنز کو ولیمز فیصد رینج (ڈبلیو پی آر) اشارے کے ساتھ جوڑتا ہے۔ یہ مارکیٹ میں ہارمونک تشکیلات (جیسے گارٹلی ، بیٹ ، کرب اور تتلی کے نمونوں) کی نشاندہی کرتا ہے اور تجارت میں داخلہ اور باہر نکلنے کے مقامات کا تعین کرنے کے لئے ڈبلیو پی آر
بنیادی منطق میں کئی اہم اجزاء شامل ہیں: ہارمونک پیٹرن کی شناخت: قیمت کے محور پوائنٹس کا استعمال کرتے ہوئے اعلی اور کم کے درمیان تعلقات کا تجزیہ کرکے ممکنہ ہارمونک تشکیلات کی نشاندہی کرتا ہے۔ ولیمز فی صد آر حساب کتاب: مارکیٹ کے حالات کا تعین کرنے کے لئے اعلی ، کم اور اختتامی قیمتوں کے مابین تعلقات کا تجزیہ کرتے ہوئے ، WPR کا حساب لگانے کے لئے ایک کسٹم مدت کا استعمال کرتا ہے۔ داخلے کی شرائط: - لانگ انٹری: جب ایک بولش ہارمونک پیٹرن ظاہر ہوتا ہے اور WPR oversold علاقے میں ہے - مختصر انٹری: جب ایک bearish ہارمونک پیٹرن ظاہر ہوتا ہے اور WPR overbought علاقے میں ہے 4۔ رسک مینجمنٹ: حالیہ کموں / بلندوں کی بنیاد پر متحرک اسٹاپ نقصان کو نافذ کرتا ہے اور رسک - انعام کے تناسب کا استعمال کرتے ہوئے منافع لینے کی سطح طے کرتا ہے۔
یہ حکمت عملی ولیمز٪ R اشارے کے ساتھ ہارمونک نمونوں کو جوڑ کر ایک جامع تجارتی نظام تیار کرتی ہے۔ اس کی طاقت اس کے کثیر جہتی تجزیہ کے نقطہ نظر اور مضبوط رسک کنٹرول میکانزم میں ہے ، حالانکہ پیرامیٹر کی اصلاح اور مارکیٹ کے ماحول میں موافقت پر توجہ دی جانی چاہئے۔ تجویز کردہ اصلاح کی سمتوں کے ذریعے ، حکمت عملی کی استحکام اور وشوسنییتا کو مزید بڑھا سکتا ہے۔
/*backtest start: 2025-01-09 00:00:00 end: 2025-01-16 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Harmonic Pattern with WPR Backtest", overlay=true) // === Inputs === patternLength = input.int(5, title="Pattern Length") wprLength = input.int(14, title="WPR Length") wprOverbought = input.float(-20, title="WPR Overbought Level") wprOversold = input.float(-80, title="WPR Oversold Level") riskRewardMultiplier = input.float(0.618, title="Take-Profit Risk/Reward Multiplier") stopLossBuffer = input.float(0.005, title="Stop-Loss Buffer (%)") // === Manual Calculation of William Percent Range (WPR) === highestHigh = ta.highest(high, wprLength) lowestLow = ta.lowest(low, wprLength) wpr = ((highestHigh - close) / (highestHigh - lowestLow)) * -100 // === Harmonic Pattern Detection (Simplified Approximation) === // Calculate price pivots pivotHigh = ta.pivothigh(high, patternLength, patternLength) pivotLow = ta.pivotlow(low, patternLength, patternLength) // Detect Bullish and Bearish Harmonic Patterns bullishPattern = pivotLow and close > ta.lowest(close, patternLength) // Simplified detection for bullish patterns bearishPattern = pivotHigh and close < ta.highest(close, patternLength) // Simplified detection for bearish patterns // === Entry Conditions === longCondition = bullishPattern and wpr < wprOversold shortCondition = bearishPattern and wpr > wprOverbought // === Stop-Loss and Take-Profit Levels === longEntryPrice = close longSL = ta.valuewhen(longCondition, low, 0) * (1 - stopLossBuffer) // Stop-loss for long trades longTP = longEntryPrice * (1 + riskRewardMultiplier) // Take-profit for long trades shortEntryPrice = close shortSL = ta.valuewhen(shortCondition, high, 0) * (1 + stopLossBuffer) // Stop-loss for short trades shortTP = shortEntryPrice * (1 - riskRewardMultiplier) // Take-profit for short trades // === Backtesting Logic === // Long Trade if longCondition strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop=longSL, limit=longTP) // Short Trade if shortCondition strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop=shortSL, limit=shortTP) // === Visualization === bgcolor(longCondition ? color.new(color.green, 90) : na, title="Long Entry Signal") bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Short Entry Signal")