मोमेंटम मूविंग एवरेज समेकन रणनीति


निर्माण तिथि: 2024-01-25 11:39:00 अंत में संशोधित करें: 2024-01-25 11:39:00
कॉपी: 0 क्लिक्स: 682
1
ध्यान केंद्रित करना
1617
समर्थक

मोमेंटम मूविंग एवरेज समेकन रणनीति

अवलोकन

यह रणनीति मुख्य रूप से खरीदने का समय निर्धारित करने के लिए चलती औसत एचएमए और ईएमए के गठन की समानांतर संरेखण का उपयोग करती है। एचएमए पर ईएमए पहनने को संरेखण के अंत के रूप में माना जाता है, जिससे नई ऊंची प्रवृत्ति बनती है, इसलिए एचएमए पर ईएमए पहनने के साथ खरीदा जाता है।

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

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

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

यदि स्टॉक की कीमत वापस आ जाती है, तो एचएमए फिर से ईएमए को नीचे ले जाता है, यह दर्शाता है कि एक नया पुनर्गठन शुरू हो गया है, तो यह पूरी तरह से बकाया है। साथ ही, यदि आरएसआई 80 पर जाता है, तो नुकसान को रोकने के लिए 20% का आंशिक स्टॉप होगा।

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

श्रेष्ठता विश्लेषण

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

इसके अलावा, रणनीति केवल 3 संकेतकों का उपयोग करती है और तर्क सरल है, जो इसके पैरामीटर को अनुकूलित करने और मापने के लिए सुविधाजनक बनाता है, जो रणनीति के सत्यापन और सुधार के लिए अनुकूल है।

जोखिम विश्लेषण

हालांकि इस रणनीति के कुछ फायदे हैं, फिर भी कुछ जोखिम हैं जिन पर ध्यान देने की आवश्यकता है। उदाहरण के लिए, स्थिति का समय लंबा हो सकता है और पर्याप्त वित्तीय समर्थन की आवश्यकता होती है। यदि आप एक क्षैतिज समाशोधन अवधि का सामना करते हैं, तो आप जल्दी से नुकसान से बाहर नहीं निकल सकते हैं, तो नुकसान बढ़ने की संभावना है।

इसके अलावा, यह रणनीति मुख्य रूप से समानांतर संकेतकों पर निर्भर करती है, और यदि कीमत में असामान्य रूप से टूट जाती है, तो रोकथाम उपायों का समय पर प्रभाव नहीं पड़ सकता है, जिससे अधिक जोखिम होता है। इसके अलावा, पैरामीटर सेटिंग्स भी रणनीति के प्रदर्शन को प्रभावित करती हैं, और इष्टतम पैरामीटर खोजने के लिए भारी परीक्षण की आवश्यकता होती है।

अनुकूलन दिशा

उपरोक्त जोखिमों को ध्यान में रखते हुए, इस रणनीति को निम्नलिखित तरीकों से अनुकूलित किया जा सकता हैः

  1. बाजार में उतार-चढ़ाव के आधार पर स्थिति को गतिशील रूप से समायोजित करने के लिए अस्थिरता सूचक के साथ।

  2. ट्रेडों में अनावश्यक उलटा व्यापार से बचने के लिए ट्रेंड इंडिकेटर का आकलन बढ़ाएं।

  3. चलती औसत के पैरामीटर को अनुकूलित करें ताकि यह वर्तमान बाजार की विशेषताओं के करीब हो।

  4. समय की बर्बादी को रोकने के लिए, एकल नुकसान की अत्यधिक समस्या से बचें।

संक्षेप

इस रणनीति के लिए कुल मिलाकर एक अपेक्षाकृत क्लासिक सरल समेकित कंपन रणनीति है. यह मुख्य रूप से शेयर सूचकांक और लोकप्रिय शेयरों की छोटी और मध्यम अवधि के व्यापार के लिए लागू किया जाता है, जो एक अपेक्षाकृत स्थिर अल्फा मूल्य प्राप्त कर सकते हैं. पैरामीटर के अनुकूलन और जोखिम नियंत्रण उपायों के सुदृढीकरण के साथ, इस रणनीति के प्रदर्शन में काफी सुधार की जगह है.

रणनीति स्रोत कोड
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © mohanee

//@version=4
strategy(title="EMA_HMA_RSI_Strategy", overlay=true, pyramiding=2,     default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed, 

//longCondition = crossover(sma(close, 14), sma(close, 28))
//if (longCondition)
    //strategy.entry("My Long Entry Id", strategy.long)

//shortCondition = crossunder(sma(close, 14), sma(close, 28))
//if (shortCondition)
  //  strategy.entry("My Short Entry Id", strategy.short)

//HMA
HMA(src1, length1) =>  wma(2 * wma(src1, length1/2) - wma(src1, length1), round(sqrt(length1)))

var stopLossVal=0.00

//variables BEGIN
length=input(200,title="EMA and HMA Length")   //square root of 13

rsiLength=input(13, title="RSI Length")

takePartialProfits = input(true, title="Take Partial Profits (if this selected, RSI 13 higher reading over 80 is considered for partial closing ) ")

stopLoss = input(title="Stop Loss%", defval=8, minval=1)
//variables  END

//RSI 
rsi13=rsi(close,rsiLength)


ema200=ema(close,length)
hma200=HMA(close,length)

//exitOnAroonOscCrossingDown = input(true, title="Exit when Aroon Osc cross down zero ")


// Drawings

//Aroon oscillator

arronUpper = 100 * (highestbars(high, length+1) + length)/length
aroonLower = 100 * (lowestbars(low, length+1) + length)/length

aroonOsc  = arronUpper - aroonLower

aroonMidpoint = 0
//oscPlot = plot(aroonOsc, color=color.green)
//midLine= plot(aroonMidpoint, color=color.green)
//topLine = plot(90,style=plot.style_circles, color=color.green)
//bottomLine = plot(-90,style=plot.style_circles, color=color.red)

//fill(oscPlot, midLine, color=aroonOsc>0?color.green:color.red, transp=50)
//fill(topLine,bottomLine, color=color.blue)
//fill(topLine,oscPlot, color=aroonOsc>90?color.purple:na, transp=25)


// RSI 
//plot(rsi13, title="RSI", linewidth=2, color=color.purple)
//hline(50, title="Middle Line", linestyle=hline.style_dotted)
//obLevel = hline(80, title="Overbought", linestyle=hline.style_dotted)
//osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
//fill(obLevel, osLevel, title="Background", color=rsi13 >=30 ? color.green:color.purple, transp=65)  // longTermRSI >=50

hullColor = hma200 > hma200[2] ? #00ff00 : #ff0000

plot(hma200, title="HULL 200", color=hullColor,  transp=25)
plot(ema200, title="EMA 200", color=color.orange)

//Entry--
strategy.initial_capital = 50000
strategy.entry(id="Long Entry", comment="LE", qty=(strategy.initial_capital * 0.10)/close, long=true,  when=strategy.position_size<1 and hma200 < ema200   and  hma200 > hma200[2]  and rsi13<70 )     //  // aroonOsc<0

//Add
if(strategy.position_size>=1 and  close < strategy.position_avg_price and  ( crossover(rsi13,30) or  crossover(rsi13,40) ) )   // hma200 < ema200   and  hma200 > hma200[2]   and hma200[2] < hma200[3] )  //and crossover(rsi13,30)  aroonOsc<0    //and hma200 > hma200[2]  and hma200[2] <= hma200[3]  //crossover(rsi13,30)
    qty1=(strategy.initial_capital * 0.10)/close
    //stopLossVal:= abs(strategy.position_size)>1 ?  ( (close > close[1] and close > open and close>strategy.position_avg_price) ? close[1]*(1-stopLoss*0.01) : stopLossVal ) : 0.00 
    strategy.entry(id="Long Entry", comment="Add", qty=qty1, long=true )     //crossover(close,ema34)  //and close>ema34  //crossover(rsi5Val,rsiBuyLine)  --   SL="+tostring(stopLossVal, "####.##")


//stopLossVal:= abs(strategy.position_size)>1 ? strategy.position_avg_price*(1-0.5) : 0.00 

stopLossVal:= abs(strategy.position_size)>1 ?  ( (close > close[1] and close > open and close>strategy.position_avg_price) ? close[1]*(1-stopLoss*0.01) : stopLossVal ) : 0.00 
//stopLossVal:= abs(strategy.position_size)>1 ?  strategy.position_avg_price*(1-stopLoss*0.01) :  0.00

barcolor(color=strategy.position_size>=1? rsi13>80 ? color.purple: color.blue:na)

//close partial
if(takePartialProfits==true)
    strategy.close(id="Long Entry", comment="Partial X  points="+tostring(close - strategy.position_avg_price, "####.##"),  qty_percent=20 , when=abs(strategy.position_size)>=1 and crossunder(rsi13, 80)  and close > strategy.position_avg_price  )   //close<ema55 and rsi5Val<20 //ema34<ema55



//close All
//if(exitOnAroonOscCrossingDown)
  //  strategy.close(id="Long Entry", comment="Exit All points="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 0) )   //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89

//close All on stop loss
strategy.close(id="Long Entry", comment="Stoploss X points="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and close < stopLossVal  )  //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89

strategy.close(id="Long Entry", comment="hmaXema X points="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and close > strategy.position_avg_price  and  crossunder(hma200,ema200)  )  //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89