
ডাবল ইয়ারলাইন ক্রসিং কৌশলটি একটি ক্লাসিক ট্রেডিং ট্রেডিং কৌশল। এই কৌশলটি দুটি চলমান গড় ব্যবহার করে, একটি দ্রুত চলমান গড় এবং অন্যটি ধীর চলমান গড়। যখন দ্রুত চলমান গড়টি ধীর চলমান গড়ের উপরে থেকে নীচে চলে যায়, তখন এটি একটি “গোল্ডেন ক্রস” বলা হয়, যা নির্দেশ করে যে একটি উচ্চতর প্রবণতা তৈরি হতে পারে, এবং এই সময়ে আরও পজিশন খোলা হয়। যখন দ্রুত চলমান গড়টি ধীর চলমান গড়ের উপরে থেকে নীচে চলে যায়, তখন এটি একটি “মৃত্যু ক্রস” বলা হয়, যা নির্দেশ করে যে একটি নিম্নমুখী প্রবণতা তৈরি হতে পারে, এবং এই সময়ে পজিশন খালি হয়। এই কৌশলটি কোডটি সহজ চলমান গড় (এসএমএ) এবং ডিজিটাল চলমান গড় (ইএমএ) ব্যবহার করে এবং এটি স্টপ লস সেট করতে পারে।
এই কৌশলটির মূল বিষয় হল ট্রেন্ডের দিকনির্দেশনা এবং খোলার সময় নির্ধারণের জন্য চলমান গড়ের প্রবণতা এবং ক্রস সিগন্যাল ব্যবহার করা। প্রথমত, একটি দ্রুত চলমান গড় (ডিফল্ট 50) এবং একটি ধীর চলমান গড় (ডিফল্ট 200) এর প্যারামিটারগুলি সেট করে এবং একটি এসএমএ বা ইএমএ ব্যবহার করার জন্য বেছে নেওয়া হয়। তারপরে দুটি চলমান গড় গণনা করে তাদের ক্রসিংয়ের বিষয়ে বিচার করুনঃ
ডাবল-ইউভালাইন ক্রস কৌশলটি একটি সহজ ক্লাসিক ট্রেন্ড ট্র্যাকিং কৌশল যা ট্রেন্ডের দিকনির্দেশ এবং পজিশন খোলার সময় নির্ধারণের জন্য দুটি ভিন্ন পিরিয়ডের মুভিং এভারেজের ক্রস দ্বারা উপযুক্ত। তবে স্থির প্যারামিটারগুলি পরিবর্তিত বাজার পরিবেশে অস্থির হতে পারে এবং আরও অপ্টিমাইজেশনের প্রয়োজন যেমন অপ্টিমাইজেশন প্যারামিটার, স্টপ লস উন্নত করা, সংকেত প্রবর্তন করা ইত্যাদি। এটি একটি অপেক্ষাকৃত স্থিতিশীল ট্রেডিং কৌশল হতে পারে। এই কৌশলটি ট্রেন্ড কৌশলটির ভিত্তি হিসাবে কাজ করতে পারে এবং এর ভিত্তিতে ক্রমাগত উন্নতি ও সম্প্রসারণ করা যেতে পারে।
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//==============================================================================
// A baseline strategy with a well known concept, golden cross & death cross.
// Support for both Simple & Exponential moving averages.
// Support for long & short stop losses as a percentage.:well
//==============================================================================
strategy("Basic Moving Average Crosses", overlay=true)
//------------------------------------------------------------------------------
// configuration
//------------------------------------------------------------------------------
maQuickLength = input(50, title="Quick MA Length")
maSlowLength = input(200, title="Quick MA Length")
useSma = input(true, title="Use SMA? If false, EMA is used.")
maQuick = useSma ? ta.sma(close, maQuickLength) : ta.ema(close, maQuickLength)
maSlow = useSma ? ta.sma(close, maSlowLength) : ta.ema(close, maSlowLength)
stop_loss_percentage = input(2.0, title="Stop Loss (%)")
var float longStopLevel = na
var float shortStopLevel = na
bool isGoldenCross = ta.crossover(maQuick, maSlow)
bool isDeathCross = ta.crossunder(maQuick, maSlow)
//------------------------------------------------------------------------------
// position opening logic
//------------------------------------------------------------------------------
if(strategy.position_size == 0)
// Golden cross, enter a long position
if(isGoldenCross)
strategy.entry("Buy", strategy.long)
longStopLevel := close - close * stop_loss_percentage/100.0
strategy.exit("StopLossLong", "Buy", stop=longStopLevel)
// Death cross, enter short position
else if(isDeathCross)
strategy.entry("Sell", strategy.short)
shortStopLevel := close + close * stop_loss_percentage/100.0
strategy.exit("StopLossShort", "Sell", stop=shortStopLevel)
//------------------------------------------------------------------------------
// position closing logic
//------------------------------------------------------------------------------
else
// Close long position on death cross
if(strategy.position_size > 0 and isDeathCross)
strategy.close("Buy")
// Close short position on golden cross
else if(strategy.position_size < 0 and isGoldenCross)
strategy.close("Sell")
//------------------------------------------------------------------------------
// ploting
//------------------------------------------------------------------------------
plot(maQuick, color=color.yellow)
plot(maSlow, color=color.blue)