
यह रणनीति दो अलग-अलग मापदंडों की चलती औसत की गणना करके खरीद संकेत उत्पन्न करती है जब तेज लाइन धीमी लाइन को पार करती है। यह रणनीति स्टॉप प्राइस को ट्रैक करने के लिए औसत वास्तविक अस्थिरता रेंज की गणना का उपयोग करती है और जब कीमत स्टॉप प्राइस से नीचे गिरती है, तो यह बिक्री संकेत उत्पन्न करती है। यह रणनीति बाजार के रुझानों को प्रभावी ढंग से ट्रैक करने में सक्षम है, लाभ के बाद समय पर स्टॉप।
इस रणनीति में ट्रेंड ट्रैकिंग और स्टॉप मैनेजमेंट का संयोजन है, जो कि मध्य-लंबी दिशा को ट्रैक करने के साथ-साथ स्टॉप लॉस के माध्यम से एकल नुकसान को नियंत्रित करने में सक्षम है।
चलती औसत पैरामीटर को उचित रूप से अनुकूलित किया जा सकता है, या एटीआर गुणांक को स्टॉप लॉस को संतुलित करने के लिए समायोजित किया जा सकता है। प्रवेश समय में सुधार के लिए फ़िल्टर शर्तों के रूप में अन्य संकेतकों के साथ संयोजन भी किया जा सकता है।
इस रणनीति में ट्रेंड ट्रैकिंग और एटीआर डायनामिक स्टॉप का एक सफल संयोजन है, जो पैरामीटर के अनुकूलन के माध्यम से विभिन्न स्टॉक विशेषताओं के लिए अनुकूल है। इस रणनीति में एक स्पष्ट खरीद सीमा और स्टॉप सीमा है, जिससे ट्रेडिंग तर्क सरल और स्पष्ट है। कुल मिलाकर, यह दोहरी चलती औसत ट्रैक स्टॉप रणनीति स्थिर, सरल, अनुकूलन करने में आसान है और स्टॉक ट्रेडिंग के लिए एक बुनियादी रणनीति के रूप में अनुकूल है।
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//created by XPloRR 24-02-2018
strategy("XPloRR MA-Buy ATR-MA-Trailing-Stop Strategy",overlay=true, initial_capital=1000,default_qty_type=strategy.percent_of_equity,default_qty_value=100)
testStartYear = input(2005, "Start Year")
testStartMonth = input(1, "Start Month")
testStartDay = input(1, "Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2050, "Stop Year")
testStopMonth = input(12, "Stop Month")
testStopDay = input(31, "Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriodBackground = input(title="Background", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
emaPeriod = input(12, "Exponential MA")
smaPeriod = input(45, "Simple MA")
stopPeriod = input(12, "Stop EMA")
delta = input(6, "Trailing Stop #ATR")
testPeriod() => true
emaval=ema(close,emaPeriod)
smaval=sma(close,smaPeriod)
stopval=ema(close,stopPeriod)
atr=sma((high-low),15)
plot(emaval, color=blue,linewidth=1)
plot(smaval, color=orange,linewidth=1)
plot(stopval, color=lime,linewidth=1)
long=crossover(emaval,smaval)
short=crossunder(emaval,smaval)
//buy-sell signal
stop=0
inlong=0
if testPeriod()
if (long and (not inlong[1]))
strategy.entry("buy",strategy.long)
inlong:=1
stop:=emaval-delta*atr
else
stop:=iff((nz(emaval)>(nz(stop[1])+delta*atr))and(inlong[1]),emaval-delta*atr,nz(stop[1]))
inlong:=nz(inlong[1])
if ((stopval<stop) and (inlong[1]))
strategy.close("buy")
inlong:=0
stop:=0
else
inlong:=0
stop:=0
plot(stop,color=green,linewidth=1)