
এই কৌশলটি হল একটি ট্রেন্ড-অনুসরণকারী ট্রেডিং সিস্টেম যা 5-দিনের এক্সপোনেনশিয়াল মুভিং এভারেজ (EMA) এর উপর ভিত্তি করে মূল্য এবং EMA-এর মধ্যে অবস্থানের সম্পর্ক বিশ্লেষণ করে, স্টপ লস এবং লাভের লক্ষ্যগুলির গতিশীল সমন্বয়ের সাথে এটি বাজারের প্রবণতাকে উপলব্ধি করতে পারে। . কৌশলটি একটি শতাংশ পজিশন ম্যানেজমেন্ট পদ্ধতি গ্রহণ করে এবং লেনদেনের খরচের কারণগুলিকে বিবেচনা করে, এটিকে অত্যন্ত ব্যবহারিক এবং নমনীয় করে তোলে।
কৌশলটির মূল যুক্তিটি প্রবেশের সময় নির্ধারণের জন্য মূল্য এবং 5-দিনের EMA-এর মধ্যে মিথস্ক্রিয়ার উপর ভিত্তি করে। বিশেষ করে, যখন বর্তমান সময়ের সর্বোচ্চ মূল্য EMA এর থেকে কম হয় এবং বর্তমান সময়ের মধ্যে একটি অগ্রগতি হয়, তখন সিস্টেমটি একটি দীর্ঘ সংকেত জারি করবে। একই সময়ে, কৌশলটিতে একটি ঐচ্ছিক অতিরিক্ত শর্তও রয়েছে, যার জন্য সিগন্যালের নির্ভরযোগ্যতা বাড়ানোর জন্য সমাপনী মূল্য পূর্ববর্তী সময়ের চেয়ে বেশি হওয়া প্রয়োজন। ঝুঁকি নিয়ন্ত্রণের জন্য, কৌশলটি দুটি স্টপ লস পদ্ধতি প্রদান করে: পূর্ববর্তী নিম্নমানের উপর ভিত্তি করে গতিশীল স্টপ লস এবং নির্দিষ্ট পয়েন্টের উপর ভিত্তি করে স্টপ লস। মুনাফা লক্ষ্য গতিশীলভাবে ঝুঁকি-রিটার্ন অনুপাতের উপর ভিত্তি করে সেট করা হয়, লেনদেনের লাভের সম্ভাবনা নিশ্চিত করে।
এটি একটি সু-পরিকল্পিত এবং যৌক্তিক প্রবণতা অনুসরণকারী কৌশল যা কার্যকরভাবে EMA সূচক এবং মূল্য কর্মের সমন্বয়ের মাধ্যমে বাজারের প্রবণতা ক্যাপচার করতে পারে। ঝুঁকি নিয়ন্ত্রণ এবং আয় ব্যবস্থাপনার ক্ষেত্রে কৌশলটির একটি অপেক্ষাকৃত সম্পূর্ণ প্রক্রিয়া রয়েছে এবং এটি একাধিক অপ্টিমাইজেবল দিকনির্দেশ প্রদান করে, যার শক্তিশালী ব্যবহারিক মূল্য এবং উন্নতির জন্য জায়গা রয়েছে। ভবিষ্যতে, মাল্টি-পিরিয়ড অ্যানালাইসিস যোগ করে, স্টপ লস মেকানিজম সামঞ্জস্য করে ইত্যাদির মাধ্যমে কৌশলটির স্থায়িত্ব এবং লাভজনকতা আরও উন্নত করা যেতে পারে।
/*backtest
start: 2024-12-29 00:00:00
end: 2025-01-05 00:00:00
period: 30m
basePeriod: 30m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Demo GPT - PowerOfStocks 5EMA", overlay=true)
// Inputs
enableSL = input.bool(false, title="Enable Extra SL")
usl = input.int(defval=5, title="SL Distance in Points", minval=1, maxval=100)
riskRewardRatio = input.int(defval=3, title="Risk to Reward Ratio", minval=3, maxval=25)
showSell = input.bool(true, title="Show Sell Signals")
showBuy = input.bool(true, title="Show Buy Signals")
buySellExtraCond = input.bool(false, title="Buy/Sell with Extra Condition")
startDate = input(timestamp("2018-01-01 00:00"), title="Start Date")
endDate = input(timestamp("2069-12-31 23:59"), title="End Date")
// EMA Calculation
ema5 = ta.ema(close, 5)
// Plot EMA
plot(ema5, "EMA 5", color=color.new(#882626, 0), linewidth=2)
// Variables for Buy
var bool longTriggered = na
var float longStopLoss = na
var float longTarget = na
// Variables for Sell (used for signal visualization but no actual short trades)
var bool shortTriggered = na
var float shortStopLoss = na
var float shortTarget = na
// Long Entry Logic
if true
if (showBuy)
longCondition = high[1] < ema5[1] and high[1] < high and (not buySellExtraCond or close > close[1])
if (longCondition and not longTriggered)
entryPrice = high[1]
stopLoss = enableSL ? low[1] - usl * syminfo.mintick : low[1]
target = enableSL ? entryPrice + (entryPrice - stopLoss) * riskRewardRatio : high[1] + (high[1] - low[1]) * riskRewardRatio
// Execute Buy Order
strategy.entry("Buy", strategy.long, stop=entryPrice)
longTriggered := true
longStopLoss := stopLoss
longTarget := target
label.new(bar_index, entryPrice, text="Buy@ " + str.tostring(entryPrice), style=label.style_label_up, color=color.green, textcolor=color.white)
// Short Signal Logic (Visual Only)
if (true)
if (showSell)
shortCondition = low[1] > ema5[1] and low[1] > low and (not buySellExtraCond or close < close[1])
if (shortCondition and not shortTriggered)
entryPrice = low[1]
stopLoss = enableSL ? high[1] + usl * syminfo.mintick : high[1]
target = enableSL ? entryPrice - (stopLoss - entryPrice) * riskRewardRatio : low[1] - (high[1] - low[1]) * riskRewardRatio
// Visual Signals Only
label.new(bar_index, entryPrice, text="Sell@ " + str.tostring(entryPrice), style=label.style_label_down, color=color.red, textcolor=color.white)
shortTriggered := true
shortStopLoss := stopLoss
shortTarget := target
// Exit Logic for Buy
if longTriggered
// Stop-loss Hit
if low <= longStopLoss
strategy.close("Buy", comment="SL Hit")
longTriggered := false
// Target Hit
if high >= longTarget
strategy.close("Buy", comment="Target Hit")
longTriggered := false
// Exit Logic for Short (Signals Only)
if shortTriggered
// Stop-loss Hit
if high >= shortStopLoss
shortTriggered := false
// Target Hit
if low <= shortTarget
shortTriggered := false