
ডাবল ইন্ডেক্সাল মুভিং এভারেজ মাল্টি টার্গেট ট্রেডিং কৌশল হল একটি পরিমাণগত ট্রেডিং সিস্টেম যা স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী ইন্ডেক্সাল মুভিং এভারেজ (ইএমএ) ক্রস সিগন্যালের উপর ভিত্তি করে। এই কৌশলটি 9-চক্র এবং 21-চক্রের ইএমএর ক্রসকে প্রবেশের সংকেত হিসাবে ব্যবহার করে এবং ঝুঁকি পরিচালনা এবং মুনাফা সর্বাধিকীকরণের জন্য 10 টি পর্যন্ত লাভের লক্ষ্য এবং একটি স্টপ লস সেট করে। এই কৌশলটি একই সাথে বহু-ফ্রেম দ্বি-মুখী ট্রেডিংকে সমর্থন করে, যখন ইএমএ স্বল্পমেয়াদে দীর্ঘমেয়াদী ইএমএ অতিক্রম করে, যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়া অতিক্রম করে তখন খালি থাকে এবং যখন বিপরীত ক্রস হয় তখন বেরিয়ে যায়।
এই কৌশলটির মূল নীতিটি একটি সূচকীয় চলমান গড় ক্রস সিস্টেমের উপর ভিত্তি করে, যা নিম্নরূপ বাস্তবায়িত হয়ঃ
কৌশলটি একটি পদ্ধতিগত ঝুঁকি ব্যবস্থাপনা পদ্ধতি ব্যবহার করে, প্রতিটি লেনদেনের জন্য ডিফল্টরূপে 10% অ্যাকাউন্ট তহবিল ব্যবহার করে, প্রাথমিক তহবিলটি 100,000 এ সেট করা হয়, এবং হিজারি অপারেশন নিষিদ্ধ করা হয়।
এই ঝুঁকিগুলি হ্রাস করার জন্য, অতিরিক্ত ফিল্টারিং শর্তগুলি যেমন প্রবণতা শক্তির সূচকগুলি প্রবর্তন করার পরামর্শ দেওয়া হয় এবং বাজারের অস্থিরতার গতিশীলতার উপর নির্ভর করে স্টপ লস এবং টার্গেট পয়েন্ট সেট করার বিষয়টি বিবেচনা করা হয়।
এই অপ্টিমাইজেশনের মাধ্যমে, কৌশলগুলির স্থিতিশীলতা এবং লাভজনকতা উল্লেখযোগ্যভাবে বৃদ্ধি করা যেতে পারে এবং প্রত্যাহার এবং ক্ষতিগ্রস্থ লেনদেনের ঘনত্ব হ্রাস করা যেতে পারে।
ডাবল ইন্ডেক্সাল মুভিং এভারেজ মাল্টি-টার্গেট ট্রেডিং কৌশলটি একটি কাঠামোগত পরিষ্কার, লজিক্যাল সহজ পরিমাণগত ট্রেডিং সিস্টেম যা ক্লাসিক ইএমএ ক্রস সিগন্যালের উপর ভিত্তি করে এবং মাল্টি-টার্গেট প্রফিট ম্যানেজমেন্ট এবং স্টপ লস সেটিংসের সাথে যুক্ত। এই কৌশলটি মাঝারি-স্বল্পমেয়াদী প্রবণতা ট্রেডিংয়ের জন্য উপযুক্ত এবং স্পষ্ট প্রবণতা বাজারে ভাল কাজ করে।
যদিও কৌশলগত নকশাটি তুলনামূলকভাবে সহজ, তবে ট্রেডিং কৌশলটির মূল উপাদানগুলি রয়েছেঃ প্রবেশের সংকেত, প্রস্থান শর্তাদি, স্টপ লস ম্যানেজমেন্ট এবং মুনাফা লক্ষ্য। কৌশলগুলির প্রধান সুবিধা হ’ল অপারেশনটি স্পষ্ট, সহজেই বোঝা এবং সম্পাদন করা, পাশাপাশি ভাল ভিজ্যুয়াল সমর্থন সরবরাহ করা।
যাইহোক, এই কৌশলটি একটি একক সূচকের উপর নির্ভরশীল, বাজারের পরিবেশের সনাক্তকরণের অভাব এবং তহবিল পরিচালনার জন্য যথেষ্ট নমনীয়তার অভাবের মতো সীমাবদ্ধতা রয়েছে। ট্রেন্ড ফিল্টার যুক্ত করে, স্টপ লস প্রক্রিয়াটি অপ্টিমাইজ করে, সত্যিকারের ব্যাচেল লাভ অর্জন এবং তহবিল পরিচালনার পদ্ধতির উন্নতি করে এই কৌশলটি আরও উন্নত করার সুযোগ রয়েছে।
ব্যবসায়ীদের জন্য, এই কৌশলটি একটি মৌলিক কাঠামো হিসাবে কাজ করতে পারে, ব্যক্তিগত ঝুঁকি পছন্দ এবং ট্রেডিং জাতের বৈশিষ্ট্য অনুসারে ব্যক্তিগতকৃত সমন্বয় এবং অপ্টিমাইজেশান, যাতে আরও ভাল ট্রেডিং কার্যকারিতা অর্জন করা যায়।
/*backtest
start: 2024-08-21 00:00:00
end: 2025-08-20 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_OKX","currency":"BNB_USDT","balance":5000}]
*/
//@version=5
strategy("9/21 EMA with 10 Targets + Stoploss",
overlay = true,
initial_capital = 100000,
default_qty_type = strategy.percent_of_equity,
default_qty_value = 10,
pyramiding = 0)
// === Inputs ===
emaFastLen = input.int(9, "Fast EMA Length")
emaSlowLen = input.int(21, "Slow EMA Length")
slPercent = input.float(0.5, "Stoploss %", step=0.1)
// 10 Targets
tp1Percent = input.float(0.5, "Target 1 %", step=0.1)
tp2Percent = input.float(1.0, "Target 2 %", step=0.1)
tp3Percent = input.float(1.5, "Target 3 %", step=0.1)
tp4Percent = input.float(2.0, "Target 4 %", step=0.1)
tp5Percent = input.float(2.5, "Target 5 %", step=0.1)
tp6Percent = input.float(3.0, "Target 6 %", step=0.1)
tp7Percent = input.float(3.5, "Target 7 %", step=0.1)
tp8Percent = input.float(4.0, "Target 8 %", step=0.1)
tp9Percent = input.float(4.5, "Target 9 %", step=0.1)
tp10Percent = input.float(5.0, "Target 10 %", step=0.1)
// === EMA Calculation ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
// === Entry Conditions ===
longCond = ta.crossover(emaFast, emaSlow)
shortCond = ta.crossunder(emaFast, emaSlow)
// === Entry ===
if (longCond and strategy.position_size <= 0)
strategy.entry("BUY", strategy.long)
if (shortCond and strategy.position_size >= 0)
strategy.entry("SELL", strategy.short)
// === Series Variables for Targets ===
var float tp1 = na
var float tp2 = na
var float tp3 = na
var float tp4 = na
var float tp5 = na
var float tp6 = na
var float tp7 = na
var float tp8 = na
var float tp9 = na
var float tp10 = na
var float stopLevel = na
// === Long Positions ===
if strategy.position_size > 0
stopLevel := strategy.position_avg_price * (1 - slPercent/100)
tp1 := strategy.position_avg_price * (1 + tp1Percent/100)
tp2 := strategy.position_avg_price * (1 + tp2Percent/100)
tp3 := strategy.position_avg_price * (1 + tp3Percent/100)
tp4 := strategy.position_avg_price * (1 + tp4Percent/100)
tp5 := strategy.position_avg_price * (1 + tp5Percent/100)
tp6 := strategy.position_avg_price * (1 + tp6Percent/100)
tp7 := strategy.position_avg_price * (1 + tp7Percent/100)
tp8 := strategy.position_avg_price * (1 + tp8Percent/100)
tp9 := strategy.position_avg_price * (1 + tp9Percent/100)
tp10 := strategy.position_avg_price * (1 + tp10Percent/100)
strategy.exit("Exit Long", "BUY", stop=stopLevel, limit=tp1)
// === Short Positions ===
if strategy.position_size < 0
stopLevel := strategy.position_avg_price * (1 + slPercent/100)
tp1 := strategy.position_avg_price * (1 - tp1Percent/100)
tp2 := strategy.position_avg_price * (1 - tp2Percent/100)
tp3 := strategy.position_avg_price * (1 - tp3Percent/100)
tp4 := strategy.position_avg_price * (1 - tp4Percent/100)
tp5 := strategy.position_avg_price * (1 - tp5Percent/100)
tp6 := strategy.position_avg_price * (1 - tp6Percent/100)
tp7 := strategy.position_avg_price * (1 - tp7Percent/100)
tp8 := strategy.position_avg_price * (1 - tp8Percent/100)
tp9 := strategy.position_avg_price * (1 - tp9Percent/100)
tp10 := strategy.position_avg_price * (1 - tp10Percent/100)
strategy.exit("Exit Short", "SELL", stop=stopLevel, limit=tp1)
// === Plotting ===
plot(emaFast, "EMA 9", color=color.yellow, linewidth=2)
plot(emaSlow, "EMA 21", color=color.orange, linewidth=2)
// Global plots (avoid local scope error)
plot(tp1, "TP1", color=color.new(color.green, 0))
plot(tp2, "TP2", color=color.new(color.green, 10))
plot(tp3, "TP3", color=color.new(color.green, 20))
plot(tp4, "TP4", color=color.new(color.green, 30))
plot(tp5, "TP5", color=color.new(color.green, 40))
plot(tp6, "TP6", color=color.new(color.green, 50))
plot(tp7, "TP7", color=color.new(color.green, 60))
plot(tp8, "TP8", color=color.new(color.green, 70))
plot(tp9, "TP9", color=color.new(color.green, 80))
plot(tp10, "TP10", color=color.new(color.green, 90))
plot(stopLevel, "Stoploss", color=color.red, linewidth=2)
// Entry Signals
plotshape(longCond, title="BUY Signal", style=shape.labelup, color=color.green, text="BUY")
plotshape(shortCond, title="SELL Signal", style=shape.labeldown, color=color.red, text="SELL")