یہ ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو ایکسپونینشل موونگ ایوریج (ای ایم اے) ، میڈرڈ ربن ، اور ڈونچیان چینل کو یکجا کرتی ہے۔ اس حکمت عملی کی انفرادیت اس کے تین سوئچ ایبل ٹیک منافع / اسٹاپ نقصان کے طریقوں میں ہے: ٹک پر مبنی ، ڈالر پر مبنی ، اور رسک - انعام تناسب پر مبنی۔ یہ دوہری تصدیق کے طریقہ کار کے ذریعے وشوسنییتا کو بڑھاتا ہے ، صرف دوسرے درست سگنل پر تجارت کو انجام دیتا ہے۔
حکمت عملی تجارتی مواقع کی نشاندہی کرنے کے لئے تین تکنیکی اشارے کا مجموعہ استعمال کرتی ہے: مجموعی رجحان کی سمت کا تعین کرنے کے لئے 200 پیریڈ ای ایم اے میڈرڈ ربن (پانچ پیریڈ اور 100 پیریڈ کے EMA کا کراس اوور) درمیانی مدت کے رجحان کی تشخیص کے لئے 3. مخصوص داخلہ وقت کے لئے ڈونچیان چینل توڑ
طویل تجارتی حالات: 200 ای ایم اے سے اوپر کی قیمت، بولش میڈرڈ ربن، اور ڈونچیئن چینل سے اوپر کی قیمتیں. مختصر تجارت کی شرائط: 200 ای ایم اے سے نیچے کی قیمت ، مڈریڈ ربن کی کمی ، اور ڈونچیئن چینل سے نیچے کی قیمتوں میں وقفے۔ غلط سگنل کو کم کرنے کے لئے، تجارت صرف دوسری درست سگنل کی موجودگی پر ہی عملدرآمد کی جاتی ہے۔
یہ ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو متعدد کلاسیکی تکنیکی اشارے کو جوڑتی ہے ، لچکدار ٹی پی / ایس ایل مینجمنٹ اور ڈبل تصدیق کے طریقہ کار کے ذریعے تجارتی استحکام کو بڑھا دیتی ہے۔ حکمت عملی کی اعلی حسب ضرورت اس کو مختلف مارکیٹ کے ماحول اور تجارتی طرزوں کے مطابق ڈھالنے کی اجازت دیتی ہے۔ براہ راست تجارت سے پہلے تاریخی ڈیٹا بیک ٹیسٹنگ کا مکمل عمل کرنے اور مخصوص مارکیٹ کی خصوصیات کے مطابق پیرامیٹرز کو ایڈجسٹ کرنے کی سفارش کی جاتی ہے۔
/*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)