
यह रणनीति दो अलग-अलग लंबाई के सूचकांक चलती औसत (ईएमए) के स्केलेबल क्रॉसिंग का उपयोग करती है ताकि एक ट्रेंड ट्रैकिंग सिग्नल उत्पन्न किया जा सके। डिफ़ॉल्ट रूप से 130 और 400 की ईएमए का उपयोग किया जाता है, जो दोनों पैरामीटर के संयोजन के लिए अच्छा काम करता है।
जब तेज रेखा ईएमए ढलान पर धीमी रेखा ईएमए ढलान को पार करता है और ईएमए की कीमत 200 चक्र से अधिक है, तो अधिक करें; जब तेज रेखा ईएमए ढलान के नीचे धीमी रेखा ईएमए ढलान को पार करता है और ईएमए की कीमत 200 चक्र से कम है, तो खाली करें।
एक समतल स्थिति में एक समतल स्थिति को पार करना।
यह रणनीति बिटकॉइन और उच्च तरलता वाले, बाजार मूल्य वाले अल्टकॉइन पर सबसे अच्छा प्रदर्शन करती है, लेकिन यह अधिक अस्थिर संपत्ति पर भी अच्छी तरह से काम करती है, खासकर जब वे अक्सर ट्रेंड में होती हैं।
4 घंटे के समय के लिए सबसे अच्छा है।
यह एक वैकल्पिक अस्थिरता फ़िल्टर के साथ भी सुसज्जित है, जो केवल दो स्केलेबिलिटी के बीच के अंतर को एक विशिष्ट थ्रेशोल्ड से बड़ा होने पर ही खोलने के लिए है, जिसका उद्देश्य यह है कि कीमतों के क्षैतिज उतार-चढ़ाव के दौरान सिग्नल से अधिक शोर होने पर पदों को खोलने से बचना है।
प्रभाव अद्भुत है, आनंद लें!
इस रणनीति के केंद्र में दो अलग-अलग लंबाई के ईएमए सूचकांक के चलती औसत की स्लिपेट की तुलना करना है।
पहले 130 और 400 की ईएमए की गणना करें, फिर उनके संबंधित स्केलेबिलिटी की गणना करें, और फिर उनके संबंधित स्केलेबिलिटी की गणना करें 3 की ईएमए की गणना करें और स्केलेबिलिटी वक्र को चिकना करें।
एक खरीद संकेत उत्पन्न होता है जब तेज रेखा ईएमए ढलान पर धीमी रेखा ईएमए ढलान को पार करती है; एक बेचने का संकेत उत्पन्न होता है जब तेज रेखा ईएमए ढलान के नीचे धीमी रेखा ईएमए ढलान को पार करती है।
झूलों को फ़िल्टर करने के लिए, 200 चक्र ईएमए को ट्रेंड फिल्टर के रूप में चुना जा सकता है, केवल ईएमए से अधिक कीमत पर विचार करने के लिए अधिक सिग्नल करें, और शून्य सिग्नल पर विचार करने के लिए कम।
इसके अलावा, एक उतार-चढ़ाव फ़िल्टर के साथ एक विकल्प है, जो केवल तभी संकेत उत्पन्न करता है जब दो स्केलेबिलिटी के बीच का अंतर डिफ़ॉल्ट थ्रेशोल्ड से अधिक होता है, जिससे स्केलेबिलिटी क्रॉसिंग लेकिन कम उतार-चढ़ाव वाली स्थितियों को फ़िल्टर किया जा सकता है।
जब तेजी से धीमी गति से ढलान उल्टा हो जाता है, तो पोजीशन को सपाट करना बंद हो जाता है।
स्केलेबल क्रॉसिंग का उपयोग करके संकेत उत्पन्न करें, जिससे ट्रेंड को प्रभावी ढंग से ट्रैक किया जा सके
विभिन्न बाजार स्थितियों के लिए ईएमए चक्रों के पैरामीटर के संयोजन को समायोजित करना
ट्रेंड फ़िल्टर से आपदाओं से बचने में मदद मिलती है
झूठे संकेतों को फ़िल्टर करने के लिए फ़्लॉपी फ़िल्टर
नियम सरल, स्पष्ट और समझने में आसान हैं
एक से अधिक समय फ्रेम के लिए उपलब्ध है
बड़े झटकों के दौरान अक्सर ओपन और क्लोज हो सकता है
गलत EMA चक्र पैरामीटर ट्रेंड टर्नओवर को याद कर सकता है
बाजार की परिस्थितियों में परिवर्तन के लिए उपयुक्त रूप से पैरामीटर संयोजन को समायोजित करना
एमए प्रणाली के समान, बड़े रुझान के अंत में नुकसान को उलट दिया जा सकता है
विभिन्न ईएमए चक्र संयोजन मापदंडों को आज़माएं और सबसे अच्छा खोजें
विभिन्न मुद्राओं की विशेषताओं और बाजार की स्थिति के आधार पर चयन पैरामीटर
स्टॉप-लॉस रणनीति में जोखिम नियंत्रण को शामिल करने पर विचार करें
गतिशील समायोजन ईएमए आवधिक मापदंडों पर विचार किया जा सकता है
विभिन्न अस्थिरता थ्रेशोल्ड मापदंडों का प्रयास करें
विभिन्न समय सीमाओं पर परीक्षण
रणनीति की समग्र अवधारणा स्पष्ट और समझने में आसान है, ईएमए स्लिप क्रॉसिंग का उपयोग करके संकेत उत्पन्न करता है, जो प्रभावी रूप से ट्रेंड को ट्रैक कर सकता है; ट्रेंड फिल्टर और अस्थिरता फ़िल्टर को जोड़कर शोर ट्रेडिंग को कम किया जा सकता है। ईएमए चक्र पैरामीटर के संयोजन को समायोजित करके विभिन्न बाजार की परिस्थितियों के अनुकूल बनाया जा सकता है। कुल मिलाकर, यह एक सरल व्यावहारिक ट्रेंड ट्रैकिंग रणनीति है, जो वास्तविक क्षेत्र में परीक्षण और अनुकूलन के लायक है।
/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// strategy(title="Slopes",initial_capital=1000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.06, slippage = 2, default_qty_value=30, overlay=false)
//definizione input
start = timestamp(input(2018, "start year"), input(1, "start month"), input(1, "start day"), 00, 00)
end = timestamp(input(2020, "end year"), input(1, "end month"), input(1, "end day"), 00, 00)
average = input (title="Source MA Type", type=input.string, defval="EMA",options=["EMA","SMA"])
len1=input(130,title="Fast MA Length")
len2=input(400,title="Slow MA Length")
smoothingavg = input (title="Smoothing MAs Type", type=input.string, defval="EMA",options=["EMA","SMA"])
smoothingavglen = input (3,title="Smoothing MAs Length")
trendfilter=input(true,title="Trend Filter")
trendfilterperiod=input(200,title="Trend Filter MA Period")
trendfiltertype=input (title="Trend Filter MA Type", type=input.string, defval="EMA",options=["EMA","SMA"])
volatilityfilter=input(false,title="Volatility Filter")
volatilitydelta=input(0.0003,step=0.0001,title="Delta Slopes EMA")
//variabili
m1 = if average == "EMA"
ema(close,len1)
else
sma(close,len1)
m2=if average == "EMA"
ema(close,len2)
else
sma(close,len2)
slp1=(m1-m1[1])/m1
slp2=(m2-m2[1])/m2
e1=if smoothingavg == "EMA"
ema(slp1,smoothingavglen)
else
sma(slp1,smoothingavglen)
e2=if smoothingavg == "EMA"
ema(slp2,smoothingavglen)
else
sma(slp2,smoothingavglen)
plot(e1,color=color.yellow)
plot(e2,color=color.red)
//plot (abs(e1-e2),color=color.white)
//plot (ema(e1-e2,9),color=color.yellow)
//variabili accessorie e condizioni
TrendConditionL=if trendfiltertype =="EMA"
close>ema(close,trendfilterperiod)
else
close>sma(close,trendfilterperiod)
TrendConditionS=if trendfiltertype =="EMA"
close<ema(close,trendfilterperiod)
else
close<sma(close,trendfilterperiod)
VolatilityCondition = abs(e1-e2) > volatilitydelta
ConditionEntryL= if trendfilter == true
if volatilityfilter == true
e1>e2 and TrendConditionL and VolatilityCondition
else
e1>e2 and TrendConditionL
else
if volatilityfilter == true
e1>e2 and VolatilityCondition
else
e1>e2
ConditionEntryS= if trendfilter == true
if volatilityfilter == true
e1<e2 and TrendConditionS and VolatilityCondition
else
e1<e2 and TrendConditionS
else
if volatilityfilter == true
e1<e2 and VolatilityCondition
else
e1<e2
ConditionExitL=crossunder(e1,e2)
ConditionExitS=crossover(e1,e2)
if true
if ConditionExitS
if strategy.position_size < 0
strategy.close("SLPShort")
if true
if ConditionExitL
if strategy.position_size > 0
strategy.close("SLPLong")
if true
if ConditionEntryL
strategy.entry ("SLPLong",long=true)
if true
if ConditionEntryS
strategy.entry("SLPShort",long=false)