دوہری رجحان فلٹرڈ چین موونگ اوسط تناسب کی حکمت عملی


تخلیق کی تاریخ: 2023-12-28 17:37:14 آخر میں ترمیم کریں: 2023-12-28 17:37:14
کاپی: 1 کلکس کی تعداد: 623
1
پر توجہ دیں
1623
پیروکار

دوہری رجحان فلٹرڈ چین موونگ اوسط تناسب کی حکمت عملی

جائزہ

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

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

  1. تیز رفتار حرکت پذیر اوسط ((10 دن کی لکیر) اور آہستہ رفتار حرکت پذیر اوسط ((50 دن کی لکیر) کا حساب لگائیں اور ان کے تناسب کا حساب لگائیں ، جسے قیمت کی حرکت پذیر اوسط تناسب کہا جاتا ہے۔ یہ تناسب قیمتوں میں لمبی لکیری رجحانات کی تبدیلی کو مؤثر طریقے سے پہچان سکتا ہے۔
  2. قیمتوں کے منتقل اوسط تناسب کو فی صد میں تبدیل کریں ، یعنی موجودہ تناسب پچھلے عرصے میں نسبتا strong مضبوط ہے۔ یہ فیصد ایک نوسکھئیے کے طور پر بیان کیا گیا ہے۔
  3. جب اوسلینٹر پر سیٹ کی گئی خرید کی حد ((10) پر خرید کا اشارہ پیدا ہوتا ہے ، اور نیچے بیچنے کی حد ((90) پر فروخت کا اشارہ پیدا ہوتا ہے ، تو رجحان کی پیروی کی جاتی ہے۔
  4. بلین بینڈوڈتھ کے اشارے کے ساتھ مل کر ٹریڈنگ سگنل کو فلٹر کیا جاتا ہے ، جب بلین بینڈ تنگ ہوتا ہے تو آپریشن کیا جاتا ہے۔
  5. ڈبل ٹرینڈ فلٹرنگ اشارے کا استعمال کرتے ہوئے ، خریدنے کا اشارہ صرف اس وقت پیدا ہوتا ہے جب قیمت بڑھتی ہوئی ٹرینڈ چینل میں ہوتی ہے ، اور فروخت کا اشارہ صرف اس وقت پیدا ہوتا ہے جب قیمت گرتی ہوئی چینل میں ہوتی ہے ، اس طرح الٹا کام کرنے سے گریز کیا جاتا ہے۔
  6. چینل سے باہر نکلنے کا طریقہ کار ترتیب دیں ، بشمول اسٹاپ ، اسٹاپ نقصان اور مجموعی طور پر باہر نکلنا ، متعدد باہر نکلنے کی شرائط کو پیشگی ترتیب دیا جاسکتا ہے ، اور سب سے زیادہ منافع بخش باہر نکلنے کی ترجیح دی جاسکتی ہے۔

اسٹریٹجک فوائد

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

خطرات اور حل

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

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

  1. پیرامیٹرز کی اصلاح: بہترین پیرامیٹرز کا مجموعہ تلاش کرنے کے لئے چلتی اوسط کی مدت ، oscillator خرید و فروخت پوائنٹس ، برن بینڈ پیرامیٹرز ، اور رجحان فلٹرنگ پیرامیٹرز کو کم سے کم ٹیسٹ کیا جاسکتا ہے۔
  2. دیگر اشارے شامل کریں۔ حکمت عملی کی درستگی کو بہتر بنانے کے ل other ، رجحان کے الٹ جانے والے دیگر اشارے ، جیسے کے ڈی اشارے ، ایم اے سی ڈی اشارے وغیرہ شامل کرنے پر غور کیا جاسکتا ہے۔
  3. مشین لرننگ۔ تاریخی اعداد و شمار کو جمع کرنے ، مشین لرننگ الگورتھم ٹریننگ ماڈل کا استعمال کرنے ، پیرامیٹرز کو متحرک طور پر بہتر بنانے ، اور پیرامیٹرز کو خود بخود ایڈجسٹ کرنے کے لئے استعمال کیا جاسکتا ہے۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-12-20 00:00:00
end: 2023-12-27 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Premium MA Ratio Strategy", overlay = true)

// Input: Adjustable parameters for Premium MA Ratio
fast_length = input(10, title = "Fast MA Length")
slow_length = input(50, title = "Slow MA Length")
oscillator_threshold_buy = input(10, title = "Oscillator Buy Threshold")
oscillator_threshold_sell = input(90, title = "Oscillator Sell Threshold")

// Input: Adjustable parameters for Bollinger Bands
bb_length = input(20, title = "Bollinger Bands Length")
bb_source = input(close, title = "Bollinger Bands Source")
bb_deviation = input(2.0, title = "Bollinger Bands Deviation")
bb_width_threshold = input(30, title = "BB Width Threshold")
use_bb_filter = input(true, title = "Use BB Width Filter?")

// Input: Adjustable parameters for Trend Filter
use_trend_filter = input(true, title = "Use Trend Filter?")
trend_filter_period_1 = input(50, title = "Trend Filter Period 1")
trend_filter_period_2 = input(200, title = "Trend Filter Period 2")
use_second_trend_filter = input(true, title = "Use Second Trend Filter?")

// Input: Adjustable parameters for Exit Strategies
use_exit_strategies = input(true, title = "Use Exit Strategies?")
use_take_profit = input(true, title = "Use Take Profit?")
take_profit_ticks = input(150, title = "Take Profit in Ticks")
use_stop_loss = input(true, title = "Use Stop Loss?")
stop_loss_ticks = input(100, title = "Stop Loss in Ticks")
use_combined_exit = input(true, title = "Use Combined Exit Strategy?")
combined_exit_ticks = input(50, title = "Combined Exit Ticks")

// Input: Adjustable parameters for Time Filter
use_time_filter = input(false, title = "Use Time Filter?")
start_hour = input(8, title = "Start Hour")
end_hour = input(16, title = "End Hour")

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)

// Calculate the premium price moving average ratio
premium_ratio = fast_ma / slow_ma * 100

// Calculate the percentile rank of the premium ratio
percentile_rank(src, length) =>
    rank = 0.0
    for i = 1 to length
        if src > src[i]
            rank := rank + 1.0
    percentile = rank / length * 100

// Calculate the percentile rank for the premium ratio using slow_length periods
premium_ratio_percentile = percentile_rank(premium_ratio, slow_length)

// Calculate the oscillator based on the percentile rank
oscillator = premium_ratio_percentile

// Dynamic coloring for the oscillator line
oscillator_color = oscillator > 50 ? color.green : color.red

// Plot the oscillator on a separate subplot as a line
hline(50, "Midline", color = color.gray)
plot(oscillator, title = "Oscillator", color = oscillator_color, linewidth = 2)

// Highlight the overbought and oversold areas
bgcolor(oscillator > oscillator_threshold_sell ? color.red : na, transp = 80)
bgcolor(oscillator < oscillator_threshold_buy ? color.green : na, transp = 80)

// Plot horizontal lines for threshold levels
hline(oscillator_threshold_buy, "Buy Threshold", color = color.green)
hline(oscillator_threshold_sell, "Sell Threshold", color = color.red)

// Calculate Bollinger Bands width
bb_upper = sma(bb_source, bb_length) + bb_deviation * stdev(bb_source, bb_length)
bb_lower = sma(bb_source, bb_length) - bb_deviation * stdev(bb_source, bb_length)
bb_width = bb_upper - bb_lower

// Calculate the percentile rank of Bollinger Bands width
bb_width_percentile = percentile_rank(bb_width, bb_length)

// Plot the Bollinger Bands width percentile line
plot(bb_width_percentile, title = "BB Width Percentile", color = color.blue, linewidth = 2)

// Calculate the trend filters
trend_filter_1 = sma(close, trend_filter_period_1)
trend_filter_2 = sma(close, trend_filter_period_2)

// Strategy logic
longCondition = crossover(premium_ratio_percentile, oscillator_threshold_buy)
shortCondition = crossunder(premium_ratio_percentile, oscillator_threshold_sell)

// Apply Bollinger Bands width filter if enabled
if (use_bb_filter)
    longCondition := longCondition and bb_width_percentile < bb_width_threshold
    shortCondition := shortCondition and bb_width_percentile < bb_width_threshold

// Apply trend filters if enabled
if (use_trend_filter)
    longCondition := longCondition and (close > trend_filter_1)
    shortCondition := shortCondition and (close < trend_filter_1)

// Apply second trend filter if enabled
if (use_trend_filter and use_second_trend_filter)
    longCondition := longCondition and (close > trend_filter_2)
    shortCondition := shortCondition and (close < trend_filter_2)

// Apply time filter if enabled
if (use_time_filter)
    longCondition := longCondition and (hour >= start_hour and hour <= end_hour)
    shortCondition := shortCondition and (hour >= start_hour and hour <= end_hour)

// Generate trading signals with exit strategies
if (use_exit_strategies)
    strategy.entry("Buy", strategy.long, when = longCondition)
    strategy.entry("Sell", strategy.short, when = shortCondition)
    
    // Define unique exit names for each order
    buy_take_profit_exit = "Buy Take Profit"
    buy_stop_loss_exit = "Buy Stop Loss"
    sell_take_profit_exit = "Sell Take Profit"
    sell_stop_loss_exit = "Sell Stop Loss"
    combined_exit = "Combined Exit"
    
    // Exit conditions for take profit
    if (use_take_profit)
        strategy.exit(buy_take_profit_exit, from_entry = "Buy", profit = take_profit_ticks)
        strategy.exit(sell_take_profit_exit, from_entry = "Sell", profit = take_profit_ticks)
    
    // Exit conditions for stop loss
    if (use_stop_loss)
        strategy.exit(buy_stop_loss_exit, from_entry = "Buy", loss = stop_loss_ticks)
        strategy.exit(sell_stop_loss_exit, from_entry = "Sell", loss = stop_loss_ticks)
    
    // Combined exit strategy
    if (use_combined_exit)
        strategy.exit(combined_exit, from_entry = "Buy", loss = combined_exit_ticks, profit = combined_exit_ticks)