
এই কৌশলটি একটি ট্রেন্ড ট্র্যাকিং সিস্টেম যা দ্বি-সূচকীয় মুভিং এভারেজ (ইএমএ) এর উপর ভিত্তি করে ক্রস করে, ট্রেডিংয়ের উপার্জনকে অনুকূল করার জন্য একটি ধাপে ধাপে প্রস্থান পদ্ধতির সাথে মিলিত হয়। কৌশলটি 9 চক্র এবং 21 চক্রের ইএমএকে দ্রুত এবং ধীর লাইন হিসাবে ব্যবহার করে, তাদের ক্রস দ্বারা বাজারের প্রবণতাগুলির পরিবর্তনগুলি সনাক্ত করে, যখন ঝুঁকি এবং উপার্জনকে ভারসাম্যপূর্ণ করার জন্য একটি দুই-পদক্ষেপের পজিশন এক্সট্রুশন স্কিম ব্যবহার করে।
কৌশলটির কেন্দ্রীয় যুক্তিটি দ্রুত EMA ((9 চক্র) এবং ধীর EMA ((21 চক্র) এর ক্রস সিগন্যালের উপর ভিত্তি করে। যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে, সিস্টেমটি 0.02 হাতের সাথে মাল্টিহেড পজিশন খোলে; যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে, সিস্টেমটি 0.02 হাতের সাথে খালি মাথা পজিশন খোলে। পজিশন ধরে রাখার সময়, কৌশলটি দুটি ধাপে প্রস্থান ব্যবস্থা গ্রহণ করেঃ প্রথম ধাপে 200 পয়েন্ট লাভের অর্ধেক পজিশন সমতল করা হয় ((0.01 হাত); দ্বিতীয় ধাপে যখন বিপরীত দিকে ক্রস সিগন্যাল উপস্থিত হয় তখন অবশিষ্ট অবস্থানগুলি সমতল করা হয়। এই ধাপে প্রস্থানটি উপরের স্থানটি সংরক্ষণ করার পাশাপাশি লাভের কিছু অংশকে লক করার জন্য ডিজাইন করা হয়েছে।
এটি একটি সম্পূর্ণ ট্রেডিং সিস্টেম যা ক্লাসিক সমান্তরাল ক্রস কৌশলকে আধুনিক পজিশন ম্যানেজমেন্টের সাথে একত্রিত করে। কৌশলটি ধাপে ধাপে প্রস্থান পদ্ধতির মাধ্যমে প্রচলিত সমান্তরাল ক্রস কৌশলটির লাভজনকতা বাড়ায়, তবে এখনও নির্দিষ্ট বাজার পরিবেশ এবং নিজস্ব ঝুঁকি বহন ক্ষমতা অনুযায়ী ব্যবসায়ীর যথাযথ সমন্বয় প্রয়োজন। ভবিষ্যতের অপ্টিমাইজেশনের দিকটি মূলত সংকেত ফিল্টারিং এবং গতিশীল ঝুঁকি পরিচালনার দুটি দিকের উপর দৃষ্টি নিবদ্ধ করে।
/*backtest
start: 2024-02-25 00:00:00
end: 2025-02-22 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("EMA Crossover with Partial Exit", overlay=true, default_qty_type=strategy.cash, default_qty_value=50)
// Define lot sizes
lotSize = 0.02 // Initial trade size
partialLot = 0.01 // Half quantity to close at 20 pips profit
profitTarget = 200 // 20 pips = 200 points (for Forex, adjust accordingly)
// Define EMA lengths
fastLength = 9
slowLength = 21
// Compute EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// Define crossover conditions
longEntry = ta.crossover(fastEMA, slowEMA) // Buy when 9 EMA crosses above 21 EMA
shortEntry = ta.crossunder(fastEMA, slowEMA) // Sell when 9 EMA crosses below 21 EMA
// Track trade state
var float entryPrice = na
var bool inTrade = false
var bool isLong = false
// Entry Logic (Enter with 0.02 lot size)
if (longEntry and not inTrade)
strategy.entry("Long", strategy.long, qty=lotSize)
entryPrice := close
inTrade := true
isLong := true
if (shortEntry and not inTrade)
strategy.entry("Short", strategy.short, qty=lotSize)
entryPrice := close
inTrade := true
isLong := false
// Partial Exit Logic (Close 0.01 lot after 20 pips profit)
if (isLong and inTrade and close >= entryPrice + profitTarget * syminfo.mintick)
strategy.close("Long", qty=partialLot)
if (not isLong and inTrade and close <= entryPrice - profitTarget * syminfo.mintick)
strategy.close("Short", qty=partialLot)
// Full Exit (Close remaining 0.01 lot at the next major crossover)
if (isLong and shortEntry)
strategy.close("Long") // Close remaining position
inTrade := false
if (not isLong and longEntry)
strategy.close("Short") // Close remaining position
inTrade := false
// Plot EMAs
plot(fastEMA, color=color.blue, title="9 EMA")
plot(slowEMA, color=color.red, title="21 EMA")
// Mark Buy/Sell Signals
plotshape(series=longEntry, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY Signal")
plotshape(series=shortEntry, location=location.abovebar, color=color.red, style=shape.labeldown, title="SELL Signal")