متحرک انکولی رفتار بریکآؤٹ حکمت عملی ایک اعلی درجے کی مقداری تجارتی نقطہ نظر ہے جو ایک انکولی رفتار اشارے اور موم بتی پیٹرن کی شناخت کا استعمال کرتی ہے۔ یہ حکمت عملی مارکیٹ کی اتار چڑھاؤ کے مطابق ڈائنامک طور پر اپنی رفتار کی مدت کو ایڈجسٹ کرتی ہے اور اعلی امکان کے رجحان بریکآؤٹ کے مواقع کی نشاندہی کرنے کے لئے متعدد فلٹرنگ حالات کو جوڑتی ہے۔ حکمت عملی کا بنیادی مقصد مارکیٹ کی رفتار میں ہونے والی تبدیلیوں کو پکڑنا ہے جبکہ ٹریڈنگ کی درستگی اور منافع بخش کو بڑھانے کے لئے اندراج کے اشارے کے طور پر نگلنے والے نمونوں کا استعمال کرنا ہے۔
متحرک مدت ایڈجسٹمنٹ:
رفتار کا حساب اور ہموار کرنا:
رجحان کی سمت کا تعین:
نمونے کی شناخت:
ٹریڈ سگنل جنریشن:
تجارت کا انتظام:
مضبوط موافقت:
متعدد تصدیق کے طریقہ کار:
داخلہ کا عین مطابق وقت:
مناسب رسک مینجمنٹ:
لچکدار اور حسب ضرورت:
جھوٹا بریک آؤٹ خطرہ:
تاخیر کے مسائل:
فکسڈ ایگزٹ میکانزم کی حدود:
واحد ٹائم فریم پر زیادہ انحصار:
پیرامیٹر حساسیت:
ملٹی ٹائم فریم انٹیگریشن:
متحرک منافع اور سٹاپ نقصان:
حجم پروفائل تجزیہ:
مشین لرننگ کی اصلاح:
جذباتی اشارے کا انضمام:
رابطے کا تجزیہ:
متحرک انکولی رفتار بریکآؤٹ حکمت عملی ایک جدید تجارتی نظام ہے جو تکنیکی تجزیہ اور مقداری طریقوں کو جوڑتا ہے۔ رفتار کے ادوار کو متحرک طور پر ایڈجسٹ کرکے ، گلے لگانے کے نمونوں کی نشاندہی کرکے ، اور متعدد فلٹرنگ شرائط کو شامل کرکے ، یہ حکمت عملی مختلف مارکیٹ کے ماحول میں اعلی امکان کے رجحان بریکآؤٹ کے مواقع کو انکولی طور پر حاصل کرسکتی ہے۔ جبکہ جعلی بریکآؤٹس اور پیرامیٹر حساسیت جیسے موروثی خطرات موجود ہیں ، تجویز کردہ اصلاح کی سمتوں ، بشمول ملٹی ٹائم فریم تجزیہ ، متحرک رسک مینجمنٹ ، اور مشین لرننگ ایپلی کیشنز ، حکمت عملی کے استحکام اور منافع کو مزید بڑھانے کی صلاحیت پیش کرتے ہیں۔ مجموعی طور پر ، یہ ایک اچھی طرح سے سوچا ہوا ، منطقی طور پر سخت مقداری حکمت عملی ہے جو تاجروں کو مارکیٹ کی رفتار اور رجحان کی تبدیلیوں سے فائدہ اٹھانے کے لئے ایک طاقتور ٹول مہیا کرتی ہے۔
/*backtest start: 2024-06-28 00:00:00 end: 2024-07-28 00:00:00 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/ // © ironperol //@version=5 strategy("Adaptive Momentum Strategy", overlay=true, margin_long=100, margin_short=100) // Input parameters for customization src = input.source(close, title="Source") min_length = input.int(10, minval=1, title="Minimum Length") max_length = input.int(40, minval=1, title="Maximum Length") ema_smoothing = input.bool(true, title="EMA Smoothing") ema_length = input.int(7, title="EMA Length") percent = input.float(2, title="Percent of Change", minval=0, maxval=100) / 100.0 // Separate body size filters for current and previous candles min_body_size_current = input.float(0.5, title="Minimum Body Size for Current Candle (as a fraction of previous body size)", minval=0) min_body_size_previous = input.float(0.5, title="Minimum Body Size for Previous Candle (as a fraction of average body size of last 5 candles)", minval=0) close_bars = input.int(3, title="Number of Bars to Hold Position", minval=1) // User-defined input for holding period //######################## Calculations ########################## // Initialize dynamic length variable startingLen = (min_length + max_length) / 2.0 var float dynamicLen = na if na(dynamicLen) dynamicLen := startingLen high_Volatility = ta.atr(7) > ta.atr(14) if high_Volatility dynamicLen := math.max(min_length, dynamicLen * (1 - percent)) else dynamicLen := math.min(max_length, dynamicLen * (1 + percent)) momentum = ta.mom(src, int(dynamicLen)) value = ema_smoothing ? ta.ema(momentum, ema_length) : momentum // Calculate slope as the difference between current and previous value slope = value - value[1] // Calculate body sizes currentBodySize = math.abs(close - open) previousBodySize = math.abs(close[1] - open[1]) // Calculate average body size of the last 5 candles avgBodySizeLast5 = math.avg(math.abs(close[1] - open[1]), math.abs(close[2] - open[2]), math.abs(close[3] - open[3]), math.abs(close[4] - open[4]), math.abs(close[5] - open[5])) //######################## Long Signal Condition ########################## // Function to determine if the candle is a bullish engulfing isBullishEngulfing() => currentOpen = open currentClose = close previousOpen = open[1] previousClose = close[1] isBullish = currentClose >= currentOpen wasBearish = previousClose <= previousOpen engulfing = currentOpen <= previousClose and currentClose >= previousOpen bodySizeCheckCurrent = currentBodySize >= min_body_size_current * previousBodySize bodySizeCheckPrevious = previousBodySize >= min_body_size_previous * avgBodySizeLast5 isBullish and wasBearish and engulfing and bodySizeCheckCurrent and bodySizeCheckPrevious // Long signal condition longCondition = isBullishEngulfing() and slope > 0 // Plotting long signals on chart plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Long", title="Long Condition") // Alerts for long condition if (longCondition) alert("Long condition met", alert.freq_once_per_bar_close) //######################## Short Signal Condition ########################## // Function to determine if the candle is a bearish engulfing isBearishEngulfing() => currentOpen = open currentClose = close previousOpen = open[1] previousClose = close[1] isBearish = currentClose <= currentOpen wasBullish = previousClose >= previousOpen engulfing = currentOpen >= previousClose and currentClose <= previousOpen bodySizeCheckCurrent = currentBodySize >= min_body_size_current * previousBodySize bodySizeCheckPrevious = previousBodySize >= min_body_size_previous * avgBodySizeLast5 isBearish and wasBullish and engulfing and bodySizeCheckCurrent and bodySizeCheckPrevious // Short signal condition shortCondition = isBearishEngulfing() and slope < 0 // Plotting short signals on chart plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Short", title="Short Condition") // Alerts for short condition if (shortCondition) alert("Short condition met", alert.freq_once_per_bar_close) //######################## Trading Logic ########################## // Track the bar number when the position was opened var int longEntryBar = na var int shortEntryBar = na // Enter long trade on the next candle after a long signal if (longCondition and na(longEntryBar)) strategy.entry("Long", strategy.long) longEntryBar := bar_index + 1 // Enter short trade on the next candle after a short signal if (shortCondition and na(shortEntryBar)) strategy.entry("Short", strategy.short) shortEntryBar := bar_index + 1 // Close long trades `close_bars` candles after entry if (not na(longEntryBar) and bar_index - longEntryBar >= close_bars) strategy.close("Long") longEntryBar := na // Close short trades `close_bars` candles after entry if (not na(shortEntryBar) and bar_index - shortEntryBar >= close_bars) strategy.close("Short") shortEntryBar := na