
এই কৌশলটি বিভিন্ন ধরণের গড়ের গণনা করে (Simple Moving Average SMA, Index Moving Average EMA, Hull Moving Average HMA এবং Quantitative Weighted Moving Average VWMA) এবং তাদের ক্রসপয়েন্টগুলি খুঁজে বের করে, ট্রেন্ডিংয়ের প্রবণতা নির্ধারণ করে এবং ট্রেন্ড অনুসরণ করে। যখন একটি সংক্ষিপ্ত গড় নীচে থেকে দীর্ঘমেয়াদী গড় অতিক্রম করে তখন একটি কেনার সংকেত উত্পন্ন করে; যখন একটি সংক্ষিপ্ত গড় উপরে থেকে নীচে দীর্ঘমেয়াদী গড় অতিক্রম করে তখন একটি বিক্রয় সংকেত উত্পন্ন করে।
এই কৌশলটি মূলত দুটি ভিন্ন গড়ের মধ্যে সম্পর্কের তুলনা করে বাজারের গতিবিধি নির্ধারণ করে। বিশেষত, ইনপুট প্যারামিটারগুলির মাধ্যমে দুটি গড়ের ধরন এবং দৈর্ঘ্য সেট করুন। প্রথম গড়ের দৈর্ঘ্য দীর্ঘ, দীর্ঘমেয়াদী প্রবণতা প্রতিনিধিত্ব করে; দ্বিতীয় গড়ের দৈর্ঘ্য সংক্ষিপ্ত, বর্তমান স্বল্পমেয়াদী প্রবণতা প্রতিনিধিত্ব করে।
যখন স্বল্পমেয়াদী গড় নীচে থেকে দীর্ঘমেয়াদী গড় অতিক্রম করে, তখন স্বল্পমেয়াদী প্রবণতা শক্তিশালী হয়, দাম একটি উচ্চতর প্রবণতা প্রবেশ করে, তাই এই ক্রসিং পয়েন্টে একটি কেনার সংকেত জারি করে। বিপরীতভাবে, যখন স্বল্পমেয়াদী গড় উপরে থেকে দীর্ঘমেয়াদী গড় অতিক্রম করে, তখন স্বল্পমেয়াদী প্রবণতা দুর্বল হয়, দাম একটি নিম্নমুখী প্রবণতা প্রবেশ করে, তাই এই ক্রসিং পয়েন্টে একটি বিক্রয় সংকেত জারি করে।
মার্কেট ট্রেন্ড অনুসরণ করে ট্রেডিং করার জন্য এই ধরনের সমান্তরাল ক্রস-ডিক্রিমিনেশন ব্যবহার করুন।
ঝুঁকি মোকাবিলার উপায়ঃ
এই কৌশলটি সমান্তরাল ক্রস বিচার প্রধান প্রবণতা ক্লাসিক চিন্তা উপর ভিত্তি করে, বিভিন্ন সমান্তরাল সমন্বয় দ্বারা নমনীয় আবেদন. কৌশল লজিক সহজ, সহজ বাস্তবায়ন, স্বয়ংক্রিয় লেনদেনের জন্য উপযুক্ত. সামগ্রিকভাবে, এই কৌশলটি কিছু ব্যবহারিকতা আছে, কিন্তু কিছু উন্নতি অপ্টিমাইজেশনের জন্য স্থান আছে। প্যারামিটার অপ্টিমাইজেশন, অন্যান্য ফিল্টার বিচার যোগ করার মতো পদ্ধতির মাধ্যমে কৌশল কর্মক্ষমতা ক্রমাগত উন্নত করা যেতে পারে।
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy", overlay=true)
src = input(close, title="Source")
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])
ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"])
f_hma(_src, _length)=>
_return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))
price1 = if (type1 == "SMA")
sma(price, ma1)
else
if (type1 == "EMA")
ema(price, ma1)
else
if (type1 == "VWMA")
vwma(price, ma1)
else
f_hma(price, ma1)
price2 = if (type2 == "SMA")
sma(price, ma2)
else
if (type2 == "EMA")
ema(price, ma2)
else
if (type2 == "VWMA")
vwma(price, ma2)
else
f_hma(price, ma2)
//plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)
longCondition = crossover(price1, price2)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = crossunder(price1, price2)
if (shortCondition)
strategy.entry("Short", strategy.short)