وسائل لوڈ ہو رہے ہیں... لوڈنگ...

موافقت پذیر رجحان بہاؤ متعدد فلٹر ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2025-01-06 11:58:25
ٹیگز:ای ایم اےایس ایم اےایم اے سی ڈیاے ٹی آرHLC3

img

جائزہ

یہ حکمت عملی متعدد تکنیکی اشارے فلٹرز پر مبنی ایک انکولی رجحان کے بعد کا نظام ہے۔ یہ مختلف تکنیکی اشارے کو یکجا کرتا ہے جن میں ایکسپونینشل موونگ ایوریج (ای ایم اے) ، سادہ موونگ ایوریج (ایس ایم اے) ، اور موونگ ایوریج کنورجنس ڈائیورجنس (ایم اے سی ڈی) شامل ہیں ، جس سے مارکیٹ کے مختلف ماحول کو موثر رجحان کی گرفتاری اور خطرے کے کنٹرول کے ل adjust متحرک طور پر پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے۔ یہ حکمت عملی ایک پرتوں پر مشتمل فلٹرنگ میکانزم کو استعمال کرتی ہے ، جس سے متعدد تکنیکی اشارے کے ہم آہنگی کے امتزاج کے ذریعے تجارتی سگنلز کی وشوسنییتا میں نمایاں اضافہ ہوتا ہے۔

حکمت عملی کا اصول

بنیادی منطق تین پرت فلٹرنگ میکانزم پر مبنی ہے:

  1. انکولی رجحان کی شناخت کی پرت: رجحان کی بنیاد کی حساب کتاب کے لئے تیز اور سست EMAs کا ایک مجموعہ استعمال کرتا ہے اور مارکیٹ کی اتار چڑھاؤ کی بنیاد پر متحرک طور پر اوپری اور نچلی چینل لائنوں کو ایڈجسٹ کرتا ہے۔
  2. ایس ایم اے فلٹر لیئر: سادہ حرکت پذیر اوسط کا استعمال کرتے ہوئے قیمت کی نقل و حرکت کی سمت کو مجموعی رجحان کے ساتھ سیدھ کرتا ہے۔
  3. ایم اے سی ڈی کی تصدیق کی پرت: ایم اے سی ڈی اشارے کی رجحان کی تصدیق کی فعالیت کا استعمال کرتے ہوئے تجارتی سگنل کی مزید توثیق کرتی ہے۔

تجارتی سگنل کی تخلیق کے لئے تمام فلٹر شرائط کو پورا کرنے کی ضرورت ہوتی ہے: رجحان کی منتقلی ، ایس ایم اے سمت کی تصدیق ، اور ایم اے سی ڈی سگنل لائن کی حمایت۔ اس حکمت عملی میں اکاؤنٹ ایکویٹی پر مبنی متحرک پوزیشن مینجمنٹ سسٹم بھی شامل ہے ، جو لیوریج فیکٹر کے ذریعے پوزیشن کے سائز کو خود بخود ایڈجسٹ کرتا ہے۔

حکمت عملی کے فوائد

  1. مضبوط موافقت: حکمت عملی متحرک پیرامیٹر ایڈجسٹمنٹ کے ذریعے مختلف مارکیٹ کے ماحول کو اپنانے کے قابل ہے۔
  2. جامع رسک کنٹرول: متعدد فلٹرنگ میکانزم غلط سگنل کے امکان کو نمایاں طور پر کم کرتے ہیں۔
  3. اعلی حسب ضرورت: صارفین ذاتی تجارتی انداز کے مطابق مختلف پیرامیٹرز کو ایڈجسٹ کرسکتے ہیں۔
  4. اعلی آٹومیشن لیول: خودکار تجارتی نظاموں کے ساتھ آسان انضمام کے لئے JSON فارمیٹ انتباہی پیغامات کی حمایت کرتا ہے۔
  5. اچھی نمائش: رجحان بینڈ اور سگنل مارکر سمیت بھرپور بصری رائے فراہم کرتا ہے۔

حکمت عملی کے خطرات

  1. رجحان انحصار: اتار چڑھاؤ والے بازاروں میں اکثر غلط سگنل پیدا کرسکتے ہیں۔
  2. تاخیر کا خطرہ: متعدد فلٹرنگ میکانزم کے نتیجے میں انٹری ٹائمنگ میں تاخیر ہوسکتی ہے۔
  3. پیرامیٹر حساسیت: پیرامیٹر کے مختلف مجموعے کے نتیجے میں حکمت عملی کی کارکردگی میں اہم تغیرات ہوسکتے ہیں۔
  4. لیورج کا خطرہ: زیادہ لیورج نقصانات کو بڑھا سکتا ہے۔

حکمت عملی کی اصلاح کی ہدایات

  1. Volatility Adaptation: ATR پر مبنی متحرک سٹاپ نقصان میکانزم شامل کریں۔
  2. مارکیٹ ماحول کی پہچان: مختلف مارکیٹ کے ماحول میں مختلف پیرامیٹر مجموعوں کا استعمال کرنے کے لئے مارکیٹ کی حالت کی درجہ بندی کا نظام شامل کریں.
  3. سگنل کی کوالٹی سکورنگ: سگنل کی طاقت کی بنیاد پر پوزیشنوں کو متحرک طور پر ایڈجسٹ کرنے کے لئے سگنل کی طاقت سکورنگ کا نظام قائم کریں۔
  4. کیپٹل مینجمنٹ کی اصلاح: زیادہ درست پوزیشن کنٹرول کے لئے زیادہ نفیس منی مینجمنٹ الگورتھم متعارف کروائیں۔

خلاصہ

یہ حکمت عملی کثیر پرت فلٹرنگ میکانزم اور متحرک پیرامیٹر ایڈجسٹمنٹ کے ذریعے نسبتا reliable قابل اعتماد رجحان کی پیروی کرتی ہے۔ اگرچہ تاخیر اور پیرامیٹر انحصار کے کچھ خطرات موجود ہیں ، لیکن معقول پیرامیٹر اصلاح اور رسک کنٹرول کے اقدامات کے ذریعہ اصل تجارت میں مستحکم کارکردگی حاصل کی جاسکتی ہے۔ تاجروں کو مشورہ دیا جاتا ہے کہ وہ براہ راست تجارت سے پہلے انفرادی رسک رواداری کے مطابق پیرامیٹر کی ترتیبات کو مکمل طور پر بیک ٹیسٹ کریں اور ایڈجسٹ کریں۔


/*backtest
start: 2024-12-29 00:00:00
end: 2025-01-05 00:00:00
period: 45m
basePeriod: 45m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Adaptive Trend Flow Strategy with Filters for SPX", overlay=true, max_labels_count=500, 
     initial_capital=1000, commission_type=strategy.commission.cash_per_order, commission_value=0.01, slippage=2,
     margin_long=20, margin_short=20, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// User-defined inputs for trend logic
atr           = input.int(14, "Main Length", minval=2, group = "Find more strategies like this on pineindicators.com")
length        = input.int(2, "Main Length", minval=2)
smooth_len    = input.int(2, "Smoothing Length", minval=2)
sensitivity   = input.float(2.0, "Sensitivity", step=0.1)

// User-defined inputs for SMA filter
use_sma_filter = input.bool(true, "Enable SMA Filter?")
sma_length = input.int(4, "SMA Length", minval=1)

// User-defined inputs for MACD filter
use_macd_filter = input.bool(true, "Enable MACD Filter?")
macd_fast_length = input.int(2, "MACD Fast Length", minval=1)
macd_slow_length = input.int(7, "MACD Slow Length", minval=1)
macd_signal_length = input.int(2, "MACD Signal Length", minval=1)
// User-defined inputs for leverage
leverage_factor = input.float(4.5, "Leverage Factor", minval=1.0, step=0.1)
id           = input("besttrader123", title= "Your TradingView username", group = "Automate this strategy with plugpine.com")
key           = input("nc739ja84gf", title= "Unique identifier (UID)")
ticker        = input("SPX", title= "Ticker/symbol of your broker")
bullcolor     = #0097a7
bearcolor     = #ff195f
showbars      = input.bool(true, "Color Bars?")
showbg        = input.bool(true, "Background Color?")
showsignals   = input.bool(true, "Show Signals?")


// Trend calculation functions
calculate_trend_levels() =>
    typical = hlc3
    fast_ema = ta.ema(typical, length)
    slow_ema = ta.ema(typical, length * 2)
    basis = (fast_ema + slow_ema) / 2
    vol = ta.stdev(typical, length)
    smooth_vol = ta.ema(vol, smooth_len)
    upper = basis + (smooth_vol * sensitivity)
    lower = basis - (smooth_vol * sensitivity)
    [basis, upper, lower]

get_trend_state(upper, lower, basis) =>
    var float prev_level = na
    var int trend = 0
    if na(prev_level)
        trend := close > basis ? 1 : -1
        prev_level := trend == 1 ? lower : upper
    if trend == 1
        if close < lower
            trend := -1
            prev_level := upper
        else
            prev_level := lower
    else
        if close > upper
            trend := 1
            prev_level := lower
        else
            prev_level := upper
    [trend, prev_level]

[basis, upper, lower] = calculate_trend_levels()
[trend, level] = get_trend_state(upper, lower, basis)

// SMA filter
sma_value = ta.sma(close, sma_length)
sma_condition = use_sma_filter ? close > sma_value : true

// MACD filter
[macd_line, signal_line, _] = ta.macd(close, macd_fast_length, macd_slow_length, macd_signal_length)
macd_condition = use_macd_filter ? macd_line > signal_line : true

// Signal detection with filters
long_signal = trend == 1 and trend[1] == -1 and sma_condition and macd_condition
short_signal = trend == -1 and trend[1] == 1

// Plotting visuals
p2 = plot(basis, color=trend == 1 ? bullcolor : bearcolor, linewidth=2)
p1 = plot(level, color=close > level ? bullcolor : bearcolor, linewidth=2, style=plot.style_linebr)
// if showsignals and ta.crossover(close, level)
//     label.new(bar_index, level, "▲", color=bullcolor, textcolor=chart.bg_color, style=label.style_label_upper_right)
// if showsignals and ta.crossunder(close, level)
//     label.new(bar_index, level, "▼", color=bearcolor, textcolor=chart.fg_color, style=label.style_label_lower_right)

qty = strategy.equity / close * leverage_factor

// Automated alerts
if long_signal
    alert('{"AccountID": "' + id + '","Key": "' + key + '", "symbol": "' + ticker + '", "action": "long", "volume": ' + str.tostring(qty) + '}', alert.freq_once_per_bar)
if short_signal
    alert('{"AccountID": "' + id + '","Key": "' + key + '", "symbol": "' + ticker + '", "action": "closelong"}', alert.freq_once_per_bar)

// Strategy entries and exits
if long_signal
    strategy.entry("Long", strategy.long, qty=qty)
if short_signal
    strategy.close("Long")

// Optional SMA and MACD plot
plot(use_sma_filter ? sma_value : na, color=color.new(color.blue, 80), title="SMA")
plot(use_macd_filter ? macd_line : na, color=color.new(color.orange, 80), title="MACD Line")
plot(use_macd_filter ? signal_line : na, color=color.new(color.red, 80), title="Signal Line")


متعلقہ

مزید