
متحرک خود کو ایڈجسٹ کرنے والی ٹرینڈ بریک حکمت عملی ایک اعلی درجے کی مقدار میں تجارت کی حکمت عملی ہے جو خود کو ایڈجسٹ کرنے والی ٹرینڈ اشارے اور گرافک پیٹرن کی شناخت کا استعمال کرتی ہے۔ یہ حکمت عملی مارکیٹ میں اتار چڑھاؤ کو متحرک طور پر متحرک کرنے کے لئے متحرک سائیکل کو ایڈجسٹ کرتی ہے ، اور متعدد فلٹرنگ شرائط کے ساتھ مل کر اعلی امکانات کے رجحان کو توڑنے کے مواقع کی نشاندہی کرتی ہے۔ حکمت عملی کا مرکز مارکیٹ کی حرکیات میں ہونے والی تبدیلیوں کو پکڑنے میں ہے ، اور اسی وقت غوطہ خوری کی شکل کو داخلی سگنل کے طور پر استعمال کرتے ہوئے تجارت کی درستگی اور منافع بخش صلاحیت کو بہتر بنانا ہے۔
متحرک سائیکل ایڈجسٹمنٹ:
ٹرانسمیشن حساب کتاب اور ہموار:
رجحانات کا تعین:
شکل کی شناخت:
ٹریڈنگ سگنل پیدا:
ٹرانزیکشن مینجمنٹ:
خود کو اپنانے کی صلاحیت:
ایک سے زیادہ تصدیق کے طریقہ کار:
ٹویٹر پر ایک صارف نے لکھا:
خطرے کا انتظام:
لچکدار اور حسب ضرورت:
جعلی دراندازی کا خطرہ:
پسماندگی کا مسئلہ:
فکسڈ آپٹ آؤٹ میکانزم کی حدود:
ایک وقت کے فریم پر انحصار:
پیرامیٹر حساسیت:
ملٹی ٹائم فریم انٹیگریشن:
متحرک سٹاپ نقصان:
حجم پروفائل تجزیہ:
مشین لرننگ کی اصلاح:
جذباتی اشارے کی مجموعی تعداد:
تجزیہ:
متحرک طور پر انکولی متحرک توڑنے والی حکمت عملی ایک اعلی درجے کی تجارتی نظام ہے جس میں تکنیکی تجزیہ اور مقداری طریقوں کا امتزاج ہے۔ متحرک طور پر متحرک حجم کے چکر کو ایڈجسٹ کرنے ، غلاظت کی شکلوں کی نشاندہی کرنے ، اور متعدد فلٹرنگ شرائط کے ساتھ مل کر ، یہ حکمت عملی مختلف مارکیٹ کے ماحول میں موزوں طور پر اعلی امکانات کے رجحان کو توڑنے کے مواقع پر قبضہ کرنے کے قابل ہے۔ اگرچہ کچھ موروثی خطرات جیسے جعلی توڑ اور پیرامیٹر حساسیت موجود ہیں ، لیکن اس حکمت عملی میں متعدد ٹائم فریم تجزیہ ، متحرک رسک مینجمنٹ اور مشین لرننگ ایپلی کیشنز جیسے تجویز کردہ اصلاحی سمتوں کے ذریعہ اس کی استحکام اور منافع کو مزید بڑھانے کی صلاحیت موجود ہے۔
/*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