यह रणनीति गति संकेतक आरएसआई और कीमतों के घातीय चलती औसत (ईएमए) और सरल चलती औसत (एसएमए) के आधार पर ट्रेडिंग सिग्नल बनाता है। यह प्रवृत्ति निम्नलिखित प्रकार की रणनीतियों से संबंधित है।
रणनीति ट्रेडिंग सिग्नल उत्पन्न करने के लिए 3 शर्तों का उपयोग करती हैः
उपरोक्त 3 शर्तों में से किसी 2 को पूरा करने से खरीद संकेत उत्पन्न होता है; यदि कोई भी पूरा नहीं होता है, तो बिक्री संकेत उत्पन्न होता है।
रणनीति में व्यापक बाजार के सापेक्ष प्रणाली के प्रदर्शन का परीक्षण करने के लिए
संक्षेप में, यह रणनीति एक मध्यम आवृत्ति वाली ट्रेडिंग रणनीति से संबंधित है जिसका उद्देश्य अल्पकालिक बाजार उतार-चढ़ाव से बचते हुए मध्यम अवधि के मूल्य रुझानों को पकड़ना है। इसके फायदे और जोखिम बिंदु काफी स्पष्ट हैं। पैरामीटर अनुकूलन और संवर्धन नियमों के माध्यम से स्थिरता को और बढ़ाना इसे शोध और अनुकूलन के लिए एक सार्थक उच्च दक्षता मात्रात्मक ट्रेडिंग रणनीति बनाता है।
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("I11L Unitrend",overlay=false, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00) tradingMode = input.string("Unitrend", "Trading Mode", ["Unitrend", "Always Buy"], tooltip="Choose the Trading Mode by trying Both in your Backtesting. I use it if one is far better then the other one.") compoundingMode = input.bool(false) leverage = input.float(1.0,step=0.1) SL_Factor = 1 - input.float(1,"Risk Capital per Trade unleveraged (%)", minval=0.1, maxval=100, step=0.1) / 100 TPFactor = input.float(2, step=0.1) var disableAdditionalBuysThisDay = false var lastTrade = time if(time > lastTrade + 1000 * 60 * 60 * 8 or tradingMode == "Always Buy") disableAdditionalBuysThisDay := false if(strategy.position_size != strategy.position_size[1]) lastTrade := time disableAdditionalBuysThisDay := true //Trade Logic SCORE = 0 //rsi momentum RSIFast = ta.ema(ta.rsi(close,50),24) RSISlow = ta.sma(ta.rsi(close,50),24) RSIMomentum = RSIFast / RSISlow goodRSIMomentum = RSIMomentum > 1 SCORE := goodRSIMomentum ? SCORE + 1 : SCORE //rsi trend RSITrend = RSISlow / 45 goodRSI = RSITrend > 1 SCORE := goodRSI ? SCORE + 1 : SCORE //price trend normalTrend = ta.ema(close,50) / ta.sma(close,50) goodTrend = normalTrend > 1 SCORE := goodTrend ? SCORE + 1 : SCORE isBuy = SCORE > 1 or tradingMode == "Always Buy" isSell = false //SCORE == 0 //plot(SCORE, color=isBuy ? color.green : #ffffff88) //reduced some of the values just for illustrative purposes, you can buy after the signal if the trendlines seem to grow plot(1, color=isBuy ? #77ff7733 : SCORE == 2 ? #ffff0033 : SCORE == 1 ? #ff888833 : #ff000033,linewidth=10) plot(1 - (1 - RSIMomentum) * 6,color=#00F569) plot(1 - (1 - RSITrend) * 0.25,color=#00DB9B) plot(1 - (1 - normalTrend) * 20,color=#00F5EE) strategy.initial_capital = 50000 if(isBuy and not(disableAdditionalBuysThisDay)) if(compoundingMode) strategy.entry("Long", strategy.long, (strategy.equity / close) * leverage) else strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage) if(strategy.position_size != 0) strategy.exit("TP/SL Long", "Long", stop=strategy.position_avg_price * (1 - (1 - SL_Factor)), limit=strategy.position_avg_price * (1 + (1 - SL_Factor) * TPFactor))