
এই কৌশলটি একাধিক প্রযুক্তিগত সূচক সমন্বয় উপর ভিত্তি করে একটি প্রবণতা ট্র্যাকিং অপশন ট্রেডিং কৌশল। প্রধানত ইএমএ ক্রসকে কেন্দ্রীয় সংকেত হিসাবে ব্যবহার করে, এসএমএ, ভিডাব্লুএপি প্রবণতা দিকনির্দেশের সাথে মিলিত হয়, এবং এমএসিডি এবং আরএসআইকে সহায়ক সূচক হিসাবে ব্যবহার করে সংকেত ফিল্টারিং করা হয়। কৌশলটি স্থির স্টপ পয়েন্ট পয়েন্ট ম্যানেজমেন্ট ঝুঁকি গ্রহণ করে, কঠোর প্রবেশের শর্ত এবং অবস্থান পরিচালনার মাধ্যমে ব্যবসায়ের সাফল্যের হার বাড়ায়।
কৌশলটি 8 চক্র এবং 21 চক্রের ইএমএর ক্রসগুলিকে প্রধান ট্রেডিং সিগন্যাল হিসাবে ব্যবহার করে, যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএ অতিক্রম করে এবং নিম্নলিখিত শর্তগুলি পূরণ করে তখন একাধিক সিগন্যাল ট্রিগার করেঃ দাম 100 এবং 200 চক্রের এসএমএর উপরে থাকে, এমএসিডি লাইনটি সিগন্যাল লাইনের উপরে থাকে, আরএসআই 50 এর চেয়ে বড়। খালি সিগন্যালের ট্রিগার শর্তগুলি বিপরীত। কৌশলটি ভিডাব্লুএপিকে মূল্যের ওজনের রেফারেন্স হিসাবে প্রবর্তন করে, যা বর্তমান দামের আপেক্ষিক অবস্থান নির্ধারণে সহায়তা করে। প্রতিটি ব্যবসায়ের জন্য একটি নির্দিষ্ট 1 চুক্তিটি ট্রেডিং ভলিউম হিসাবে ব্যবহৃত হয় এবং 5% স্টপিং পয়েন্ট সেট করা হয়। কৌশলটি ওপেনপোজিশন চিহ্নের মাধ্যমে পজিশনের অবস্থা ট্র্যাক করে এবং একই সময়ে কেবলমাত্র একটি অবস্থান রাখার বিষয়টি নিশ্চিত করে।
এটি একটি কাঠামোগত, যুক্তিসঙ্গতভাবে সুস্পষ্ট, একাধিক সূচক ট্রেডিং কৌশল। কৌশলটি একাধিক প্রযুক্তিগত সূচকগুলির সমন্বয়মূলক সমন্বয় দ্বারা ট্রেডিং সিগন্যালের নির্ভরযোগ্যতা বাড়ায় এবং নির্দিষ্ট স্টপ পয়েন্টের অবস্থান ব্যবহার করে ঝুঁকি পরিচালনা করে। কৌশলটির কিছু অন্তর্নিহিত ঝুঁকি থাকা সত্ত্বেও, প্রস্তাবিত অপ্টিমাইজেশনের দিকনির্দেশগুলি কৌশলটির স্থায়িত্ব এবং লাভজনকতা আরও বাড়িয়ে তুলতে পারে। কৌশলটির ভিজ্যুয়াল ডিজাইনটি ব্যবসায়ীদের স্বজ্ঞাতভাবে ট্রেডিং সংকেত বুঝতে এবং সম্পাদন করতে সহায়তা করে।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("OptionsMillionaire Strategy with Take Profit Only", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)
// Define custom magenta color
magenta = color.rgb(255, 0, 255) // RGB for magenta
// Input settings for Moving Averages
ema8 = ta.ema(close, 8)
ema21 = ta.ema(close, 21)
sma100 = ta.sma(close, 100)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close) // Fixed VWAP calculation
// Input settings for MACD and RSI
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
rsi = ta.rsi(close, 14)
// Define trend direction
isBullish = ema8 > ema21 and close > sma100 and close > sma200
isBearish = ema8 < ema21 and close < sma100 and close < sma200
// Buy (Call) Signal
callSignal = ta.crossover(ema8, ema21) and isBullish and macdLine > signalLine and rsi > 50
// Sell (Put) Signal
putSignal = ta.crossunder(ema8, ema21) and isBearish and macdLine < signalLine and rsi < 50
// Define Position Size and Take-Profit Level
positionSize = 1 // Position size set to 1 (each trade will use one contract)
takeProfitPercent = 5 // Take profit is 5%
// Variables to track entry price and whether the position is opened
var float entryPrice = na // To store the entry price
var bool positionOpen = false // To check if a position is open
// Backtesting Execution
if callSignal and not positionOpen
// Enter long position (call)
strategy.entry("Call", strategy.long, qty=positionSize)
entryPrice := close // Store the entry price
positionOpen := true // Set position as opened
if putSignal and not positionOpen
// Enter short position (put)
strategy.entry("Put", strategy.short, qty=positionSize)
entryPrice := close // Store the entry price
positionOpen := true // Set position as opened
// Only check for take profit after position is open
if positionOpen
// Calculate take-profit level (5% above entry price for long, 5% below for short)
takeProfitLevel = entryPrice * (1 + takeProfitPercent / 100)
// Exit conditions (only take profit)
if strategy.position_size > 0
// Long position (call)
if close >= takeProfitLevel
strategy.exit("Take Profit", "Call", limit=takeProfitLevel)
if strategy.position_size < 0
// Short position (put)
if close <= takeProfitLevel
strategy.exit("Take Profit", "Put", limit=takeProfitLevel)
// Reset position when it is closed (this happens when an exit is triggered)
if strategy.position_size == 0
positionOpen := false // Reset positionOpen flag
// Plot EMAs
plot(ema8, color=magenta, linewidth=2, title="8 EMA")
plot(ema21, color=color.green, linewidth=2, title="21 EMA")
// Plot SMAs
plot(sma100, color=color.orange, linewidth=1, title="100 SMA")
plot(sma200, color=color.blue, linewidth=1, title="200 SMA")
// Plot VWAP
plot(vwap, color=color.white, style=plot.style_circles, title="VWAP")
// Highlight buy and sell zones
bgcolor(callSignal ? color.new(color.green, 90) : na, title="Call Signal Background")
bgcolor(putSignal ? color.new(color.red, 90) : na, title="Put Signal Background")
// Add buy and sell markers (buy below, sell above)
plotshape(series=callSignal, style=shape.labelup, location=location.belowbar, color=color.green, text="Buy", title="Call Signal Marker")
plotshape(series=putSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell", title="Put Signal Marker")