রিসোর্স লোড হচ্ছে... লোডিং...

ইএমএ, মাদ্রিদ রিবন এবং ডোনচিয়ান চ্যানেলের উপর ভিত্তি করে কৌশল অনুসরণ করে মাল্টি-মোড লাভ/স্টপ লস ট্রেন্ড

লেখক:চাওঝাং, তারিখঃ ২০২৫-০১-১০ ১৬ঃ২৪ঃ৩০
ট্যাগঃইএমএRRR

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

সারসংক্ষেপ

এটি একটি প্রবণতা অনুসরণকারী কৌশল যা এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ), মাদ্রিদ রিবন এবং ডনচিয়ান চ্যানেলকে একত্রিত করে। কৌশলটির অনন্যতা তার তিনটি সুইচযোগ্য লাভ / স্টপ-লস মোডে রয়েছেঃ টিক-ভিত্তিক, ডলার-ভিত্তিক এবং ঝুঁকি-পুরষ্কার অনুপাত ভিত্তিক। এটি একটি দ্বৈত নিশ্চিতকরণ প্রক্রিয়াটির মাধ্যমে নির্ভরযোগ্যতা বাড়ায়, কেবল দ্বিতীয় বৈধ সংকেতে বাণিজ্য সম্পাদন করে।

কৌশলগত নীতি

কৌশলটি ট্রেডিং সুযোগ চিহ্নিত করার জন্য তিনটি প্রযুক্তিগত সূচক ব্যবহার করেঃ ১. সামগ্রিক প্রবণতার দিকনির্দেশনা নির্ধারণের জন্য ২০০-পেরিওড ইএমএ ২. মধ্যমেয়াদী প্রবণতা মূল্যায়নের জন্য মাদ্রিদ রিবন (৫-অবধি এবং ১০০-অবধি EMA এর ক্রসওভার) ৩. ডনচিয়ান চ্যানেলের নির্দিষ্ট প্রবেশের সময়সূচী

লং ট্রেডিং শর্তাবলী: ২০০ EMA এর উপরে মূল্য, মদ্রিদ রিবন, এবং ডোনচিয়ান চ্যানেলের উপরে দামের ভাঙ্গন। শর্ট ট্রেডিংয়ের শর্তাবলী: ২০০ EMA এর নিচে মূল্য, মদ্রিদ রিবন হ্রাস এবং ডোনচিয়ান চ্যানেলের নিচে দামের ভাঙ্গন। মিথ্যা সংকেত হ্রাস করার জন্য, ট্রেডগুলি শুধুমাত্র দ্বিতীয় বৈধ সংকেতের ঘটনায় কার্যকর করা হয়।

কৌশলগত সুবিধা

  1. নমনীয় টিপি/এসএল ম্যানেজমেন্ট সিস্টেম বিভিন্ন ট্রেডিং স্টাইলের সাথে অভিযোজিত
  2. একাধিক প্রযুক্তিগত সূচক সংমিশ্রণ আরো নির্ভরযোগ্য সংকেত প্রদান করে
  3. ডাবল কনফার্মেশন প্রক্রিয়া কার্যকরভাবে মিথ্যা সংকেত হ্রাস করে
  4. কৌশল সম্পূর্ণরূপে কোন repainting ছাড়া ভবিষ্যৎ দৃষ্টিভঙ্গি পক্ষপাত এড়াতে
  5. বিভিন্ন বাজারের পরিবেশের জন্য অত্যন্ত কাস্টমাইজযোগ্য

কৌশলগত ঝুঁকি

  1. প্রবণতা বিপরীত হওয়ার সময় সম্ভাব্য উল্লেখযোগ্য ড্রাউন সমাধানঃ কৌশল সংবেদনশীলতা বাড়ানোর জন্য সূচক পরামিতিগুলি সামঞ্জস্য করুন
  2. প্রযুক্তিগত সূচকগুলির উপর অত্যধিক নির্ভরতা কিছু বাজার সুযোগ হারাতে পারে সমাধানঃ মৌলিক বিশ্লেষণের সাথে একত্রিত করার পরামর্শ দেওয়া হচ্ছে
  3. স্থির TP/SL সব বাজারের অবস্থার জন্য উপযুক্ত নাও হতে পারে সমাধানঃ অস্থিরতার উপর ভিত্তি করে TP/SL স্তরগুলিকে গতিশীলভাবে সামঞ্জস্য করুন

কৌশল অপ্টিমাইজেশান নির্দেশাবলী

  1. ডায়নামিক টিপি/এসএল সমন্বয়ের জন্য অস্থিরতা সূচক প্রবর্তন
  2. সিগন্যাল নির্ভরযোগ্যতা উন্নত করতে ভলিউম বিশ্লেষণ যোগ করুন
  3. বাজারের মনোভাবের আরও সূচক অন্তর্ভুক্ত করুন
  4. অভিযোজিত পরামিতি অপ্টিমাইজেশন সিস্টেম বিকাশ
  5. ঝুঁকি ব্যবস্থাপনা মডিউল যোগ করুন, যেমন সর্বোচ্চ ড্রাউন নিয়ন্ত্রণ

সংক্ষিপ্তসার

এটি একটি প্রবণতা অনুসরণকারী কৌশল যা একাধিক ক্লাসিকাল প্রযুক্তিগত সূচককে একত্রিত করে, নমনীয় টিপি / এসএল পরিচালনা এবং দ্বৈত নিশ্চিতকরণ প্রক্রিয়াটির মাধ্যমে ট্রেডিং স্থিতিশীলতা বাড়ায়। কৌশলটির উচ্চ কাস্টমাইজযোগ্যতা এটিকে বিভিন্ন বাজারের পরিবেশ এবং ট্রেডিং স্টাইলের সাথে খাপ খাইয়ে নিতে দেয়। লাইভ ট্রেডিংয়ের আগে পুঙ্খানুপুঙ্খ historicalতিহাসিক ডেটা ব্যাকটেস্টিং পরিচালনা এবং নির্দিষ্ট বাজারের বৈশিষ্ট্য অনুসারে পরামিতিগুলি সামঞ্জস্য করার পরামর্শ দেওয়া হয়।


/*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)


সম্পর্কিত

আরো