
গড়রেখা রিটার্ন ব্রেকিং কৌশলটি একটি প্রচলিত ট্রেন্ড-ট্র্যাকিং পরিমাণগত ট্রেডিং কৌশল। এই কৌশলটি বাজারের গতিবিধি নির্ধারণের জন্য মুভিং এভারেজ এবং এর স্ট্যান্ডার্ড ডিভেরিয়েন্ট চ্যানেল ব্যবহার করে এবং যখন দাম স্ট্যান্ডার্ড ডিভেরিয়েন্ট চ্যানেলটি ভেঙে যায় তখন ট্রেডিং সিগন্যাল তৈরি করে।
এই কৌশলটি প্রথমে N দিন (ডিফল্ট 50 দিন) এর জন্য একটি সরল চলমান গড় এসএমএ গণনা করে, তারপরে এসএমএর উপর ভিত্তি করে এই সময়ের দামের স্ট্যান্ডার্ড ডিভার্জেন্স StdDev গণনা করে। এসএমএকে কেন্দ্রীয় অক্ষ হিসাবে গ্রহণ করে, এবং উপরে এবং নীচে স্ট্যান্ডার্ড ডিভার্জেন্স চ্যানেলটি উপরের এবং নীচের ট্র্যাকের 2 গুণ হিসাবে তৈরি করে। যখন দামটি ট্র্যাকের উপরে চলে যায়, তখন ফাঁকা করে; যখন দামটি নীচের ট্র্যাকটি অতিক্রম করে, তখন আরও বেশি করে।
বাজারে প্রবেশের পর, কৌশলটি স্টপ লস স্টপ সেট করে। বিশেষ করে, অতিরিক্ত কাজ করার পরে, স্টপ লিনার প্রবেশের সময় বন্ধের দামের ((100 - স্টপ লস শতাংশ); খালি হওয়ার পরে, স্টপ লিনার প্রবেশের সময় বন্ধের দামের ((100 + স্টপ লস শতাংশ) ।
এই কৌশলটির সুবিধাগুলো হলঃ
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
ঝুঁকি মোকাবেলার জন্য নিম্নলিখিত সমাধানগুলি রয়েছেঃ
এই কৌশলটি আরও উন্নত করার সুযোগ রয়েছেঃ
১. একাধিক সময়কালের গড়রেখা ব্যবহার করে যাচাইকরণ করুন, যাতে কার্ভটি অত্যধিক সংবেদনশীল না হয়।
২. প্রবণতা এবং বিচ্ছিন্নতা যেমন MACD এর মতো অন্যান্য সূচকগুলির সাথে মিলিত।
৩। মেশিন লার্নিং অ্যালগরিদমের গতিশীল অপ্টিমাইজেশান প্যারামিটারগুলি প্রবর্তন করা।
সমান্তরাল রিটার্ন ব্রেকিং কৌশল সামগ্রিকভাবে একটি খুব ব্যবহারিক পরিমাণযুক্ত ট্রেডিং কৌশল। এটি প্রবণতা অনুসরণ, প্রত্যাহার নিয়ন্ত্রণের সুবিধাগুলি রয়েছে, এটি সহজ এবং পরিমাণযুক্ত ব্যবসায়ের জন্য উপযুক্ত। তবে কিছু প্যারামিটার নির্বাচন এবং স্টপ লস সেটিংয়ের বিষয়েও মনোযোগ দেওয়া দরকার, মাল্টি-টাইম অক্ষ বিশ্লেষণ এবং প্যারামিটার অপ্টিমাইজেশনের সাথে মিলিত হয়ে আরও ভাল কৌশল পারফরম্যান্স অর্জন করা যায়।
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Standard Deviation Bands with Buy/Sell Signals", overlay=true)
// Input for the number of standard deviations
deviationMultiplier = input.float(2.0, title="Standard Deviation Multiplier")
// Input for the length of the moving average
maLength = input.int(50, title="Moving Average Length")
// Input for the stop loss percentage
stopLossPercentage = input.float(12, title="Stop Loss Percentage")
// Calculate the moving average
sma = ta.sma(close, maLength)
// Calculate the standard deviation of the price
priceDeviation = ta.stdev(close, maLength)
// Calculate the upper and lower bands
upperBand = sma + (priceDeviation * deviationMultiplier)
lowerBand = sma - (priceDeviation * deviationMultiplier)
// Plot the bands
plot(upperBand, color=color.green, title="Upper Band")
plot(lowerBand, color=color.red, title="Lower Band")
// Plot the moving average
plot(sma, color=color.blue, title="SMA", linewidth=2)
// Buy Signal
buyCondition = ta.crossover(close, lowerBand)
sellCondition = ta.crossunder(close, upperBand)
// Calculate stop loss level
stopLossLevelBuy = close * (1 - stopLossPercentage / 100)
stopLossLevelSell = close * (1 + stopLossPercentage / 100)
// Create Buy and Sell Alerts
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal - Price Crossed Below Lower Band")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal - Price Crossed Above Upper Band")
// Plot Buy and Sell Arrows on the chart
plotshape(buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, title="Buy Signal Arrow")
plotshape(sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, title="Sell Signal Arrow")
// Exit Long and Short Positions
var float stopLossBuy = na
var float stopLossSell = na
if ta.crossover(close, sma)
stopLossBuy := stopLossLevelBuy
if ta.crossunder(close, sma)
stopLossSell := stopLossLevelSell
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Stop Loss/Take Profit Buy", from_entry = "Buy", stop = stopLossBuy)
strategy.entry("Sell", strategy.short, when = sellCondition)
strategy.exit("Stop Loss/Take Profit Sell", from_entry = "Sell", stop = stopLossSell)