ای ایم اے، میڈرڈ بینڈز اور ڈونچین چینلز پر مبنی ملٹی موڈ اسٹاپ پرافٹ اور اسٹاپ لاس کے رجحان کی پیروی کرنے والی حکمت عملی

EMA RRR
تخلیق کی تاریخ: 2025-01-10 16:24:30 آخر میں ترمیم کریں: 2025-01-10 16:24:30
کاپی: 2 کلکس کی تعداد: 418
1
پر توجہ دیں
1617
پیروکار

ای ایم اے، میڈرڈ بینڈز اور ڈونچین چینلز پر مبنی ملٹی موڈ اسٹاپ پرافٹ اور اسٹاپ لاس کے رجحان کی پیروی کرنے والی حکمت عملی

جائزہ

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

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

حکمت عملی تجارت کے مواقع کی نشاندہی کرنے کے لیے تین تکنیکی اشارے کا مجموعہ استعمال کرتی ہے:

  1. مجموعی رجحان کی سمت کا تعین کرنے کے لیے 200 مدت کے ایکسپونینشل موونگ ایوریج کا استعمال کیا جاتا ہے۔
  2. میڈرڈ بینڈز (5 مدت اور 100 مدت کے EMAs کا کراس اوور) درمیانی مدت کے رجحانات کا تعین کرنے کے لیے استعمال کیا جاتا ہے
  3. داخلے کے مخصوص وقت کے لیے ڈونچین چینل بریک آؤٹ

طویل تجارتی حالات: قیمت 200EMA سے اوپر ہے، میڈرڈ بینڈ تیزی سے بڑھتا ہے اور قیمت اوپری ڈونچین چینل سے نکل جاتی ہے۔ مختصر تجارتی حالات: قیمت 200EMA سے نیچے ہے، میڈرڈ بینڈ مندی کا شکار ہو جاتا ہے اور قیمت نیچے ڈونچین چینل سے باہر ہو جاتی ہے۔ غلط سگنلز کو کم کرنے کے لیے، حکمت عملی تجارت کو صرف اس وقت انجام دیتی ہے جب دوسری بار درست سگنل ظاہر ہوتا ہے۔

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

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

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy("Pamplona Enhanced TP/SL Toggleable", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// Input settings
use_tick_based = input.bool(false, title="Use Tick-Based TP/SL")
use_dollar_based = input.bool(false, title="Use Dollar-Based TP/SL")
use_risk_reward = input.bool(true, title="Use Risk-Reward TP/SL") // Default option

tick_size = input.float(0.1, title="Tick Size (for Tick-Based)", minval=0.0001, step=0.0001)
ticks = input.int(10, title="Ticks (for Tick-Based TP/SL)", minval=1)
dollar_tp = input.float(10.0, title="Dollar Take Profit (for Dollar-Based)", minval=0.01, step=0.01)
dollar_sl = input.float(10.0, title="Dollar Stop Loss (for Dollar-Based)", minval=0.01, step=0.01)
risk_reward_ratio = input.float(2.0, title="Risk-Reward Ratio (for Risk-Reward TP/SL)", minval=0.1, step=0.1)
contract_size = input.int(1, title="Contract Size", minval=1)

// Retrieve indicators
ema200 = ta.ema(close, 200)
src = close
ma05 = ta.ema(src, 5)
ma100 = ta.ema(src, 100)
madrid_green = ma05 > ma100
dlen = input.int(20, title="Donchian Channel Period")
highest_d = ta.highest(high, dlen)
lowest_d = ta.lowest(low, dlen)
donchian_green = close > highest_d[1]
donchian_red = close < lowest_d[1]

// Track signals
var int long_signal_count = 0
var int short_signal_count = 0

// Conditions
long_condition_raw = madrid_green and donchian_green and close > ema200
short_condition_raw = not madrid_green and donchian_red and close < ema200

// Update signal counters
if long_condition_raw
    long_signal_count += 1
else
    long_signal_count := 0

if short_condition_raw
    short_signal_count += 1
else
    short_signal_count := 0

// Final conditions to enter on the second signal
long_condition = long_signal_count == 2
short_condition = short_signal_count == 2

// Ensure exactly one TP/SL mode is enabled
tp_sl_mode_count = (use_tick_based ? 1 : 0) + (use_dollar_based ? 1 : 0) + (use_risk_reward ? 1 : 0)
if tp_sl_mode_count != 1
    runtime.error("Enable exactly ONE TP/SL mode (Tick-Based, Dollar-Based, or Risk-Reward).")

// Function to calculate TP/SL based on active mode
calc_tp_sl(entry_price, is_long) =>
    float tp = na
    float sl = na
    if use_tick_based
        tp := is_long ? entry_price + ticks * tick_size : entry_price - ticks * tick_size
        sl := is_long ? entry_price - ticks * tick_size : entry_price + ticks * tick_size
    else if use_dollar_based
        tp := is_long ? entry_price + (dollar_tp / contract_size) : entry_price - (dollar_tp / contract_size)
        sl := is_long ? entry_price - (dollar_sl / contract_size) : entry_price + (dollar_sl / contract_size)
    else if use_risk_reward
        risk = is_long ? close - low : high - close
        tp := is_long ? close + (risk * risk_reward_ratio) : close - (risk * risk_reward_ratio)
        sl := is_long ? close - risk : close + risk
    [tp, sl]

// Entry logic
if long_condition
    [take_profit, stop_loss] = calc_tp_sl(close, true)
    strategy.entry("Long", strategy.long, qty=contract_size)
    strategy.exit("Take Profit", from_entry="Long", limit=take_profit, stop=stop_loss)

if short_condition
    [take_profit, stop_loss] = calc_tp_sl(close, false)
    strategy.entry("Short", strategy.short, qty=contract_size)
    strategy.exit("Take Profit", from_entry="Short", limit=take_profit, stop=stop_loss)

// Plot indicators
plot(ema200, title="200 EMA", color=color.white, linewidth=2)
bgcolor(long_condition ? color.new(color.green, 90) : short_condition ? color.new(color.red, 90) : na)