
یہ حکمت عملی ایک اعلی درجے کی ٹرینڈ ٹریکنگ سسٹم ہے جس میں ایک سپر ٹرینڈ اشارے ((Supertrend) اور ایک کثیر متحرک فلٹر شامل ہیں ، جو خاص طور پر مضبوط رجحانات کو پکڑنے کے لئے ڈیزائن کیا گیا ہے۔ اس کا بنیادی مرکز ایک سپر ٹرینڈ اشارے کا استعمال کرتا ہے جو اے ٹی آر ((Average True Range) کی متحرک ایڈجسٹمنٹ کرتا ہے ، ای ایم اے ((Index Moving Average) اور ڈی ای ایم اے ((Double Index Moving Average)) کو رجحان کی تصدیق کے اوزار کے طور پر استعمال کرتا ہے ، جبکہ آر ایس آئی ((Relatively Weak Indicators)) اور ٹریڈ حجم فلٹر کو شامل کرتا ہے۔ اس حکمت عملی میں اے ٹی آر پر مبنی اسٹاپ نقصان ، اسٹاپ اور ٹریکنگ نقصان کے میکانزم شامل ہیں ، اور مختلف تجارتی طرزوں کے لئے متعدد ٹائم سائیکل پری سیٹ پیرامیٹرز فراہم کرتے ہیں۔ خاص طور پر قابل ذکر ہے کہ اس حکمت عملی میں ایک ذہین دوبارہ داخل ہونے کی منطق ہے ، جو اوپر کی طرف رجحان کو ایڈجسٹ کرنے کے مواقع پر قبضہ کرنے کے قابل ہے
اس حکمت عملی کا بنیادی اصول ایک جامع تجارتی فیصلے کا فریم ورک بنانے کے لئے ایک کثیر پرت سگنل کی تصدیق کے طریقہ کار پر مبنی ہے:
سپر ٹرینڈ کور سگنل سسٹم: اے ٹی آر کا استعمال کرتے ہوئے متحرک رجحان کی پٹیوں کا حساب لگائیں ، جب بند ہونے والی قیمت نیچے کی طرف سے ٹوٹ جاتی ہے تو خریدنے کا اشارہ ہوتا ہے ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
ٹرانسمیشن تصدیق فلٹراس بات کو یقینی بنانا کہ تجارت کی سمت اہم رجحانات کے مطابق ہے ، اور مخالف تجارت سے بچنے کے لئے قیمتوں کو قلیل مدتی EMA (ڈیفالٹ 21 سائیکل) اور طویل مدتی DEMA (ڈیفالٹ 200 سائیکل) سے اوپر رکھنے کی ضرورت ہے۔
سگنل کی طاقت کی تصدیق: آر ایس آئی ((ڈیفالٹ کی ضرورت> 50)) کے ذریعہ قیمت کی نقل و حرکت کی تصدیق ، اور اس کے ای ایم اے ((ڈیفالٹ 20 سائیکل) سے زیادہ تجارت کی تصدیق مارکیٹ میں شرکت کی تصدیق ، داخلہ سگنل کے معیار کو بہتر بنائیں۔
سمارٹ دوبارہ داخلہ: ایک تصدیق شدہ اوپر کی طرف رجحان میں ، حکمت عملی ایک بار پھر داخل ہوجائے گی جب قیمتوں میں واپسی کے بعد ای ایم اے پر واپس آجائے گی اور دیگر شرائط کو پورا کرے گی ، اور اس رجحان میں جاری رہنے کے مواقع کو مؤثر طریقے سے پکڑ لے گی۔
خطرے کے انتظام کے نظام:
کثیر مدت پیرامیٹرز پیش سیٹ کریں:
اس حکمت عملی کا گہرائی سے تجزیہ کیا گیا ہے اور اس کے درج ذیل نمایاں فوائد ہیں:
لچکدار: ٹرانسمیشن اشارے اے ٹی آر کی متحرک ایڈجسٹمنٹ پر مبنی ہے ، جو مارکیٹ میں اتار چڑھاؤ کی تبدیلیوں کو خود بخود اپنانے کے قابل ہے ، جو مختلف مارکیٹ کے ماحول میں موثر ہے۔
کثیر سطح کی تصدیق سے جعلی سگنل میں کمی: ای ایم اے، ڈی ایم اے، آر ایس آئی اور تجارت کی مقدار کی ایک سے زیادہ تصدیق کے ذریعہ ، جعلی سگنل کے خطرے کو نمایاں طور پر کم کیا گیا ہے ، اور تجارت کے معیار کو بہتر بنایا گیا ہے۔
اسٹیلجنٹ ریٹرننگ نے مسلسل رجحانات کو پکڑ لیا: ایک جدید دوبارہ داخلہ منطق جو رجحان میں اتار چڑھاؤ کا مؤثر استعمال کرتے ہوئے ، اور فنڈز کے استعمال کی کارکردگی کو بہتر بنانے کے لئے ، بڑھتے ہوئے رجحان میں واپسی کے بعد دوبارہ داخل ہونے کی اجازت دیتا ہے۔
مکمل خطرے کے انتظام کے نظاماے ٹی آر پر مبنی بلٹ ان اسٹاپ ، اسٹاپ اور ٹریکنگ اسٹاپ میکانزم ، جو ایک ہی تجارت میں ہونے والے نقصان کو محدود کرتا ہے ، منافع کو مؤثر طریقے سے محفوظ کرتا ہے اور واپسی کے خطرے کو کم کرتا ہے۔
کثیر دورانیہ پیش سیٹ آسان آپریشن: مختلف ٹائم فریموں کے لئے پہلے سے طے شدہ پیرامیٹرز ، حکمت عملی کو متعدد تجارتی ادوار پر آسانی سے نافذ کرنے کے لئے ، مختلف تاجروں کے وقت کی ترجیحات کے مطابق۔
بصری معاون بصری واضح: رنگ بھرنے کے ذریعے اوپر اور نیچے کے رجحانات میں فرق کریں ، واضح خرید و فروخت کے اشارے کے ساتھ ، مارکیٹ کی حالت کو واضح کریں ، اور تجارتی فیصلوں میں آسانی پیدا کریں۔
عملی طور پر تصدیق شدہ: سورج کی لکیروں پر تقریبا 60 فیصد جیت کی شرح اور 4 سے زیادہ منافع کا عنصر دکھاتا ہے ، خاص طور پر رجحان کے واضح مارکیٹ کے ماحول کے لئے موزوں ہے۔
اس جامع حکمت عملی کے باوجود ، مندرجہ ذیل ممکنہ خطرات موجود ہیں:
ہلچل کا شکار مارکیٹ کی کارکردگی خراب: غیر واضح رجحانات والی بازاروں میں ، اسٹاپ نقصانات کو بار بار متحرک کیا جاسکتا ہے ، جس کے نتیجے میں چھوٹے چھوٹے نقصانات کا تسلسل ہوتا ہے۔ اس کا حل یہ ہے کہ جب مارکیٹ کی ساخت غیر واضح ہو تو تجارت کو روک دیا جائے ، یا سگنل کی حساسیت کو کم کرنے کے لئے اے ٹی آر ضرب کو بڑھایا جائے۔
فلٹرنگ کی شرائط سے کچھ مواقع ضائع ہو سکتے ہیں: متعدد فلٹرنگ شرائط سگنل کے معیار کو بہتر بناتی ہیں ، لیکن اس سے کچھ ابتدائی رجحان کے مواقع ضائع ہوسکتے ہیں۔ تاجر انفرادی خطرے کی ترجیحات کے مطابق فلٹرنگ کی شرائط کی سختی کو ایڈجسٹ کرنے پر غور کرسکتے ہیں۔
پیرامیٹر کی حساسیت: اے ٹی آر سائیکل اور ضرب کی ترتیبات حکمت عملی کی کارکردگی پر نمایاں اثر ڈالتی ہیں ، مختلف مارکیٹ کے حالات میں مختلف پیرامیٹرز کی ضرورت ہوسکتی ہے۔ یہ مشورہ دیا جاتا ہے کہ پیرامیٹرز کی ترتیبات کو خاص مارکیٹ کے ل optim بہتر بنایا جائے۔
واپسی کا خطرہ: جائزے سے پتہ چلتا ہے کہ پوری پوزیشن استعمال کرنے پر بڑے پیمانے پر واپسی کا امکان ہے ((100٪ + تک) ◄ ۔ فنڈ مینجمنٹ پر سختی سے عمل درآمد کرنا ضروری ہے ، ہر تجارت پر 1 سے 2٪ کے درمیان خطرہ کنٹرول کرنا ◄ ۔
تاریخی اعداد و شمار کی محدودیت: حکمت عملی بنیادی طور پر ایک مخصوص مارکیٹ اور وقت کی مدت کے اندر اندر کی جانچ پڑتال کی جاتی ہے ، جس میں ممکنہ طور پر زیادہ سے زیادہ فٹ ہونے کا خطرہ ہوسکتا ہے۔ عملی استعمال سے پہلے وسیع تر مارکیٹ اور وقت کی مدت کی جانچ کی جانی چاہئے۔
انتہائی مارکیٹ کے حالات کی جانچ کا فقدان: حکمت عملی کو مارکیٹ میں شدید اتار چڑھاو یا لیکویڈیٹی بحران جیسے انتہائی حالات کی جانچ نہیں کی جاسکتی ہے ، اور اس طرح کے حالات میں اس کی کارکردگی کا اندازہ نہیں ہے۔
کوڈ کی گہرائی کے تجزیے کے ذریعہ ، اس حکمت عملی کو مندرجہ ذیل سمتوں میں بہتر بنایا جاسکتا ہے:
خود کار طریقے سے پیرامیٹرز کو ایڈجسٹ: مارکیٹ میں اتار چڑھاو کی بنیاد پر اے ٹی آر ضرب اور دورانیے کو ایڈجسٹ کرنے کا طریقہ کار تیار کریں ، تاکہ حکمت عملی خود بخود مارکیٹ کی حالت میں تبدیلی کے مطابق ہو۔ مثال کے طور پر ، جب اتار چڑھاؤ بڑھتا ہے تو اے ٹی آر ضرب کو بڑھانا ، اتار چڑھاؤ کم ہونے پر اے ٹی آر ضرب کو کم کرنا۔
مجموعی مارکیٹ کی حالت کی درجہ بندی: مارکیٹ کی حیثیت کی شناخت کے ماڈیول متعارف کرانے ((جیسے بلین بینڈوڈتھ ، ADX وغیرہ کا استعمال کریں) ، حکمت عملی کے پیرامیٹرز کو خود بخود ایڈجسٹ کریں یا تجارت کو معطل کریں ، اس بات پر منحصر ہے کہ مارکیٹ رجحان میں ہے یا اتار چڑھاؤ کی حالت میں ہے۔
کثیر دورانیہ تجزیہ فریم ورک: ایک سے زیادہ دورانیہ تجزیہ کی صلاحیت میں اضافہ ، اعلی ٹائم فریم رجحانات کو موجودہ ٹائم فریم کے مطابق کرنے کے لئے ٹریڈنگ پر عملدرآمد کی ضرورت ہے ، اور رجحانات کے فیصلے کی درستگی کو بہتر بناتا ہے۔
دوبارہ داخلہ منطق کو بہتر بنائیں: دوبارہ داخلہ کی شرائط کو بہتر بنانا ، فبونیکی ریفریجریشن کی سطح یا کلیدی حمایت کی تصدیق میں اضافہ کرنے پر غور کریں ، دوبارہ داخلہ پوائنٹس کی درستگی کو بہتر بنائیں۔
فنڈ مینجمنٹ کی اصلاح: متحرک پوزیشن مینجمنٹ کو لاگو کریں ، مارکیٹ میں اتار چڑھاؤ ، اکاؤنٹ کی خالص مالیت اور مسلسل خسارے کی صورت حال کی بنیاد پر پوزیشن کا سائز خود بخود ایڈجسٹ کریں ، فنڈز کی منحنی نمائش کو بہتر بنائیں۔
مارکیٹ کے جذبات کے اشارے کو شامل کیا گیا۔: مارکیٹ کے جذبات کے اشارے جیسے VIX انڈیکس ((تذبذب کا انڈیکس) یا تجارت کے حجم میں تبدیلی کی شرح کو مربوط کریں ، مارکیٹ میں گھبراہٹ یا ضرورت سے زیادہ پر امید ہونے پر حکمت عملی کے عمل کو ایڈجسٹ کریں۔
مشین لرننگ کی اصلاح: مشین لرننگ الگورتھم کا استعمال کرتے ہوئے پیرامیٹرز کے انتخاب اور داخلے کے وقت کو بہتر بنانا ، تاریخی ڈیٹا ٹریننگ ماڈل کے ذریعہ بہترین تجارتی پیرامیٹرز کے مجموعے کی پیش گوئی کرنا۔
ایک سے زیادہ دورانیے کے ماورائے رجحان ای ایم اے کی متحرک فلٹرنگ حکمت عملی ایک اچھی طرح سے ڈیزائن کیا گیا رجحان سے باخبر رہنے کا نظام ہے ، جس میں ماورائے رجحان کے اشارے اور ایک سے زیادہ متحرک فلٹر کے ساتھ مل کر ایک جامع تجارتی فیصلہ سازی کا فریم ورک تشکیل دیا گیا ہے۔ اس کے بنیادی فوائد میں خودکشی ، متعدد پرتوں کی تصدیق ، جعلی سگنل کو کم کرنا ، مسلسل رویے کو پکڑنے کے لئے ذہین دوبارہ داخلہ ، اور ایک مکمل خطرے کے انتظام کا نظام شامل ہے۔ یہ حکمت عملی خاص طور پر رجحانات کے واضح مارکیٹ کے ماحول کے لئے موزوں ہے ، جس نے دن کی لائن پر ایک عمدہ کارکردگی کا مظاہرہ کیا ہے۔
تاہم ، یہ حکمت عملی ہلچل والی منڈیوں میں خراب کارکردگی کا مظاہرہ کرسکتی ہے ، اور اس میں پیرامیٹرز کی حساسیت اور ممکنہ واپسی کا خطرہ ہے۔ حکمت عملی کی استحکام کو مزید بڑھانے کے ل consider ، اس پر غور کیا جاسکتا ہے کہ وہ پیرامیٹرز کو ایڈجسٹ کرنے ، مارکیٹ کی حالت کی درجہ بندی کو مربوط کرنے ، ایک کثیر دورانیہ تجزیاتی فریم ورک کی تعمیر ، واپسی کی منطق کو بہتر بنانے ، فنڈ مینجمنٹ کو بہتر بنانے ، مارکیٹ کے جذبات کے اشارے میں اضافہ کرنے اور مشین لرننگ ٹکنالوجی کو لاگو کرنے کے لئے تیار کیا جائے۔
آخر میں ، یہ حکمت عملی رجحان سے باخبر رہنے والے تجارت کے لئے ایک سخت تکنیکی اشارے ، خطرہ کے انتظام کے لئے ایک بہترین فریم ورک فراہم کرتی ہے ، لیکن اس کا استعمال کرتے وقت ہمیشہ خطرے کے کنٹرول کی اہمیت کو ذہن میں رکھنا چاہئے ، ہر تجارت کے خطرے کو قابل قبول حد تک محدود رکھنا چاہئے ، اور حکمت عملی کے پیرامیٹرز کو انفرادی تجارت کے انداز اور مارکیٹ کے ماحول کے مطابق مناسب طریقے سے ایڈجسٹ کرنا چاہئے۔
/*backtest
start: 2024-08-15 00:00:00
end: 2025-08-13 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Supertrend EMA Strategy _V29", overlay=true, format=format.price, precision=2, initial_capital=1000)
// Inputs
tf_preset = input.string("Manual", title="Timeframe Preset", options=["Manual", "Auto-1H/4H", "Auto-1D", "Auto-1W"])
atr_period = input.int(10, title="ATR Period")
src = hl2
atr_multiplier = input.float(3.0, title="ATR Multiplier", step=0.1)
change_atr = input.bool(true, title="Change ATR Calculation Method?")
show_signals = input.bool(true, title="Show Buy/Sell Signals?")
highlighting = input.bool(true, title="Highlighter On/Off?")
ema_length = input.int(21, title="EMA Length")
dema_length = input.int(200, title="DEMA Length")
tp_multiplier = input.float(3.0, title="Take Profit Multiplier (ATR, 0=off)", step=0.5)
allow_long = input.bool(true, title="Allow Long Trades")
allow_short = input.bool(false, title="Allow Short Trades")
sl_multiplier = input.float(1.0, title="Stop Loss Multiplier (ATR, 0=off)", step=0.5)
use_vol_filter = input.bool(true, title="Use Volume Filter?")
vol_ema_length = input.int(20, title="Volume EMA Length", minval=1)
use_rsi_filter = input.bool(true, title="Use RSI Filter?")
rsi_length = input.int(14, title="RSI Length")
rsi_threshold = input.int(50, title="RSI Buy Threshold")
// Auto-adjust
int atr_period_final = atr_period
float atr_mult_final = atr_multiplier
string preset_label = tf_preset
if tf_preset == "Auto-1H/4H"
atr_period_final := 10
atr_mult_final := 3.0
preset_label := "1H/4H"
else if tf_preset == "Auto-1D"
atr_period_final := 14
atr_mult_final := 3.0
preset_label := "Daily"
else if tf_preset == "Auto-1W"
atr_period_final := 20
atr_mult_final := 4.0
preset_label := "Weekly"
// Show settings
if barstate.islast
label.new(x=bar_index[barstate.isrealtime ? 0 : 50], y=high, text="Preset: " + preset_label + "\nATR: " + str.tostring(atr_period_final) + "\nMult: " + str.tostring(atr_mult_final), color=color.white, style=label.style_label_left, textcolor=color.black, size=size.small, yloc=yloc.abovebar)
// Calculations
atr2 = ta.sma(ta.tr, atr_period_final)
atr = change_atr ? ta.atr(atr_period_final) : atr2
up = src - (atr_mult_final * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + (atr_mult_final * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
buy_signal = trend == 1 and trend[1] == -1
sell_signal = trend == -1 and trend[1] == 1
ema = ta.ema(close, ema_length)
ema1 = ta.ema(close, dema_length)
dema = 2 * ema1 - ta.ema(ema1, dema_length)
vol_ema = ta.ema(volume, vol_ema_length)
rsi = ta.rsi(close, rsi_length)
// Plots (global)
up_plot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
dn_plot = plot(trend == -1 ? dn : na, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
plot(dema, title="DEMA 200", color=color.blue, style=plot.style_linebr, linewidth=2)
plotshape(buy_signal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green)
plotshape(buy_signal and show_signals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white)
plotshape(sell_signal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red)
plotshape(sell_signal and show_signals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white)
m_plot = plot(ohlc4, title="", style=plot.style_circles, linewidth=1)
long_fill_color = highlighting ? (trend == 1 ? color.new(color.green, 90) : color.white) : color.white
short_fill_color = highlighting ? (trend == -1 ? color.new(color.red, 90) : color.white) : color.white
fill(m_plot, up_plot, title="UpTrend Highlighter", color=long_fill_color)
fill(m_plot, dn_plot, title="DownTrend Highlighter", color=short_fill_color)
plot(ema, title="EMA", color=color.blue, linewidth=2)
// Strategy Logic with Re-Entry (in if for skip)
var float entry_price = na
vol_condition = not use_vol_filter or volume > vol_ema
rsi_condition = not use_rsi_filter or rsi > rsi_threshold
buy_cond_met = buy_signal and close > ema and close > dema and allow_long and vol_condition and rsi_condition
re_entry_cond = trend == 1 and strategy.position_size == 0 and close[1] < ema and close > ema and close > dema and vol_condition and rsi_condition
sell_cond_met = sell_signal and strategy.position_size > 0 and (close < dema or true)
if buy_cond_met or re_entry_cond
strategy.entry("Long", strategy.long)
entry_price := close
if sell_cond_met
strategy.close("Long")
entry_price := na
if sell_signal and close < ema and close < dema and allow_short and vol_condition
strategy.entry("Short", strategy.short)
entry_price := close
if buy_signal and strategy.position_size < 0
strategy.close("Short")
entry_price := na
// SL & TP with Trailing
if strategy.position_size != 0 and not na(entry_price)
if sl_multiplier > 0
sl_price = strategy.position_size > 0 ? entry_price - (sl_multiplier * atr) : entry_price + (sl_multiplier * atr)
trail_condition = strategy.position_size > 0 ? (close - entry_price > atr) : (entry_price - close > atr)
trail_sl = strategy.position_size > 0 ? up : dn
final_sl = trail_condition ? trail_sl : sl_price
strategy.exit("SL Exit", stop=final_sl)
if tp_multiplier > 0
tp_price = strategy.position_size > 0 ? entry_price + (tp_multiplier * atr) : entry_price - (tp_multiplier * atr)
strategy.exit("TP Exit", limit=tp_price)
// Alerts
alertcondition(buy_signal, title="SuperTrend Buy", message="SuperTrend Buy!")
alertcondition(sell_signal, title="SuperTrend Sell", message="SuperTrend Sell!")
change_cond = trend != trend[1]
alertcondition(change_cond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")