ट्रेलिंग स्टॉप लॉस के साथ अल्फा ट्रेंड रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-27 15:25:35
टैगः

img

अवलोकन

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

रणनीति तर्क

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

इस बीच, एक ट्रेलिंग स्टॉप लॉस तंत्र सक्षम है। ट्रेलिंग स्टॉप लॉस स्तर दिन के समापन मूल्य के 10% तक डिफ़ॉल्ट है। जब लंबी स्थिति रखते हैं, यदि कीमत स्टॉप लॉस स्तर से नीचे गिर जाती है, तो रणनीति स्टॉप लॉस के लिए स्थिति से बाहर निकल जाएगी। इसी तरह शॉर्ट पदों के लिए। यह लाभ में बेहतर लॉक करने और जोखिमों को कम करने में मदद करता है।

लाभ विश्लेषण

  1. अल्फा प्रवृत्ति में सरल चलती औसत और अन्य संकेतकों की तुलना में मूल्य प्रवृत्तियों को निर्धारित करने की अधिक क्षमता होती है।

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

  3. इस रणनीति में जोखिम नियंत्रण की मजबूत क्षमता है। प्रतिकूल बाजार स्थितियों में भी, नुकसान को कम से कम किया जा सकता है।

  4. कम संदर्भ इनपुट के साथ, यह रणनीति गणना करने के लिए कुशल है, उच्च आवृत्ति व्यापार के लिए उपयुक्त है।

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

  1. साइडवेज रेंज लिंक्ड बाजारों में, रणनीति कई अनावश्यक ट्रेडिंग सिग्नल उत्पन्न कर सकती है, जिससे ट्रेडिंग लागत और स्लिपजेज नुकसान बढ़ते हैं।

  2. ट्रेलिंग स्टॉप लॉस को सक्षम करते समय, स्टॉप लॉस प्रतिशत को उचित रूप से सेट करने की आवश्यकता होती है। अत्यधिक उच्च या निम्न प्रतिशत दोनों रणनीति की लाभप्रदता के लिए प्रतिकूल होंगे।

  3. जब कीमतों में भारी उतार-चढ़ाव होता है, तो स्टॉप लॉस की संभावना काफी बढ़ जाती है, जिससे पदों में लॉक होने का खतरा बढ़ जाता है।

  4. स्टॉप लॉस मापदंडों को अनुकूलित करते समय, अधिकतम रिटर्न प्राप्त करने के बजाय, अंतर्निहित की विशेषताओं और व्यापारिक आवृत्ति सहित विभिन्न कारकों पर विचार किया जाना चाहिए।

उपरोक्त जोखिमों को अल्फा संकेतक मापदंडों को समायोजित करके, गतिशील स्टॉप लॉस सेट करके, व्यापार चक्र की लंबाई को छोटा करके, आदि से कम किया जा सकता है।

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

  1. अधिक उपयुक्त अल्फा सूचक पैरामीटर संयोजन खोजने के लिए विभिन्न सूचक मापदंडों का परीक्षण किया जा सकता है।

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

  3. कुछ झूठे संकेतों को फ़िल्टर करने के लिए एमएसीडी, केडी जैसे अन्य संकेतकों के साथ संयोजन करें।

  4. पैरामीटर चयन की बुद्धिमत्ता में सुधार के लिए मशीन लर्निंग तकनीकों का उपयोग करके लाइव ट्रेडिंग और बैकटेस्टिंग परिणामों के आधार पर पैरामीटर को स्वचालित रूप से अनुकूलित किया जा सकता है।

निष्कर्ष

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


/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
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/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5

strategy("AlphaTrend Strategy", shorttitle='ATst', overlay=true, format=format.price, precision=2, margin_long=100, margin_short=100)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=false)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT

color1 = AlphaTrend > AlphaTrend[1] ? #00E60F : AlphaTrend < AlphaTrend[1] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)

fill(k1, k2, color=color1)

buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])


K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])

plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))

plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))


// //ENTER SOME SETUP TRADES FOR TSL EXAMPLE
// longCondition = ta.crossover(ta.sma(close, 10), ta.sma(close, 20))
// if longCondition
//     strategy.entry('My Long Entry Id', strategy.long)

// shortCondition = ta.crossunder(ta.sma(close, 10), ta.sma(close, 20))
// if shortCondition
//     strategy.entry('My Short Entry Id', strategy.short)



longCondition = buySignalk
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = sellSignalk
if (shortCondition)
    strategy.entry("Short", strategy.short)
    

enableTrailing = input.bool(title='Enable Trailing Stop (%)',defval = true)
//TRAILING STOP CODE
trailStop = input.float(title='Trailing (%)', minval=0.0, step=0.1, defval=10) * 0.01



longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    math.max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + trailStop)
    math.min(stopValue, shortStopPrice[1])
else
    999999

//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Short Trail Stop', offset=1, title='Short Trail Stop')

    
if enableTrailing
    //EXIT TRADE @ TSL
    if strategy.position_size > 0
        strategy.exit(id='Close Long', stop=longStopPrice)
    if strategy.position_size < 0
        strategy.exit(id='Close Short', stop=shortStopPrice)


 

अधिक