सुपर ट्रेंड रणनीति पर आधारित


निर्माण तिथि: 2024-02-02 11:11:48 अंत में संशोधित करें: 2024-02-02 11:11:48
कॉपी: 0 क्लिक्स: 782
1
ध्यान केंद्रित करना
1617
समर्थक

सुपर ट्रेंड रणनीति पर आधारित

अवलोकन

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

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

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

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

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

सुपरट्रेंड रणनीति निम्नलिखित प्रमुख सिद्धांतों पर आधारित हैः

  1. एटीआर मान की गणना करेंः एसएमए गणना का उपयोग करना चुन सकते हैं, या अंतर्निहित एटीआर सूचक की गणना कर सकते हैं। एसएमए संस्करण का सूत्र हैः
   atr2 = sma(tr, Periods) 
  1. ऊपरी और निचली रेल की गणना करेंः ऊपरी रेल की कीमत एटीआर के गुणनखंड को एटीआर के गुणनखंड से घटाकर और निचली रेल की कीमत एटीआर के गुणनखंड को एटीआर के गुणनखंड से जोड़कर की जाती है।
   up = close - (Multiplier * atr)
   dn = close + (Multiplier * atr)
  1. कीमतों के ऊपर और नीचे के ट्रैक के बीच संबंध का आकलन करें और प्रवृत्ति की दिशा की गणना करें। जब कीमतें ऊपर और नीचे की ओर होती हैं तो प्रवृत्ति बहुमुखी होती है और जब कीमतें नीचे की ओर होती हैं तो प्रवृत्ति शून्य होती है।
   trend := trend == -1 and close > dn ? 1 : trend == 1 and close < up ? -1 : trend 
  1. एक ट्रेड सिग्नल उत्पन्न होता है जब रुझान बदलता है, जैसे कि एक बिकनी सिग्नल जब एक बहु-हेड से एक रिक्त-हेड में बदल जाता हैः
   sellSignal = trend == -1 and trend[1] == 1
  1. ट्रेडिंग सिग्नल और अन्य शर्तों के आधार पर फ़िल्टर किया गया है।

  2. स्टॉप लॉस और स्टॉप रोल सेट करें ताकि मुनाफे को लॉक किया जा सके या जोखिम से बचा जा सके।

ये सुपरट्रेंड रणनीति के महत्वपूर्ण बिंदु हैं, जो पैरामीटर अनुकूलन के साथ मिलकर बेहतर व्यापारिक परिणाम प्राप्त कर सकते हैं।

रणनीतिक लाभ

इस रणनीति के कुछ फायदे हैं:

  1. सुपरट्रेंड संकेतक मूल्य प्रवृत्तियों को निर्धारित करने के लिए एक प्रभावी उपकरण है और एक सामान्य रूप से उपयोग किया जाने वाला स्टॉप-लॉस ट्रैकर है।

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

  3. विभिन्न ट्रेडिंग समय की आवश्यकताओं के लिए रीसेट और रियल-टाइम ट्रेडिंग की समय सीमा निर्धारित की जा सकती है।

  4. यह विकल्प प्रदान करता है कि आप तुरंत पहली सूची में प्रवेश कर सकते हैं या सिग्नल का इंतजार कर सकते हैं, जो कि नस्ल की विशेषताओं के अनुसार है।

  5. एक अंतर्निहित स्टॉप लॉस स्टॉप सेटिंग रणनीति की जोखिम प्रतिरोध क्षमता को बढ़ा सकती है या अधिक मुनाफे को लॉक कर सकती है।

  6. स्वनिर्धारित ट्रेडिंग संकेतों को स्वचालित या रोबोट ट्रेडिंग सिस्टम में एकीकृत किया जा सकता है, जो मानव रहित सुरक्षा प्रदान करता है।

रणनीतिक जोखिम

इस रणनीति के कुछ जोखिम भी हैं:

  1. सुपरट्रेंड सूचकांक में अधिक झूठे संकेत हो सकते हैं, और अन्य सूचकांकों के साथ संयोजन में फ़िल्टर करने की आवश्यकता होती है।

  2. गलत एटीआर पैरामीटर के कारण ट्रेडों की आवृत्ति बढ़ सकती है या ट्रेडों को याद किया जा सकता है। पैरामीटर को इष्टतम संतुलन के लिए अनुकूलित किया जाना चाहिए।

  3. स्टॉप लॉस के बहुत करीब होने से लाभदायक स्थिति से बहुत जल्दी बाहर निकलने की संभावना है, और स्टॉप लॉस के बहुत दूर होने से पर्याप्त लाभ नहीं हो सकता है।

  4. समय सीमा गलत सेट की गई है, जिससे मुख्य लेनदेन के समय को याद किया जा सकता है या गारंटी की राशि का उपयोग नहीं किया जा सकता है।

उपरोक्त जोखिमों के लिए, पैरामीटर को उचित रूप से समायोजित करके या फ़िल्टरिंग शर्तों को जोड़कर, रणनीति की स्थिरता को बढ़ाया जा सकता है।

रणनीति अनुकूलन दिशा

इस रणनीति को और भी बेहतर बनाया जा सकता है:

  1. विभिन्न एटीआर चक्र मापदंडों को आज़माएं और उचित संतुलन बिंदु ढूंढें। आम तौर पर 10-20 के बीच आदर्श है।

  2. विभिन्न एटीआर गुणांक मापदंडों का परीक्षण करें, आमतौर पर 2-5 सबसे उपयुक्त है, और सर्वोत्तम मूल्य खोजने के लिए धीरे-धीरे समायोजित किया जा सकता है।

  3. गलत संकेतों को फ़िल्टर करने के लिए अन्य मापदंडों जैसे कि MACD, KD आदि को जोड़ने का प्रयास करें।

  4. स्टॉप लॉस पैरामीटर को अनुकूलित करें, सबसे अच्छा पैरामीटर संयोजन ढूंढें। गतिशील स्टॉप लॉस को पेश किया जा सकता है।

  5. विभिन्न ट्रेडिंग समय सीमा सेटिंग्स का परीक्षण करें। दिन के भीतर शॉर्ट-लाइन किस्मों को कम समय के लिए अनुकूलित किया जाता है।

  6. अनुबंधों को स्वचालित रूप से चुनने की कोशिश करें, उच्च तरलता या अस्थिरता वाले संकेतों का पालन करें।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-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/
// © REV0LUTI0N

//@version=4

// Strategy
strategy("Supertrend Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
enableentry = input(true, title="Enter First Trade ASAP")
waitentry = input(false, title="Wait To Enter First Trade")

atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
Long = (trend == 1 ? up : na)
buySignal = trend == 1 and trend[1] == -1

dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
Short = (trend == 1 ? na : dn)
sellSignal = trend == -1 and trend[1] == 1

// Strategy Backtesting
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time, title='Backtesting End Date')

time_cond  = true

//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = (time(timeframe.period, startendtime))
timetoclose = na(time(timeframe.period, startendtime))

// Stop Loss & Take Profit % Based
enablesl = input(false, title='Enable Stop Loss')
enabletp = input(false, title='Enable Take Profit')
stopTick = input(5.0, title='Stop Loss %', type=input.float, step=0.1) / 100
takeTick = input(10.0, title='Take Profit %', type=input.float, step=0.1) / 100

longStop = strategy.position_avg_price * (1 - stopTick)
shortStop = strategy.position_avg_price * (1 + stopTick)
shortTake = strategy.position_avg_price * (1 - takeTick)
longTake = strategy.position_avg_price * (1 + takeTick)

plot(strategy.position_size > 0 and enablesl ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesl ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enabletp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enabletp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

// Alert messages
message_enterlong  = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")

// Strategy Execution
if Long and time_cond and timetobuy and enableentry
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if Short and time_cond and timetobuy and enableentry
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if buySignal and time_cond and timetobuy and waitentry
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if sellSignal and time_cond and timetobuy and waitentry
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if strategy.position_size > 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closelong)
if strategy.position_size < 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closeshort)
    
if strategy.position_size > 0 and enablesl and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enablesl and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)
    
if strategy.position_size > 0 and enabletp and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enabletp and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)