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

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

مصنف:چاؤ ژانگ، تاریخ: 2025-01-10 16:24:30
ٹیگز:ای ایم اےRRR

 Multi-Mode Take Profit/Stop Loss Trend Following Strategy Based on EMA, Madrid Ribbon and Donchian Channel

جائزہ

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

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

حکمت عملی تجارتی مواقع کی نشاندہی کرنے کے لئے تین تکنیکی اشارے کا مجموعہ استعمال کرتی ہے: مجموعی رجحان کی سمت کا تعین کرنے کے لئے 200 پیریڈ ای ایم اے میڈرڈ ربن (پانچ پیریڈ اور 100 پیریڈ کے EMA کا کراس اوور) درمیانی مدت کے رجحان کی تشخیص کے لئے 3. مخصوص داخلہ وقت کے لئے ڈونچیان چینل توڑ

طویل تجارتی حالات: 200 ای ایم اے سے اوپر کی قیمت، بولش میڈرڈ ربن، اور ڈونچیئن چینل سے اوپر کی قیمتیں. مختصر تجارت کی شرائط: 200 ای ایم اے سے نیچے کی قیمت ، مڈریڈ ربن کی کمی ، اور ڈونچیئن چینل سے نیچے کی قیمتوں میں وقفے۔ غلط سگنل کو کم کرنے کے لئے، تجارت صرف دوسری درست سگنل کی موجودگی پر ہی عملدرآمد کی جاتی ہے۔

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

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

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

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

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

  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)


متعلقہ

مزید