मल्टी-मोमेंटम इंडिकेटर कॉम्बो रणनीति

लेखक:चाओझांग, दिनांक: 2023-09-24 13:24:47
टैगः

अवलोकन

यह प्रयोगात्मक रणनीति चैंडे मोमेंटम, आरएमआई, ट्रिपल एचएमए आरएसआई, डबल ईवीडब्ल्यू आरएसआई, ट्रिपल ईएमए आरएसआई और अन्य गति संकेतकों को जोड़ती है, जब सभी संकेतक संरेखित संकेत देते हैं तो पदों में प्रवेश करते हैं। एक बहु-कारक प्रयोगात्मक मॉडल।

रणनीति तर्क

  1. चैंडे गति की गणना करें और इसकी खरीद और बिक्री लाइनें सेट करें।

  2. आरएमआई, ट्रिपल एचएमए आरएसआई, डबल ईवीडब्ल्यू आरएसआई, ट्रिपल ईएमए आरएसआई और अन्य संकेतकों की गणना करें।

  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")

अधिक