
ایک کثیر اشارے اجماع ٹریڈنگ حکمت عملی ایک مقداری تجارتی نظام ہے جس میں تین مختلف تکنیکی اشارے شامل ہیں ، جو اشارے کے مابین باہمی توثیق کے ذریعہ تجارتی سگنل کی تصدیق کرتے ہیں۔ اس حکمت عملی میں لیکویڈیٹی ویٹڈ سپر ٹرینڈ ((LWST) ، ٹرینڈ سگنل سسٹم اور ایک بااختیار لہراتی ٹرینڈ آسولیٹر ((WT) شامل ہیں ، جو صرف اس وقت خریدنے یا بیچنے کا کام انجام دیتا ہے جب کم سے کم دو اشارے ایک ہی سمت میں سگنل دیتے ہیں۔ اس اجماع کے طریقہ کار سے سگنل کی وشوسنییتا میں نمایاں اضافہ ہوتا ہے اور غلط ٹوٹ پھوٹ کے نتیجے میں ہونے والے نقصانات میں کمی آتی ہے۔ اس کے علاوہ ، حکمت عملی میں نقصانات کو روکنے اور روکنے کا طریقہ کار بنایا گیا ہے ، جو ہر تجارت کے لئے خطرہ کنٹرول کا فریم ورک فراہم کرتا ہے۔
کثیر اشاریہ اجماع ٹریڈنگ حکمت عملی کا بنیادی اصول مارکیٹ کی حالت کے کثیر جہتی تجزیہ کے ذریعے تجارت کی سمت کی تصدیق کرنا ہے:
لیکویڈیٹی وزنی سپر رجحان ((LWST): اے ٹی آر اور ٹرانزٹ کی معلومات کے ساتھ مل کر متحرک سپورٹ مزاحمتی بینڈ بنائیں۔ یہ اشارے روایتی سپر ٹرینڈ اشارے کو ٹرانزٹ ویٹ کے ساتھ جوڑتا ہے ، جس سے زیادہ ٹرانزٹ والے علاقوں میں بینڈوڈتھ زیادہ حساس ہوجاتا ہے۔ حساب کتاب کا عمل شامل ہے:
رجحان سگنل سسٹم: دوہری ای ایم اے سسٹم کا استعمال کرتے ہوئے قیمتوں کے رجحانات کا پتہ لگانے کے لئے۔ تیز اور آہستہ چلنے والی اوسط کے فیصد فرق کا موازنہ کرکے مارکیٹ کے رجحان کی طاقت کا فیصلہ کریں۔ جب تیز ای ایم اے آہستہ ای ایم اے سے زیادہ حد تک پہنچ جاتا ہے تو ایک کثیر سر سگنل پیدا ہوتا ہے۔ اس کے برعکس ، ایک خالی سر سگنل پیدا ہوتا ہے۔
بڑھا ہوا لہر رجحان oscillator ((WT): قیمتوں کے ان کے ہموار اوسط سے انحراف کی بنیاد پر تعدد کی قیمتوں کا حساب لگانا ، اوورلوڈ اوور سیل کی شناخت کے لئے استعمال کیا جاتا ہے۔ یہ اشارے مندرجہ ذیل اقدامات کے ذریعے سگنل تیار کرتا ہے:
ہم آہنگی سگنلنگ میکانزمحکمت عملی: تجارت صرف اس وقت کی جاتی ہے جب کم از کم دو اشارے متفق ہوں۔ یہ کثیر اشارے کی تعداد کی گنتی کے ذریعہ کیا جاتا ہے ((-3 سے 3 تک کی حد) ، خریدنے کا اشارہ اس وقت پیدا ہوتا ہے جب اس کی مقدار 2 کے برابر ہوتی ہے ، اور فروخت کا اشارہ اس وقت پیدا ہوتا ہے جب اس کی مقدار 2 کے برابر ہوتی ہے۔
رسک مینجمنٹ: ہر تجارت میں داخلے کی قیمت پر مبنی اسٹاپ نقصان کی حد (ڈیفالٹ 2٪) اور اسٹاپ پوزیشن (ڈیفالٹ 4٪) مقرر کی جاتی ہے ، جو کسی بھی شرائط کو پورا کرنے پر خود بخود باہر نکل جاتی ہے۔
سگنل فلٹرنگ میں اضافہ: متعدد اشارے کی اتفاق رائے کی ضرورت ہوتی ہے تاکہ تجارت کو انجام دیا جاسکے ، جس سے ایک ہی اشارے سے پیدا ہونے والے گمراہ کن سگنل کو نمایاں طور پر کم کیا جاسکتا ہے ، جس سے تجارت کی درستگی میں اضافہ ہوتا ہے۔
مختلف مارکیٹ کے حالات کو اپنانےتینوں اشارے مارکیٹ کی مختلف خصوصیات پر توجہ مرکوز کرتے ہیں ((رجحانات ، حرکیات ، اتار چڑھاؤ) تاکہ حکمت عملی مختلف مارکیٹ کے ماحول میں موثر رہ سکے۔
لیکویڈیٹی حساسیت: لیکویڈیٹی وزنی سپر ٹرینڈ ٹرانزیکشن حجم کی حرکیات کے مطابق حساسیت کو ایڈجسٹ کرتا ہے ، جس سے حکمت عملی اعلی لیکویڈیٹی والے علاقوں میں رجحان کی تبدیلی کو زیادہ تیزی سے پکڑ سکتی ہے ، جبکہ کم لیکویڈیٹی والے علاقوں میں زیادہ محتاط ہوتی ہے۔
بلٹ ان رسک مینجمنٹ: پہلے سے طے شدہ اسٹاپ اور اسٹاپ میکانزم ہر تجارت کے لئے واضح رسک ریٹرن فراہم کرتے ہیں ، اور ہر تجارت کے خطرے کو قابل قبول حد تک کنٹرول کرتے ہیں۔
بصری اور بدیہی اوزارحکمت عملی: ٹریڈرز کو فوری طور پر موجودہ مارکیٹ کی حالت اور اشارے کے سگنل کو سمجھنے میں مدد کے لئے ریئل ٹائم سگنل ٹیبل اور گرافک ٹیگ فراہم کرتا ہے۔
فنڈ مینجمنٹ انٹیگریشن: اکاؤنٹ کے حقوق اور مفادات پر مبنی پوزیشن سائز کی ترتیب کے ذریعہ ، سمارٹ فنڈ مینجمنٹ کو حاصل کریں ، اور ضرورت سے زیادہ خطرے سے بچنے سے گریز کریں۔
پیرامیٹر کی حساسیتحکمت عملی: ایک سے زیادہ ایڈجسٹ پیرامیٹرز کا استعمال کریں ، پیرامیٹرز کی غلط ترتیب سے زیادہ اصلاح یا سگنل کی کمی ہوسکتی ہے۔ حل: پیرامیٹرز کی مکمل حساسیت کا تجزیہ کریں ، متعدد مارکیٹ کے حالات میں مستحکم کارکردگی کا مظاہرہ کرنے والے پیرامیٹرز کا مجموعہ منتخب کریں۔
سگنل میں تاخیرحل: مختلف وقت کے ادوار کے لئے مختلف پیرامیٹرز کے مجموعے کو ترتیب دینے پر غور کیا جاسکتا ہے ، یا ایک زیادہ حساس قلیل مدتی اشارے کو شامل کیا جاسکتا ہے۔
افقی مارکیٹ کی ناکامیحل: ایک فلٹر شامل کریں جو خاص طور پر کراس ڈور مارکیٹوں کی شناخت کرتا ہے ، جب کراس ڈور مارکیٹوں کی شناخت ہوتی ہے تو ٹریڈنگ کو روکنے یا کراس ڈور کے لئے ڈیزائن کردہ حکمت عملی میں تبدیل کرنے کے لئے۔
فکسڈ سٹاپ نقصان کا خطرہحل: اے ٹی آر یا تاریخی اتار چڑھاو کی شرح پر مبنی اسٹاپ فاصلہ کو متحرک طور پر ایڈجسٹ کریں۔
فنڈ مینجمنٹ کے خطراتحل: پوزیشن کا سائز مارکیٹ کی صورتحال اور سگنل کی شدت کی نقل و حرکت کے مطابق ایڈجسٹ کریں ، اور ایک وکندریقرت تجارتی حکمت عملی پر عمل کریں۔
متحرک پیرامیٹرز ایڈجسٹمنٹ:
مارکیٹ کے ماحول کا فلٹر شامل کریں۔:
سٹاپ نقصان کے طریقہ کار کو بہتر بنائیں:
سگنل طاقت درجہ بندی:
وقت فلٹر:
ملٹی میٹر اجماع ٹریڈنگ حکمت عملی نے ایک مضبوط ٹریڈنگ سسٹم تشکیل دیا ہے جس میں لیکویڈیٹی ویٹڈ سپر ٹرینڈ ، ٹرینڈ سگنل سسٹم اور ایک بہتر لہر والے ٹرینڈ آسولیٹر شامل ہیں۔ اس کا بنیادی فائدہ یہ ہے کہ ملٹی میٹر اجماع میکانزم نے سگنل کی وشوسنییتا میں نمایاں اضافہ کیا ہے ، جبکہ لیکویڈیٹی ویٹڈ جزو حکمت عملی کو مارکیٹ کی گہرائی کی حساسیت میں اضافہ کرتا ہے۔ بلٹ ان رسک مینجمنٹ فریم ورک اس بات کو یقینی بناتا ہے کہ ہر تجارت میں پہلے سے طے شدہ رسک ریٹرن تناسب ہو۔
اس کے باوجود ، حکمت عملی میں اصلاح کی گنجائش موجود ہے ، خاص طور پر پیرامیٹرز کی موافقت ، مارکیٹ کی حیثیت کی شناخت اور متحرک اسٹاپ نقصانات کے سلسلے میں۔ سفارشات کی اصلاح کی سمت کو نافذ کرکے ، خاص طور پر مارکیٹ کے ماحول کے فلٹرز اور سگنل کی طاقت کے درجہ بندی کا نظام قائم کرکے ، حکمت عملی مارکیٹ کے مختلف حالات میں موافقت اور استحکام کو مزید بڑھا سکتی ہے۔
مجموعی طور پر ، یہ ایک اچھی طرح سے ڈیزائن کیا گیا مقداری تجارتی نظام ہے جو تجربہ کار تاجروں کے لئے ریئل اسٹیٹ سے پہلے کی جانچ اور پیرامیٹرز کی اصلاح کے لئے موزوں ہے۔ حکمت عملی کا ماڈیولر ڈیزائن بھی انفرادی ضروریات کے مطابق ترمیم اور توسیع کو آسان بناتا ہے۔
/*backtest
start: 2024-03-25 00:00:00
end: 2025-03-24 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Multi-Indicator Consensus Strategy", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// =================== Input Parameters ===================
// Liquidity Weighted Supertrend
lwst_period = input.int(10, "LWST Period", minval=1, tooltip="Period for ATR calculation")
lwst_multiplier = input.float(3.0, "LWST Multiplier", minval=0.1, tooltip="Multiplier for ATR bands")
lwst_length = input.int(20, "Volume SMA Length", minval=1, tooltip="Length for volume SMA")
// Trend Signals
trend_length = input.int(14, "Trend Length", minval=1, tooltip="Length for EMA calculation")
trend_threshold = input.float(0.5, "Trend Threshold", minval=0.1, tooltip="Percentage threshold for trend signals")
// Enhanced Wavetrend
wt_channel_length = input.int(9, "WT Channel Length", minval=1, tooltip="Smoothing period for initial calculations")
wt_average_length = input.int(12, "WT Average Length", minval=1, tooltip="Smoothing period for final signal")
wt_ma_length = input.int(3, "WT MA Length", minval=1, tooltip="Moving average length for signal line")
wt_overbought = input.float(53, "WT Overbought", minval=0, tooltip="Level to identify overbought conditions")
wt_oversold = input.float(-53, "WT Oversold", minval=-100, tooltip="Level to identify oversold conditions")
// Risk Management
sl_percent = input.float(2.0, "Stop Loss %", minval=0.1, tooltip="Stop loss percentage from entry")
tp_percent = input.float(4.0, "Take Profit %", minval=0.1, tooltip="Take profit percentage from entry")
// =================== Indicator 1: Liquidity Weighted Supertrend ===================
// Volume-weighted component for dynamic sensitivity
vol_sma = ta.sma(volume, lwst_length)
vol_weight = volume / vol_sma
// ATR-based bands with volume weighting
atr = ta.atr(lwst_period)
upperBand = hl2 + lwst_multiplier * atr * vol_weight
lowerBand = hl2 - lwst_multiplier * atr * vol_weight
// Trend determination based on price action
var float lwst_trend = 0.0
lwst_trend := close > lwst_trend[1] ? 1 : close < lwst_trend[1] ? -1 : lwst_trend[1]
// =================== Indicator 2: Trend Signals ===================
// Dual EMA system for trend detection
fast_ema = ta.ema(close, trend_length)
slow_ema = ta.ema(close, trend_length * 2)
trend_diff = (fast_ema - slow_ema) / slow_ema * 100
trend_signal = trend_diff > trend_threshold ? 1 : trend_diff < -trend_threshold ? -1 : 0
// =================== Indicator 3: Enhanced Wavetrend ===================
// Calculate Wavetrend components
ap = hlc3 // Typical price
esa = ta.ema(ap, wt_channel_length) // Smoothed price
d = ta.ema(math.abs(ap - esa), wt_channel_length) // Average volatility
ci = (ap - esa) / (0.015 * d) // Base oscillator
tci = ta.ema(ci, wt_average_length) // Smoothed oscillator
// Generate main and signal lines
wt1 = tci
wt2 = ta.sma(wt1, wt_ma_length)
// Generate Wavetrend Signal based on overbought/oversold conditions
wt_signal = 0
wt_signal := wt1 > wt_overbought and wt2 > wt_overbought ? -1 :
wt1 < wt_oversold and wt2 < wt_oversold ? 1 :
wt_signal[1]
// =================== Consensus Signal Generation ===================
// Count bullish signals (1 point for each bullish indicator)
var int consensus_count = 0
consensus_count := (lwst_trend == 1 ? 1 : 0) +
(trend_signal == 1 ? 1 : 0) +
(wt_signal == 1 ? 1 : 0)
// Generate trading signals when majority (2+ indicators) agree
bool buy_signal = consensus_count >= 2
bool sell_signal = consensus_count <= -2
// =================== Trade Execution ===================
// Long position entry and exit with risk management
if (buy_signal and strategy.position_size <= 0)
strategy.entry("Long", strategy.long)
strategy.exit("Long TP/SL", "Long",
profit = close * tp_percent / 100,
loss = close * sl_percent / 100)
// Short position entry and exit with risk management
if (sell_signal and strategy.position_size >= 0)
strategy.entry("Short", strategy.short)
strategy.exit("Short TP/SL", "Short",
profit = close * tp_percent / 100,
loss = close * sl_percent / 100)
// =================== Visualization ===================
// Signal markers for entry points
plotshape(buy_signal ? low : na, "Buy Signal", shape.triangleup, location.belowbar, color.green, size=size.small)
plotshape(sell_signal ? high : na, "Sell Signal", shape.triangledown, location.abovebar, color.red, size=size.small)
// Indicator lines
plot(wt1, "Wavetrend 1", color.blue, linewidth=1)
plot(wt2, "Wavetrend 2", color.orange, linewidth=1)
plot(wt_overbought, "Overbought", color.red, linewidth=1)
plot(wt_oversold, "Oversold", color.green, linewidth=1)
plot(fast_ema, "Fast EMA", color.yellow, linewidth=1)
plot(slow_ema, "Slow EMA", color.white, linewidth=1)
plot(lwst_trend == 1 ? upperBand : na, "Upper Band", color.green, linewidth=2)
plot(lwst_trend == -1 ? lowerBand : na, "Lower Band", color.red, linewidth=2)
// =================== Information Table ===================
// Real-time display of indicator signals
var table info = table.new(position.top_right, 2, 4)
table.cell(info, 0, 0, "Indicator", bgcolor=color.gray, text_color=color.white)
table.cell(info, 1, 0, "Signal", bgcolor=color.gray, text_color=color.white)
table.cell(info, 0, 1, "LWST", text_color=color.white)
table.cell(info, 1, 1, str.tostring(lwst_trend), text_color=lwst_trend == 1 ? color.green : color.red)
table.cell(info, 0, 2, "Trend", text_color=color.white)
table.cell(info, 1, 2, str.tostring(trend_signal), text_color=trend_signal == 1 ? color.green : color.red)
table.cell(info, 0, 3, "Wavetrend", text_color=color.white)
table.cell(info, 1, 3, str.tostring(wt_signal), text_color=wt_signal == 1 ? color.green : color.red)