TRSI और SUPER रुझान संकेतकों पर आधारित मात्रात्मक ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-15 16:05:51
टैगः

img

अवलोकन

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

रणनीति तर्क

  1. यह निर्धारित करने के लिए TRSI संकेतक की गणना करें कि क्या बाजार ओवरबॉट या ओवरसोल्ड स्थिति में है और खरीद और बिक्री संकेत जारी करें
  2. शोर संकेतों को फ़िल्टर करने और अंतर्निहित प्रवृत्ति की पुष्टि करने के लिए सुपर प्रवृत्ति संकेतक का उपयोग करें
  3. लाभदायक पदों के विभिन्न चरणों में स्टॉप लॉस और ले लाभ अंक सेट करें

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

लाभ विश्लेषण

इस रणनीति के निम्नलिखित फायदे हैंः

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

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

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

  1. मध्यम से दीर्घकालिक व्यापार में अल्पकालिक व्यापारिक अवसरों का लाभ उठाने में विफलता होती है।
  2. गलत TRSI पैरामीटर सेटिंग्स से ओवरबॉट और ओवरसोल्ड जोन छूट सकते हैं।
  3. अनुचित सुपर ट्रेंड पैरामीटर सेटिंग्स गलत संकेत दे सकती हैं।
  4. बहुत बड़ा स्टॉप लॉस स्पेस जोखिमों को प्रभावी ढंग से नियंत्रित करने में विफल रहता है।

इन जोखिमों से निपटने के लिए, हम निम्नलिखित पहलुओं से अनुकूलन कर सकते हैंः

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

  1. अधिक व्यापारिक अवसरों की पहचान करने के लिए अधिक अल्पकालिक संकेतकों को शामिल करें।
  2. त्रुटि अंतराल को संकुचित करने के लिए TRSI मापदंडों को समायोजित करें.
  3. सुपर ट्रेंड मापदंडों का परीक्षण और अनुकूलन।
  4. वास्तविक समय में स्टॉप लॉस लाइनों को ट्रैक करने के लिए फ्लोटिंग स्टॉप लॉस सेट करें।

सारांश

यह रणनीति एक अपेक्षाकृत पूर्ण मात्रात्मक ट्रेडिंग रणनीति बनाने के लिए TRSI और सुपर ट्रेंड जैसे कई संकेतकों को एकीकृत करती है। यह जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस सेट करते हुए मध्यम से दीर्घकालिक रुझानों की प्रभावी ढंग से पहचान कर सकती है और लाभ ले सकती है। अनुकूलन के लिए अभी भी बहुत जगह है, संकेत सटीकता में सुधार और अधिक व्यापारिक अवसरों की पहचान जैसे क्षेत्रों में बाद में सुधार संभव है। कुल मिलाकर, यह मात्रात्मक रणनीति के लिए एक अच्छा प्रारंभिक बिंदु है।


/*backtest
start: 2022-12-14 00:00:00
end: 2023-11-26 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4
strategy(title = "SuperTREX strategy", overlay = true)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
length = input( 14 )
overSold = input( 35 )
overBought = input( 70 )
HTF = input("W", type=input.resolution)
ti = change( time(HTF) ) != 0
p = fixnan( ti ? close : na )

vrsi = rsi(p, length)
price = close
var bool long = na
var bool short = na

long :=crossover(vrsi,overSold) 
short := crossunder(vrsi,overBought)

var float last_open_long = na
var float last_open_short = na

last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])


entry_value =last_open_long
entry_value1=last_open_short

xy=(entry_value+entry_value)/2

// INPUTS //
st_mult   = input(4,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(10, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev =xy - (st_mult * atr(st_period))
dn_lev =xy + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := entry_value[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := entry_value1[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend
plot(xy,color = trend == 1 ? color.green : color.red)

buy=crossover( close, st_line) 
sell1=crossunder(close, st_line) 
 


buy1=buy
//

sell=sell1


// STRATEGY

plotshape(buy , title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon
// Take profit

//
l = buy 
s1=sell 
if l 
    strategy.entry("buy", strategy.long)
if s1 
    strategy.entry("sell", strategy.short)
per(pcnt) =>  strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=25, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=2, minval=0.01)
tp2=input(title=" Take profit2", defval=4, minval=0.01)
tp3=input(title=" Take profit3", defval=6, minval=0.01)
tp4=input(title=" Take profit4", defval=8, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


अधिक