
এই কৌশলটি মুভিং এভারেজ ক্রসওভার সিগন্যালের উপর ভিত্তি করে একটি স্বয়ংক্রিয় ট্রেডিং সিস্টেম, যা একটি নির্দিষ্ট ঝুঁকি-রিটার্ন অনুপাত নির্ধারণ করে ট্রেডিং কর্মক্ষমতাকে সর্বোত্তম করে তোলে। এই কৌশলটি বাজারের প্রবণতার দিক নির্ধারণের জন্য দ্রুত চলমান গড় (ফাস্ট এমএ) এবং ধীর চলমান গড় (স্লো এমএ) এর ক্রসওভার ব্যবহার করে এবং অবস্থান ঝুঁকি পরিচালনা করার জন্য পূর্বনির্ধারিত স্টপ লস পয়েন্ট এবং লাভ লক্ষ্যকে একত্রিত করে।
কৌশলটির মূল যুক্তিটি বিভিন্ন সময়কাল (10-পিরিয়ড এবং 30-পিরিয়ড) সহ দুটি চলমান গড় দ্বারা উত্পন্ন ক্রসওভার সংকেতের উপর ভিত্তি করে। যখন দ্রুত লাইনটি ধীরগতির লাইন অতিক্রম করে, তখন সিস্টেমটি একটি দীর্ঘ সংকেত তৈরি করে; প্রতিটি অবস্থান খোলার পরে, সিস্টেমটি স্বয়ংক্রিয়ভাবে প্রিসেট 2% স্টপ লস অনুপাতের উপর ভিত্তি করে স্টপ লস অবস্থান গণনা করবে এবং 2.5 গুণের ঝুঁকি-রিটার্ন অনুপাতের উপর ভিত্তি করে একটি লাভ লক্ষ্য নির্ধারণ করবে। এই পদ্ধতি নিশ্চিত করে যে প্রতিটি ট্রেডে একটি নির্দিষ্ট ঝুঁকি-রিটার্ন প্রোফাইল রয়েছে।
এই কৌশলটি আধুনিক ঝুঁকি ব্যবস্থাপনা ধারণার সাথে ক্লাসিক প্রযুক্তিগত বিশ্লেষণ পদ্ধতির সমন্বয় করে একটি সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। যদিও কিছু সীমাবদ্ধতা রয়েছে, ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, কৌশলটি বিভিন্ন বাজার পরিবেশে স্থিতিশীল কর্মক্ষমতা বজায় রাখবে বলে আশা করা হচ্ছে। মূল কথা হলো প্রকৃত ট্রেডিং ফলাফলের উপর ভিত্তি করে ক্রমাগত প্যারামিটার সেটিংস সামঞ্জস্য করা এবং বর্তমান বাজার পরিবেশের সাথে সবচেয়ে উপযুক্ত কনফিগারেশন খুঁজে বের করা।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SOL 15m 2.5 R:R Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1)
//---------------------------------------------------
// User Inputs
//---------------------------------------------------
// sym = input.symbol("swap", "Symbol")
timeframe = input.timeframe("15", "Timeframe")
fastLength = input.int(10, "Fast MA Length")
slowLength = input.int(30, "Slow MA Length")
stopLossPerc = input.float(2.0, "Stop Loss %", step=0.1) // This is an example; adjust to achieve ~45% win rate
RR = input.float(2.5, "Risk to Reward Ratio", step=0.1)
//---------------------------------------------------
// Data Sources
//---------------------------------------------------
price = request.security("swap", timeframe, close)
// Compute moving averages
fastMA = ta.sma(price, fastLength)
slowMA = ta.sma(price, slowLength)
// Entry Conditions
longCondition = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)
//---------------------------------------------------
// Stop Loss and Take Profit Calculation
//---------------------------------------------------
var entryPrice = 0.0
if (strategy.position_size == 0) // not in a position
if longCondition
// Long entry
entryPrice := price
strategy.entry("Long", strategy.long)
if shortCondition
// Short entry
entryPrice := price
strategy.entry("Short", strategy.short)
if strategy.position_size > 0
// We are in a long position
if strategy.position_avg_price > 0 and strategy.position_size > 0
longStop = strategy.position_avg_price * (1 - stopLossPerc/100)
longTarget = strategy.position_avg_price * (1 + (stopLossPerc/100)*RR)
strategy.exit("Long Exit", "Long", stop=longStop, limit=longTarget)
if strategy.position_size < 0
// We are in a short position
if strategy.position_avg_price > 0 and strategy.position_size < 0
shortStop = strategy.position_avg_price * (1 + stopLossPerc/100)
shortTarget = strategy.position_avg_price * (1 - (stopLossPerc/100)*RR)
strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortTarget)
//---------------------------------------------------
// Plotting
//---------------------------------------------------
plot(fastMA, color=color.new(color.teal, 0), title="Fast MA")
plot(slowMA, color=color.new(color.orange, 0), title="Slow MA")