चलती औसत ट्रेलिंग स्टॉप रणनीति

लेखक:चाओझांग, दिनांकः 2023-09-19 21:33:48
टैगः

अवलोकन

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

रणनीति तर्क

  1. तेजी से ईएमए और धीमी एसएमए खरीद लाइनों की गणना करें, खरीद संकेत उत्पन्न करें जब तेजी से लाइन निश्चित खरीद शक्ति के साथ धीमी रेखा को पार करती है।

  2. तेजी से ईएमए और धीमी एसएमए बिक्री लाइनों की गणना करें, जब तेजी से रेखा धीमी रेखा से नीचे जाती है तो बिक्री संकेत उत्पन्न करें।

  3. जोखिम नियंत्रण के लिए डायनामिक ट्रैलिंग स्टॉप के रूप में गुणांक से गुणा किया गया एन दिन एटीआर औसत का उपयोग करें।

  4. खरीद और बिक्री निष्पादन के लिए बैकटेस्ट अवधि में रणनीति शुरू करें।

  5. सर्वोत्तम मूल्यों को खोजने के लिए प्रत्येक स्टॉक के लिए मापदंडों का अनुकूलन करें।

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

लाभ विश्लेषण

  1. तेज ईएमए और धीमी एसएमए क्रॉसओवर रुझानों की पहचान करते हैं और संकेत उत्पन्न करते हैं।

  2. एटीआर स्टॉप को बाजार की अस्थिरता के आधार पर समायोजित किया जाता है, जिससे जोखिमों को प्रभावी ढंग से नियंत्रित किया जाता है।

  3. प्रत्येक स्टॉक के लिए अनुकूलन लाभप्रदता में सुधार करता है।

  4. सरल तर्क और नियम, लागू करने और सत्यापित करने में आसान।

  5. रणनीति को मान्य करने के लिए बैकटेस्ट कार्यक्षमता को पूरा करें.

  6. खरीद और पकड़ के मुकाबले स्थिर बेहतर प्रदर्शन की तलाश करता है।

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

  1. अनुकूलित पैरामीटर भविष्य के लिए काम नहीं कर सकते, आवधिक पुनः अनुकूलन की आवश्यकता हो सकती है।

  2. ईएमए और एसएमए के क्रॉसिंग से गलत या लेगिंग सिग्नल उत्पन्न हो सकते हैं।

  3. एटीआर स्टॉप बहुत आक्रामक हो सकता है, स्टॉप लॉस रेंज को ढीला कर सकता है।

  4. कम व्यापारिक आवृत्ति अच्छे अवसरों को खो सकती है।

  5. व्यापार लागतों के प्रभाव पर विचार करने की आवश्यकता है।

अनुकूलन दिशाएँ

  1. इष्टतम मानों के लिए विभिन्न पैरामीटर संयोजनों का परीक्षण जारी रखें।

  2. सिग्नल फ़िल्टरिंग के लिए अन्य संकेतकों को पेश करने का प्रयास करें।

  3. स्टॉप लॉस संवेदनशीलता को संतुलित करने के लिए एटीआर अवधि को अनुकूलित करें।

  4. स्टॉप लॉस रेंज को आराम देने के प्रभाव का आकलन करें।

  5. स्वचालित पैरामीटर अनुकूलन के लिए मशीन लर्निंग पर विचार करें।

  6. व्यापारिक आवृत्ति में वृद्धि का अध्ययन प्रभाव।

सारांश

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


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//created by XPloRR 04-03-2018

strategy("XPloRR 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)

ema1Period = input(12, "Fast EMA Buy")
sma1Period = input(54, "Slow SMA Buy")
strength1 = input(52, "Minimum Buy Strength")

ema2Period = input(18, "Fast EMA Sell")
sma2Period = input(55, "Slow SMA Sell")
strength2 = input(100, "Minimum Sell Strength")

delta = input(8, "Trailing Stop (#ATR)")

testPeriod() => true

ema1val=ema(close,ema1Period)
sma1val=sma(close,sma1Period)
ema1strength=10000*(ema1val-ema1val[1])/ema1val[1]

ema2val=ema(close,ema2Period)
sma2val=sma(close,sma2Period)
ema2strength=10000*(ema2val-ema2val[1])/ema2val[1]

plot(ema1val,color=blue,linewidth=1)
plot(sma1val,color=orange,linewidth=1)
plot(ema2val,color=navy,linewidth=1)
plot(sma2val,color=red,linewidth=1)

long=crossover(ema1val,sma1val) and (ema1strength > strength1) 
short=crossunder(ema2val,sma2val) and (ema2strength < -strength2)

stopval=ema(close,6)
atr=sma((high-low),15)

inlong=0
buy=0
stop=0
if testPeriod()
    if (inlong[1])
        inlong:=inlong[1]
        buy:=close
        stop:=iff((stopval>(stop[1]+delta*atr)),stopval-delta*atr,stop[1])
    if (long) and (not inlong[1])
        strategy.entry("buy",strategy.long)
        inlong:=close
        buy:=close
        stop:=stopval-delta*atr
plot(buy,color=iff(close<inlong,red,lime),style=columns,transp=90,linewidth=1)
plot(stop,color=iff((short or (stopval<stop)) and (close<inlong),red,lime),style=columns,transp=60,linewidth=1)
if testPeriod()
    if (short or (stopval<stop)) and (inlong[1])
        strategy.close("buy")
        inlong:=0
        stop:=0
        buy:=0



अधिक