Esta es una estrategia de negociación a corto plazo que utiliza el indicador RSI basado en las reglas de negociación de tortugas. Combina el indicador RSI y el indicador Williams Alligator para realizar operaciones contra tendencia cuando el RSI entra en la zona de sobrecompra o sobreventa. Es una estrategia de negociación a corto plazo relativamente conservadora.
La estrategia se basa principalmente en los siguientes principios:
Utilizando las reglas del comercio de tortugas, solo entra en el mercado cuando hay una reversión obvia, adoptando un enfoque comercial relativamente conservador.
Cuando la línea RSI entra en la zona de sobrecompra (default por encima de 60) o zona de sobreventa (default por debajo de 40), indica que el mercado está en el punto de reversión, y luego realiza operaciones contra tendencia.
Combinar el indicador Williams Alligator para determinar la tendencia del mercado. Ir corto sólo cuando el Alligator muestra las tres líneas (Lips, Teeth, Jaw) alineadas en una tendencia bajista; ir largo sólo cuando las tres líneas alineadas en una tendencia alcista.
Utilizando el RSI del RSI para juzgar las condiciones de sobrecompra / sobreventa del propio indicador RSI, creando un efecto de doble filtro.
Establezca líneas de stop loss y take profit. Cierre la posición para obtener ganancias o stop loss cuando el precio se invierta para alcanzar las líneas de take profit o stop loss.
La estrategia tiene las siguientes ventajas:
La adopción de normas estrictas para el comercio de tortugas, que permiten entrar en el mercado sólo cuando hay una reversión obvia, puede evitar enormes riesgos cuando el mercado está cambiando.
Usando el indicador RSI para determinar los puntos de reversión del mercado, el indicador es simple y claro, fácil de operar.
La combinación del indicador Alligator para determinar la dirección de la tendencia evita el comercio en contra de la tendencia.
Configurar bloqueos de stop loss y take profit en las ganancias y controlar los riesgos.
Los parámetros del RSI y los criterios de entrada/salida se pueden ajustar para diferentes mercados para optimizar la estrategia.
La estrategia también tiene algunos riesgos:
Hay una probabilidad de señales falsas del indicador RSI. El RSI puede dar señales incorrectas de sobrecompra / sobreventa. Combinar Alligator puede reducir las señales falsas.
El stop loss debe reducirse adecuadamente para reducir la pérdida por operación.
Las inversiones pueden no ocurrir exactamente en las zonas de sobrecompra/sobreventa del RSI. Los cambios en el régimen del mercado pueden cambiar los puntos de reversión, los parámetros deben ajustarse en consecuencia.
El número de operaciones puede ser bajo, frente a períodos de ausencia de operaciones.
El período de retención debe ajustarse oportunamente, alargando o acortando el plazo de negociación.
La estrategia se puede optimizar en los siguientes aspectos:
Optimizar los parámetros del RSI, ajustar las zonas de sobrecompra/sobreventa para adaptarse a los diferentes mercados.
Ajustar los parámetros de Alligator para mejorar la precisión de la determinación de la dirección de la tendencia.
Optimice los ajustes de stop loss y de ganancias para maximizar el control de retirada y obtener más ganancias.
Combinar con otros indicadores como KDJ, MACD, etc. para mejorar la precisión de la señal.
Agregue la pérdida de parada automática, la pérdida de parada de seguimiento para controlar mejor la pérdida de una sola operación.
Optimizar el tamaño de las posiciones en diferentes condiciones de mercado para gestionar los riesgos.
Optimice las sesiones de negociación, negocie en momentos en que la tendencia sea más obvia.
En resumen, esta es una estrategia comercial relativamente robusta a corto plazo. Adopta un enfoque de comercio de tortuga conservador, utiliza el indicador RSI para determinar puntos de reversión e incorpora el indicador Alligator para juzgar la dirección de la tendencia, lo que puede evitar efectivamente operaciones de alto riesgo como perseguir tops y bottoms, y bloquear ganancias relativamente estables. Al optimizar parámetros, detener pérdidas / obtener ganancias, combinar otros indicadores, etc., la estrategia se puede mejorar continuamente. En general, esta estrategia es adecuada para los inversores que están interesados en el comercio de contra-tendencia y la búsqueda de rendimientos constantes.
/*backtest start: 2023-11-06 00:00:00 end: 2023-11-07 20:00:00 period: 30m 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/ // © mohanee //@version=4 strategy(title="RSI of Ultimate Oscillator [SHORT Selling] Strategy", shorttitle="RSIofUO" , overlay=false, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed, //Ultimate Oscillator logic copied from TradingView builtin indicator ///////////////////////////////////////////////////////////////////////////////// length1 = input(5, minval=1), length2 = input(10, minval=1), length3 = input(15, minval=1) rsiUOLength = input(5, title="RSI UO length", minval=1) sellLine = input (60, title="Sell at RSIofUO") coverLine = input (75, title="Cover at RSIofUO") riskCapital = input(title="Risk % of capital", defval=10, minval=1) stopLoss=input(3,title="Stop Loss",minval=1) showUO=input(false, "show Ultimate Oscialltor") average(bp, tr_, length) => sum(bp, length) / sum(tr_, length) high_ = max(high, close[1]) low_ = min(low, close[1]) bp = close - low_ tr_ = high_ - low_ avg7 = average(bp, tr_, length1) avg14 = average(bp, tr_, length2) avg28 = average(bp, tr_, length3) out = 100 * (4*avg7 + 2*avg14 + avg28)/7 //Ultimate Oscillator ///////////////////////////////////////////////////////////////////////////////// //Willimas Alligator copied from TradingView built in Indicator ///////////////////////////////////////////////////////////////////////////////// smma(src, length) => smma = 0.0 smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length smma //moving averages logic copied from Willimas Alligator -- builtin indicator in TradingView sma1=smma(hl2,10) sma2=smma(hl2,20) sma3=smma(hl2,50) //Willimas Alligator ///////////////////////////////////////////////////////////////////////////////// //drawings ///////////////////////////////////////////////////////////////////////////////// hline(sellLine, title="Middle Line 60 [Short Here]", color=color.red , linestyle=hline.style_solid) obLevelPlot = hline(75, title="Overbought", color=color.blue , linestyle=hline.style_dashed) osLevelPlot = hline(25, title="Oversold", color=color.blue, linestyle=hline.style_dashed) fill(obLevelPlot, osLevelPlot, title="Background", color=color.blue, transp=90) rsiUO = rsi(out,rsiUOLength) ultPlot=plot(showUO==true? out : na, color=color.green, title="Oscillator") plot(rsiUO, title = "rsiUO" , color=color.purple) //drawings ///////////////////////////////////////////////////////////////////////////////// //Strategy Logic ///////////////////////////////////////////////////////////////////////////////// //Entry-- //Echeck how many units can be purchased based on risk manage ment and stop loss qty1 = (strategy.equity * riskCapital / 100 ) / (close*stopLoss/100) //check if cash is sufficient to buy qty1 , if capital not available use the available capital only qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1 strategy.entry(id="SERSIofUO", long=false, qty=qty1, when = sma1<=sma2 and sma2 < sma3 and close<sma2 and crossunder(rsiUO,sellLine) ) //strategy.entry(id="SERSiofUO", long=false, when = sma1< sma2 and crossunder(rsiUO,60) ) barcolor(abs(strategy.position_size)>=1 ? color.purple : na ) bgcolor(abs(strategy.position_size)>=1 ? color.purple : na , transp=70) //partial exit strategy.close(id="SERSIofUO", comment="PExit", qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and close< strategy.position_avg_price and crossover(rsiUO,30) ) strategy.close(id="SERSIofUO", comment="CloseAll", when=abs(strategy.position_size)>=1 and crossover(rsiUO,coverLine) ) //Strategy Logic /////////////////////////////////////////////////////////////////////////////////