
সুপার ডায়নামিক কৌশল সমন্বয় একাধিক ডায়নামিক সূচক ব্যবহার করে, যখন একাধিক ডায়নামিক সূচক একই সাথে বেশি বা কম হয়, তখন ক্রয় বা বিক্রয় করা হয়। এই কৌশলটি একাধিক ডায়নামিক সূচককে একত্রিত করে, দামের প্রবণতাকে আরও সঠিকভাবে ক্যাপচার করতে পারে এবং একটি একক সূচকের দ্বারা সৃষ্ট ভুল সংকেত এড়াতে পারে।
এই কৌশলটি একই সাথে 4 টি এভারজেট আরএমআই সূচক এবং একটি চ্যান্ডে গতিশীলতা ওলটপালট সূচক ব্যবহার করে। RMI সূচকটি দামের গতিশীলতার উপর ভিত্তি করে তৈরি করা হয়, যা দামের উত্থান এবং পতনের শক্তি নির্ধারণ করতে পারে। চ্যান্ডে এমও, বাজারের ওভারব্লু ওভারসোলিংয়ের জন্য দামের পরিবর্তনগুলি গণনা করে।
যখন RMI5 তার ক্রয় লাইন, RMI4 তার ক্রয় লাইন, RMI3 তার ক্রয় লাইন, RMI2 তার ক্রয় লাইন, RMI1 তার ক্রয় লাইন এবং Chande MO তার ক্রয় লাইন দিয়ে ক্রয় ক্রিয়াকলাপ পরিচালনা করে।
যখন RMI5 এর নীচে তার বিক্রয় লাইন, আরএমআই 4 এর নীচে তার বিক্রয় লাইন, আরএমআই 3 এর নীচে তার বিক্রয় লাইন, আরএমআই 2 এর নীচে তার বিক্রয় লাইন, আরএমআই 1 এর নীচে তার বিক্রয় লাইন, এবং চ্যান্ডে এমও এর নীচে তার বিক্রয় লাইন, তখন বিক্রয় অপারেশন করা হয়।
আরএমআই ৫ অন্যান্য আরএমআই সূচকগুলির বিপরীত দিকে সেট করা হয়েছে, যা প্রবণতা আরও ভালভাবে সনাক্ত করতে এবং পিরামিড অপারেশন করতে পারে।
একাধিক সূচক সমন্বিত করা, প্রবণতা আরও সঠিকভাবে বিচার করা, একটি একক সূচক ভুল সংকেত এড়ানো
একাধিক সময়কালের সূচক রয়েছে, যা বৃহত্তর স্তরের প্রবণতা সনাক্ত করতে পারে
বিপরীত RMI সূচকগুলি ট্রেন্ড সনাক্তকরণ এবং পিরামিড অপারেশনগুলিতে সহায়তা করতে পারে
চান্দে এমও ভুল লেনদেন এড়াতে সাহায্য করে
অনেকগুলি সূচক সমন্বয়, জটিল পরামিতি সেট করা, সাবধানে পরীক্ষা এবং অপ্টিমাইজেশান প্রয়োজন
একাধিক সূচক একই সময়ে পরিবর্তিত হলে, একটি ভুল সংকেত হতে পারে
বিভিন্ন সূচকের উপর ভিত্তি করে, ট্রেডিং কম হতে পারে
বিভিন্ন জাত এবং বাজার পরিস্থিতির জন্য সূচক প্যারামিটারগুলি উপযুক্ত কিনা তা লক্ষ্য করা দরকার
কৌশল স্থিতিশীলতা উন্নত করার জন্য পরামিতি সেট আপ এবং অপ্টিমাইজ করুন
সিগন্যাল মানের উপর প্রভাবের মূল্যায়ন করার জন্য কিছু সূচক বাড়ানো বা হ্রাস করার চেষ্টা করুন
কিছু ফিল্টারিং শর্তাবলী প্রবর্তন করা যেতে পারে যাতে নির্দিষ্ট বাজারের পরিস্থিতিতে ভুল সংকেতগুলি এড়ানো যায়
সূচকটির ক্রয়-বিক্রয় লাইনের অবস্থান সামঞ্জস্য করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন
ঝুঁকি নিয়ন্ত্রণের জন্য ক্ষতিপূরণ ব্যবস্থা অন্তর্ভুক্ত করার কথা ভাবুন
এই কৌশলটি একাধিক গতিশীল সূচকের সমন্বিত ব্যবহারের মাধ্যমে বাজারের প্রবণতা সম্পর্কে বিচার করার ক্ষমতা বাড়িয়ে তোলে। তবে প্যারামিটার সেট করা আরও জটিল, যা যত্ন সহকারে পরীক্ষা করা, অপ্টিমাইজ করা, ক্রমাগত উন্নতি করা এবং সামঞ্জস্য করা প্রয়োজন। যদি সঠিকভাবে ব্যবহৃত হয় তবে দুর্দান্ত ট্রেডিং সিগন্যাল পাওয়ার আশা করা যায়, বাজার প্রবণতা অনুসরণ করার ক্ষেত্রে কিছুটা সুবিধা রয়েছে। তবে ব্যবসায়ীদের এখনও ঝুঁকির দিকে মনোযোগ দেওয়া, সর্বোত্তম প্যারামিটার প্যাকেজ সন্ধান করা এবং ঝুঁকি নিয়ন্ত্রণ ব্যবস্থায় যোগদানের প্রয়োজন, যাতে স্থিতিশীল বাণিজ্য করা যায়।
/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Super Momentum Strat", shorttitle="SMS", format=format.price, precision=2)
//* Backtesting Period Selector | Component *//
//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//
testStartYear = input(2021, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(999999, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(26, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
/////////////// END - Backtesting Period Selector | Component ///////////////
src = input(close, "Price", type = input.source)
highlightBreakouts = input(title="Highlight Overbought/Oversold Breakouts ?", type=input.bool, defval=true)
CMOlength = input(9, minval=1, title="Alpha Chande Momentum Length")
//CMO
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, CMOlength)
sm2 = sum(m2, CMOlength)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)+50
plot(chandeMO, "Chande MO", color=color.blue)
obLevel = input(75, title="Chande Sellline")
osLevel = input(25, title="Chande Buyline")
hline(obLevel, color=#0bc4d9)
hline(osLevel, color=#0bc4d9)
///
///RMIS
//
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Relative Momentum Index script may be freely distributed under the MIT license.
//
///
///
//RMI1
length1 = input(title="RMI1 Length", type=input.integer, minval=1, defval=8)
momentumLength1 = input(title="RMI1 Momentum ", type=input.integer, minval=1, defval=3)
up1 = rma(max(change(src, momentumLength1), 0), length1)
down1 = rma(-min(change(src, momentumLength1), 0), length1)
rmi1 = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))
obLevel1 = input(57, title="RMI1 Sellline")
osLevel1 = input(37, title="RMI1 Buyline")
rmiColor1 = rmi1 > obLevel1 ? #0ebb23 : rmi1 < osLevel1 ? #ff0000 : #ffe173
plot(rmi1, title="RMI 1", linewidth=2, color=rmiColor1, transp=0)
hline(obLevel1, color=#0b57d9)
hline(osLevel1, color=#0b57d9)
//RMI2
length2 = input(title="RMI2 Length", type=input.integer, minval=1, defval=12)
momentumLength2 = input(title="RMI2 Momentum ", type=input.integer, minval=1, defval=3)
up2 = rma(max(change(src, momentumLength1), 0), length2)
down2 = rma(-min(change(src, momentumLength1), 0), length2)
rmi2 = down2 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up2 / down2))
obLevel2 = input(72, title="RMI2 Sellline")
osLevel2 = input(37, title="RMI2 Buyline")
rmiColor2 = rmi1 > obLevel1 ? #0ebb23 : rmi2 < osLevel2 ? #ff0000 : #c9ad47
plot(rmi2, title="RMI 2", linewidth=2, color=rmiColor2, transp=0)
hline(obLevel2, color=#5a0bd9)
hline(osLevel2, color=#5a0bd9)
//RMI3
length3 = input(title="RMI3 Length", type=input.integer, minval=1, defval=30)
momentumLength3 = input(title="RMI3 Momentum ", type=input.integer, minval=1, defval=53)
up3 = rma(max(change(src, momentumLength3), 0), length3)
down3 = rma(-min(change(src, momentumLength3), 0), length3)
rmi3 = down3 == 0 ? 100 : up3 == 0 ? 0 : 100 - (100 / (1 + up3 / down3))
obLevel3 = input(46, title="RMI3 Sellline")
osLevel3 = input(24, title="RMI3 Buyline")
rmiColor3 = rmi3 > obLevel3 ? #0ebb23 : rmi3 < osLevel3 ? #ff0000 : #967d20
plot(rmi3, title="RMI 3", linewidth=2, color=rmiColor3, transp=0)
hline(obLevel3, color=#cf0bd9)
hline(osLevel3, color=#cf0bd9)
//RMI4
length4 = input(title="RMI4 Length", type=input.integer, minval=1, defval=520)
momentumLength4 = input(title="RMI4 Momentum ", type=input.integer, minval=1, defval=137)
up4 = rma(max(change(src, momentumLength4), 0), length4)
down4 = rma(-min(change(src, momentumLength4), 0), length4)
rmi4 = down4 == 0 ? 100 : up4 == 0 ? 0 : 100 - (100 / (1 + up4 / down4))
obLevel4 = input(0, title="RMI4 Sellline")
osLevel4 = input(100, title="RMI4 Buyline")
rmiColor4 = rmi4 > obLevel4 ? #0ebb23 : rmi4 < osLevel4 ? #ff0000 : #7a630b
plot(rmi4, title="RMI 4", linewidth=2, color=rmiColor4, transp=0)
hline(obLevel4, color=#bd1150)
hline(osLevel4, color=#bd1150)
//RMI5
length5 = input(title="RMI5 Length", type=input.integer, minval=1, defval=520)
momentumLength5 = input(title="RMI5 Momentum ", type=input.integer, minval=1, defval=137)
up5 = rma(max(change(src, momentumLength5), 0), length5)
down5 = rma(-min(change(src, momentumLength5), 0), length5)
rmi5 = down5 == 0 ? 100 : up4 == 0 ? 0 : 100 - (100 / (1 + up5 / down5))
buy5 = input(0, title="RMI5 Buy Above")
sell5 = input(47, title="RMI5 Sell Below")
rmiColor5 = rmi5 > buy5 ? #0ebb23 : rmi5 < sell5 ? #ff0000 : #7a630b
plot(rmi5, title="RMI 5", linewidth=2, color=rmiColor5, transp=0)
hline(buy5, color=#bd1150)
hline(sell5, color=#bd1150)
///
///END RMIS
//
//
// Relative Momentum Index script may be freely distributed under the MIT license.
//
///
///
hline(50, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")
//alerts
longcondition1 = crossover(chandeMO, osLevel)
shortcondition1 = crossunder(chandeMO, obLevel)
longcondition2 = rmi5>buy5 and rmi4<osLevel4 and rmi3<osLevel3 and rmi2<osLevel2 and rmi1<osLevel1 and longcondition1
shortcondition2 = rmi5<sell5 and rmi4>obLevel4 and rmi3>obLevel3 and rmi2>obLevel2 and rmi1>obLevel1 and shortcondition1
if testPeriod()
if longcondition2
strategy.entry("Buy", strategy.long)
if shortcondition2
strategy.entry("Sell", strategy.short)