गतिशील RSI और CCI को मिलाकर बहु-कारक मात्रात्मक ट्रेडिंग रणनीति


निर्माण तिथि: 2023-11-27 18:54:34 अंत में संशोधित करें: 2023-11-27 18:54:34
कॉपी: 0 क्लिक्स: 732
1
ध्यान केंद्रित करना
1617
समर्थक

गतिशील RSI और CCI को मिलाकर बहु-कारक मात्रात्मक ट्रेडिंग रणनीति

अवलोकन

यह रणनीति गतिशील आरएसआई, सीसीआई और मल्टीपल एमए औसत के संयोजन के माध्यम से एक बहु-कारक संचालित मात्रात्मक ट्रेडिंग रणनीति को प्राप्त करती है। यह रणनीति निर्णय लेने और ट्रेडिंग सिग्नल उत्पन्न करने के लिए कई आयामों को समेकित करती है, जैसे कि प्रवृत्ति, ओवरबॉट और ओवरसोल्ड।

रणनीति सिद्धांत

तकनीकी संकेतक

  • औसत एमए: एक निश्चित अवधि के दौरान समापन मूल्य के औसत मूल्य की गणना, मूल्य प्रवृत्ति का आकलन करने के लिए
  • आरएसआई के कमजोर संकेतकों के बीचः ओवरबॉय और ओवरसोल्ड क्षेत्र का आकलन
  • CCI ट्रेंड सूचकांकः ओवरबॉट और ओवरसोल्ड का आकलन करें
  • स्टोच केडीजे सूचकांकः मुख्य प्रवृत्ति से विचलन के लिए यादृच्छिक सूचकांक का आकलन करें

व्यापार संकेत

खरीदें संकेतः MA12 पर MA26 पहनें, CCI 100 से कम (अतिविकसित), Stoch KDJ 80 से कम (अतिविकसित)

बेचने का संकेतः आरएसआई के नीचे गतिशील गिरावट, स्टोच केडीजे 80 से ऊपर (ओवरबॉय)

रणनीतिक लाभ

  1. मल्टी फैक्टर ड्राइव, समग्र निर्णय, झूठे संकेतों को कम करना
  2. गतिशील मूल्यह्रास सेलेबल, वास्तविक समय में ओवरबॉय और ओवरसेलिंग का पता लगाना
  3. प्रवृत्ति, यादृच्छिकता, और कई मुख्यधारा के तकनीकी संकेतकों का संयोजन
  4. बहु-पैरामीटर ट्यूनिंग, उच्च लचीलापन

रणनीतिक जोखिम

  1. बहु-कारक संयोजन बहुत जटिल है, पैरामीटर को अनुकूलित करना मुश्किल है
  2. रणनीति प्रदर्शन पैरामीटर चयन के साथ अत्यधिक संबंधित है
  3. कड़ाई से परिमाण प्रक्रिया के अनुसार पैरामीटर अनुकूलन की आवश्यकता
  4. उच्च वक्रता अनुरूपता जोखिम

रणनीति अनुकूलन

  1. अधिक डेटासेट परीक्षण रणनीतियों की स्थिरता
  2. इष्टतम पैरामीटर खोजने के लिए बहु-समूह पैरामीटर संयोजन परीक्षण
  3. अधिकतम निकासी को कम करने के लिए रोकथाम को बढ़ाएं
  4. स्थिति पर नियंत्रण बढ़ाएं, और नुकसान से बचें
  5. विभिन्न नस्लों के अनुबंधों की उपयुक्तता का परीक्षण करना

संक्षेप

इस रणनीति में कई तकनीकी संकेतकों और बहु-कारक संचालित निर्णयों का व्यापक उपयोग किया गया है, जो पैरामीटर अनुकूलन और सख्त सांख्यिकीय सत्यापन के माध्यम से इष्टतम पैरामीटर की तलाश करते हैं, जिससे बेहतर रणनीतिक प्रभाव प्राप्त किया जा सकता है। हालांकि, उच्च स्तर की जटिलता को ओवरफिट जोखिम को रोकने के लिए आवश्यक है, जबकि स्थिति और स्टॉपलॉस को नियंत्रित करने के लिए अधिकतम वापसी को कम करना है। इस रणनीति को अन्य किस्मों और समय अवधि के लिए अनुकूलन परीक्षण के लिए और अधिक विस्तारित किया जा सकता है।

रणनीति स्रोत कोड
/*backtest
start: 2023-11-19 00:00:00
end: 2023-11-26 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="ATOM2.0", shorttitle="ATOM V2.0", overlay=false, default_qty_type=strategy.cash, currency=currency.USD, initial_capital=200, default_qty_type=strategy.cash, default_qty_value=100, pyramiding=10)

// Set Parameter MA12
len12 = input(12, minval=1, title="Length")
src12 = input(close, title="Source")
ma12 = sma(src12, len12)
//plot(ma12, color=color.blue, title="MA12")

// Set Parameter MA26
len26 = input(26, minval=1, title="Length")
src26 = input(close, title="Source")
ma26 = sma(src26, len26)
//plot(ma26, color=color.orange, title="MA12")

//Stochastic RSI 14,3,3
smoothK_1 = input(3, minval=1)
smoothD_1 = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src_1 = input(close, title="RSI Source_1")

rsi1 = rsi(src_1, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK_1)
d = sma(k, smoothD_1)
//plot(k, color=color.red)
//plot(d, color=color.yellow)

//Stochastic RSI 5,4,3
smoothK_2 = input(4, minval=1)
smoothD_2 = input(3, minval=1)
lengthRSI_2 = input(5, minval=1)
lengthStoch_2 = input(5, minval=1)
src_2 = input(close, title="RSI Source_2")

rsi2 = rsi(src_2, lengthRSI_2)
k_2 = sma(stoch(rsi2, rsi2, rsi2, lengthStoch_2), smoothK_2)
d_2 = sma(k_2, smoothD_2)
//plot(k_2, color=color.white)
//plot(d_2, color=color.green)

// CCI
cci = cci(close,26)
//plot(cci,color=color.blue)

// Dynamic RSI
DZbuy = 0.1
DZsell = 0.1
Period = 14
Lb = 60

RSILine = rsi(close,Period)
jh = highest(RSILine, Lb)
jl = lowest(RSILine, Lb)
jc = (wma((jh-jl)*0.5,Period) + wma(jl,Period))
Hiline = jh - jc * DZbuy
Loline = jl + jc * DZsell
R = (4 * RSILine + 3 * RSILine[1] + 2 * RSILine[2] + RSILine[3] ) / 10

plot(R, title='R', color=color.white, linewidth=1, transp=0)
plot(Hiline, title='Hiline', color=color.yellow,  linewidth=1, transp=0)
plot(Loline, title='Loline', color=color.yellow, linewidth=1, transp=0)
plot(jc, title='Jc', color=color.purple,  linewidth=1, transp=50)

col_1 = R > Hiline ? color.red:na
col_2 = R < Loline ? color.green:na

fill(plot(R, title='R', color=color.white, linewidth=1, transp=0), plot(Hiline, title='Hiline', color=color.yellow,  linewidth=1, transp=0), color=col_1,transp=0)
fill(plot(R, title='R', color=color.white, linewidth=1, transp=0), plot(Loline, title='Loline', color=color.yellow, linewidth=1, transp=0), color=col_2,transp=0)
//------------------------------------------------------------------------------
// Calculate qty
// Parameter
fund = 10           // Fund per Contract in USD
leverage = 100     // Leverage
// Buy Condition
buyCondition = (ma12>ma26 and cci<100 and k<80 and d<80 and k_2<80 and d_2<80 and crossover(k_2, d_2))
buy = (buyCondition == input(1))
alertcondition(buy, title='time to Long', message='Long!!!')
//closeBuy = (cci>100 and cci<cci[1] and cci<cci[2])
closeBuy = (crossunder(R, Hiline) and k>80)
alertcondition(closeBuy, title='Time to Close', message='Close Long')

// Submit Orders
strategy.entry(id="Long", qty=(fund*leverage)/close, long=true, when=buyCondition)
strategy.close(id="Long", when=closeBuy)