মাল্টি-মোমেন্টাম ইন্ডিকেটর কম্বো কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-০৯-২৪ ১৩ঃ২৪ঃ৪৭
ট্যাগঃ

সারসংক্ষেপ

এই পরীক্ষামূলক কৌশলটি চ্যান্ডে মম্পটম, আরএমআই, ট্রিপল এইচএমএ আরএসআই, ডাবল ইভিডাব্লু আরএসআই, ট্রিপল ইএমএ আরএসআই এবং অন্যান্য গতির সূচকগুলিকে একত্রিত করে, যখন সমস্ত সূচকগুলি সারিবদ্ধ সংকেত দেয় তখন অবস্থানগুলি প্রবেশ করে। একটি মাল্টি-ফ্যাক্টর পরীক্ষামূলক মডেল।

কৌশলগত যুক্তি

  1. চ্যান্ডে মম্পটাম গণনা করুন এবং এর ক্রয় এবং বিক্রয় লাইন সেট করুন।

  2. RMI, Triple HMA RSI, Double EVW RSI, Triple EMA RSI এবং অন্যান্য সূচক গণনা করুন।

  3. প্রতিটি সূচকের জন্য ক্রয় এবং বিক্রয় লাইন সেট করুন।

  4. যখন চ্যান্ডে মম্পটম তার ক্রয় রেখার উপরে অতিক্রম করে, অন্য সূচকগুলিও তাদের নিজ নিজ ক্রয় রেখার নীচে রয়েছে কিনা তা পরীক্ষা করুন। যদি সমস্ত শর্ত পূরণ করা হয়, দীর্ঘ সংকেত তৈরি করুন।

  5. বিপরীতভাবে, যখন চ্যানড ইম্পোমেন্টাম বিক্রয় লাইনের নিচে অতিক্রম করে, যখন অন্যান্য সূচক তাদের বিক্রয় লাইন অতিক্রম করে, তখন সংক্ষিপ্ত সংকেত উৎপন্ন হয়।

সুবিধা

  1. সূচকগুলির সংমিশ্রণটি ভুল সংকেতগুলি এড়াতে পারস্পরিক বৈধতা প্রদান করে।

  2. চাঁদের গতিশীলতা প্রবণতা পরিবর্তনকে সংবেদনশীলভাবে ক্যাপচার করে।

  3. আরএমআই অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয়ের মাত্রা চিহ্নিত করার জন্য গতির মাত্রা দেখায়।

  4. HMA RSI, EVW RSI ইত্যাদির সাথে বিভিন্ন RSI গণনার পরীক্ষা করা।

  5. নমনীয় মাল্টি-ইন্ডিক্টর কম্বো ইন্ডিক্টর কার্যকারিতা পরীক্ষা করতে সক্ষম করে।

ঝুঁকি

  1. মাল্টি-ইন্ডিক্টর কম্বোর জন্য প্রয়োজনীয়তা পূরণ করা কঠিন, কম ট্রেড, মিস করা সুযোগ।

  2. স্টপ লস এর মত কোন ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা নেই।

  3. সূচক কর্মক্ষমতা সময়সীমার উপর নির্ভরশীল, সব সময়কালে কাজ নাও করতে পারে।

  4. কোন প্যারামিটার অপ্টিমাইজেশান, খারাপ প্যারামিটার টিউনিং সম্ভব.

  5. কৌশলটি পুরোপুরি বৈধ করার জন্য পর্যাপ্ত ব্যাকটেস্ট ডেটা নেই।

সম্ভাব্য সমাধান:

  1. আরও বেশি ট্রেডের জন্য সূচক সীমা শিথিল করা।

  2. হ্রাসকে সীমাবদ্ধ করার জন্য ট্রেইলিং বা হার্ড স্টপ লস অন্তর্ভুক্ত করুন।

  3. সর্বোত্তম পরামিতি খুঁজে পেতে বিভিন্ন পণ্য এবং সময়সীমা পরীক্ষা করুন।

  4. প্যারামিটার অপ্টিমাইজেশনের জন্য মেশিন লার্নিং বা গ্রিড অনুসন্ধান ব্যবহার করুন।

  5. আরও বেশি বাজারে ব্যাকটেস্ট করা হবে যাতে এর স্থিতিশীলতা নিশ্চিত হয়।

অপ্টিমাইজেশান নির্দেশাবলী

  1. সর্বোত্তম কনফিগারেশন খুঁজে পেতে বিভিন্ন প্যারামিটার সেট পরীক্ষা করুন।

  2. অ্যাডাপ্টিভ মাল্টি-টাইমস্কেল ইম্পুটম ইন্ডিকেটর যোগ করুন।

  3. প্রতি-প্রবণতা ট্রেড এড়ানোর জন্য প্রবণতা সনাক্তকরণ অন্তর্ভুক্ত করুন।

  4. মেশিন লার্নিং ব্যবহার করে মাল্টি-ইনডিকেটর ওয়েটিং উন্নত করা।

  5. এন্ট্রি উন্নত করার জন্য চলমান গড় সিস্টেমের সাথে একত্রিত করুন।

সংক্ষিপ্তসার

এই কৌশলটি একাধিক গতির সূচককে একত্রিত করে আরও নির্ভরযোগ্য প্রবণতা টার্নিং পয়েন্টগুলি সনাক্ত করার চেষ্টা করে। কার্ভ-ফিটিংয়ের মতো ঝুঁকিগুলি পরিচালনা করতে হবে, তবে আরও গুণমানের সংকেত অর্জনের জন্য প্যারামিটার নির্বাচন, সূচক ওজন, ঝুঁকি নিয়ন্ত্রণ ইত্যাদির মতো ক্ষেত্রে বৈচিত্র্যযুক্ত লজিকের বিশাল প্রসারণযোগ্যতা এবং অপ্টিমাইজেশনের সম্ভাবনা রয়েছে।


/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © burgercrisis

//@version=4
strategy("RMI + Triple HMRSI + Double EVWRSI + TERSI Strategy")

//* 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)
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)
plot(chandeMO, "Chande MO", color=color.blue)




//RMI
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Relative Momentum Index script may be freely distributed under the MIT license.
length3 = input(title="RMI Length", type=input.integer, minval=1, defval=30)
momentumLength3 = input(title="RMI Momentum ", type=input.integer, minval=1, defval=25)
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)))-50
//
//
// end RMI, end Alex Orekhov copywrite
//
//

lengthMA = input(7)
lengthRSI = input(14)
thrsi = hma(hma(hma(rsi(src, lengthRSI), lengthMA), lengthMA), lengthMA)
thrsi1 = (thrsi-50)*10

lengthMA2 = input(7)
lengthRSI2 = input(14)
devwrsi = ((ema(ema(vwma(rsi(src, lengthRSI2), lengthMA2), lengthMA2), lengthMA2))-50)*5

lengthMA3 = input(7)
lengthRSI3 = input(14)
tersi = ((ema(ema(ema(rsi(src, lengthRSI3), lengthMA3), lengthMA3), lengthMA3))-50)*10

rmirsi = ((thrsi*rmi3/25))

//Boundary Lines

obLevel1 = input(0, title="Chande Sellline")
osLevel1 = input(0, title="Chande Buyline")
hline(obLevel1, color=#0bc4d9)
hline(osLevel1, color=#0bc4d9)

obLevel2 = input(0, title="Triple HMRSI Sellline")
osLevel2 = input(0, title="Triple HMRSI Buyline")
hline(obLevel2, color=#5a0bd9)
hline(osLevel2, color=#5a0bd9)

obLevel3 = input(0, title="DEVWRSI Sellline")
osLevel3 = input(0, title="DEVWRSI Buyline")
hline(obLevel3, color=#5a0bd9)
hline(osLevel3, color=#5a0bd9)

obLevel4 = input(0, title="TERSI Sellline")
osLevel4 = input(0, title="TERSI Buyline")
hline(obLevel4, color=#5a0bd9)
hline(osLevel4, color=#5a0bd9)

obLevel5 = input(0, title="RMI Sellline")
osLevel5 = input(0, title="RMI Buyline")
hline(obLevel5, color=#5a0bd9)
hline(osLevel5, color=#5a0bd9)

obLevel6 = input(0, title="RMI*RSI Sellline")
osLevel6 = input(0, title="RMI*RSI Buyline")
hline(obLevel6, color=#5a0bd9)
hline(osLevel6, color=#5a0bd9)

plot((thrsi1), title="THRSI")
plot(devwrsi, color=color.red, title="DEVWRSI")
plot(tersi, color=color.yellow, title="TERSI")
plot(rmirsi, color=color.purple, title="RMI*HMRSI")
plot(rmi3, color=color.orange, title="RMI")




longcondition1 = crossover(chandeMO, osLevel1)
shortcondition1 = crossunder(chandeMO, obLevel1)
longcondition2 = rmirsi<osLevel6 and rmi3<osLevel5 and tersi<osLevel4 and devwrsi<osLevel3 and thrsi1<osLevel2  and longcondition1
shortcondition2 = rmirsi>obLevel6 and rmi3>obLevel5 and tersi>obLevel4 and devwrsi>obLevel3 and thrsi1>obLevel2  and shortcondition1

if testPeriod()
    if longcondition2
        strategy.entry("Buy", strategy.long)
    if shortcondition2
        strategy.entry("Sell", strategy.short)






hline(0, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")

আরো