यह रणनीति एक अपेक्षाकृत पूर्ण मात्रात्मक ट्रेडिंग रणनीति बनाने के लिए रिलेटिव स्ट्रेंथ इंडेक्स (TRSI) और सुपर ट्रेंड संकेतकों को जोड़ती है। इसका उपयोग मुख्य रूप से मध्यम से दीर्घकालिक रुझानों को पकड़ने के लिए किया जाता है, जबकि शोर ट्रेडिंग संकेतों को फ़िल्टर करने के लिए अल्पकालिक संकेतकों का उपयोग किया जाता है।
विशेष रूप से, रणनीति पहले TRSI संकेतक की गणना करती है कि क्या बाजार ओवरबॉट या ओवरसोल्ड क्षेत्र में प्रवेश कर गया है, और फिर प्रमुख प्रवृत्ति दिशा निर्धारित करने के लिए सुपर ट्रेंड संकेतक की गणना करती है। ट्रेडिंग सिग्नल दोनों को मिलाकर जारी किए जाते हैं। स्टॉप लॉस और टेक प्रॉफिट पॉइंट तब लाभप्रदता के विभिन्न चरणों में धन के अलग-अलग अनुपात को वापस लेने के लिए सेट किए जाते हैं।
इस रणनीति के निम्नलिखित फायदे हैंः
इस रणनीति में कुछ जोखिम भी हैं:
इन जोखिमों से निपटने के लिए, हम निम्नलिखित पहलुओं से अनुकूलन कर सकते हैंः
यह रणनीति एक अपेक्षाकृत पूर्ण मात्रात्मक ट्रेडिंग रणनीति बनाने के लिए 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)