La estrategia de comercio cuantitativo eficiente que combina

El autor:¿ Qué pasa?, Fecha: 2024-02-01 15:09:06
Las etiquetas:

img

Resumen general

Esta estrategia combina principalmente el indicador RSI de 5 días y el promedio móvil de 200 días para formar señales de decisión comercial, que pertenece a la estrategia de combinación de indicadores técnicos. Su principal principio de negociación es: cuando el precio se ejecuta hasta el área de sobrecompra / sobreventa, indica la venta; cuando el precio cae hasta el área de sobreventa, indica la compra. La mayor ventaja de esta estrategia es que la señal de estrategia es relativamente clara y el riesgo de retroceso es relativamente pequeño.

Principio de la estrategia

Esta estrategia combina principalmente el indicador RSI de 5 días y el promedio móvil de 200 días para juzgar el área de sobrecompra / sobreventa en la que los precios están funcionando y forma decisiones comerciales:

  1. El indicador RSI de 5 días juzga el área de sobrecompra/sobreventa donde los precios están funcionando. La línea de sobrecompra se establece en 72 y el área de sobreventa es 30. Cuando el indicador RSI rompe 30 de abajo a arriba, se genera una señal de compra; cuando el indicador RSI cae de arriba a abajo por debajo de 72, se genera una señal de venta.

  2. La media móvil de 200 días determina la dirección de la tendencia a medio y largo plazo. Cuando el precio está por debajo de la media móvil de 200 días, es una fase descendente del precio; cuando el precio está por encima de la media móvil de 200 días, es una fase ascendente del precio.

  3. Combinando el juicio 1 y 2, esta estrategia se vende cuando el indicador RSI de 5 días está sobrecomprado y se rompe por debajo de 72, y se compra cuando el RSI de 5 días se rompe por debajo de 30 y el precio está por debajo del promedio móvil de 200 días.

Ventajas de la estrategia

  1. La señal de estrategia es relativamente clara, utilizando el indicador RSI para determinar la señal de sobrecompra/sobreventa por el área de juicio.

  2. La media móvil de 200 días determina la dirección de la tendencia principal para evitar operaciones contrarias.

  3. El número máximo de posiciones puede establecerse para ayudar a controlar los riesgos.

  4. La estrategia tiene un gran espacio para la optimización de parámetros, parámetros de RSI ajustables y parámetros de promedio móvil.

  5. El riesgo de retracement relativamente pequeño puede controlar eficazmente el retracement máximo de la estrategia.

Riesgos de la estrategia

  1. Si se utilizan únicamente indicadores del índice de rendimiento y de la media móvil, la señal de estrategia puede ser inestable, con el riesgo de pérdidas de largo y corto plazo en mercados volátiles.

  2. Necesidad de optimizar y probar los parámetros del RSI y los parámetros de la media móvil para obtener mejores resultados estratégicos.

  3. Se pueden introducir otros indicadores o modelos para optimizar la señal de estrategia, como la introducción de indicadores de volatilidad, juicios de aprendizaje automático, etc.

Direcciones para la optimización de la estrategia

  1. Utilice más combinaciones de indicadores para juzgar, como el MACD, KD, indicadores de volatilidad, etc.

  2. Aumentar los juicios del modelo de aprendizaje automático, como LSTM para juzgar la estabilidad de las señales comerciales.

  3. Aumentar los factores cuantitativos, tales como cambios en el volumen de operaciones, la dirección del flujo de capital y otros juicios de los factores de capital.

  4. Optimice los parámetros de la estrategia, como los parámetros del RSI, los parámetros de la media móvil, etc.

  5. Optimice los mecanismos de stop loss, como el movimiento de stop loss, el tiempo de stop loss, etc.

Resumen de las actividades

Esta estrategia utiliza principalmente la combinación del indicador RSI de 5 días y el indicador promedio móvil de 200 días para juzgar el área de sobrecompra / sobreventa de los precios y formar señales comerciales. Pertenece a la estrategia de combinación de indicadores técnicos. La señal de estrategia es relativamente clara y el riesgo máximo de retroceso es relativamente pequeño. Pero se puede optimizar aún más a través de combinaciones de múltiples indicadores y juicios de aprendizaje automático para mejorar los resultados de la estrategia.


/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 3m
basePeriod: 1m
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/
// ©chewyScripts.

//@version=5
strategy("96er RSI+200EMA Strategy + Alerts", overlay=true)
// This works best on a small account $100, with 50% of equity and up to 10 max open trades. 
// 96% Profitable, turns $100 into $350 in 1 month. very few losses. super happy with it.
// So far it triples the account on a 1m chart in 1 month back testing on the SEI-USD pair.
// I did not test on FX pairs or other instruments.
// had some issues with the inputs not working so had to hard code some, also the lastClose var sometimes breaks and starts following every candle, not sure why.

in_r1 = input.int(5,"5 day input or RSI1")
in_openOrders = input.int(3,"max open orders")

in_lowerRSI = input.int(30,"RSI Lower")
in_upperRSI = input.int(72,"RSI Upper ")

in_emaperiod = input.int(200,"EMA Period")

in_buybreakout = input.int(50,"Buy breakout range")

in_buyTP = input.float(1.05,"Buy TP: 1+TP %, .05 seems to work well.")
in_sellTP = input.float(0.9850, "Sell TP: 1-TP%. .025 seems to work well. ")

simple int rsi5 = in_r1

// 3 rsi strategy , when all of them are overbought we sell, and vice versa
rsi7 = ta.rsi(close,rsi5)
lastClose = request.security(syminfo.tickerid, "D", close, lookahead = barmerge.lookahead_on)
rsi3 = ta.rsi(close[5],rsi5)

ma = ta.ema(close,in_emaperiod)

plot(rsi7,"5 Day RSI",color.red)
plot(lastClose,"Yesterdays Close",color.green)
plot(rsi3,"Previous 5th candles RSI",color.purple)


// sell condition
//sell = ta.crossunder(rsi7,70) and ta.crossunder(rsi14,70) and ta.crossunder(rsi21,70)

//buy condition
//buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and rsi3 <= in_upperRSI and strategy.opentrades < in_openOrders
//sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and rsi3 >= in_lowerRSI3 and strategy.opentrades < in_openOrders

buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and close < lastClose and strategy.opentrades < in_openOrders
sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and close > lastClose and strategy.opentrades < in_openOrders


var lastBuy = close 
var lastSell = close 

if (buy)
    strategy.entry("BUY", strategy.long)
    lastBuy := close 
    alert("Buy")

if ((close >= lastBuy*in_buyTP ) or rsi7 > in_buybreakout and close >= lastClose and (close >= lastClose*in_buyTP or close >= lastBuy*in_buyTP ) )
    strategy.close("BUY", "BUY Exit")
    alert("Buy Exit")
    
if (sell)
    strategy.entry("SELL", strategy.short)
    lastSell := close 
    alert("Sell")

if ( close < ma and (close <= lastSell*in_sellTP ) or (close < lastClose*in_sellTP) )
    strategy.close("SELL", "Sell Exit")
    alert("Sell Exit")


Más.