Estrategia de trading cuantitativo con indicadores múltiples


Fecha de creación: 2023-10-25 18:06:44 Última modificación: 2023-10-25 18:06:44
Copiar: 0 Número de Visitas: 645
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo con indicadores múltiples

Descripción general

Esta estrategia utiliza una combinación de varios indicadores técnicos para tomar decisiones comerciales a corto y largo plazo. Incluye principalmente indicadores como la línea de Brin, RSI y ADX, mientras que la línea de par determina la dirección de la tendencia.

Principio de estrategia

La estrategia se basa principalmente en la línea de Bolling para determinar la oscilación de los precios, donde el estrechamiento de la línea de Bolling representa la reducción de la volatilidad de los precios y la posibilidad de una ruptura; al mismo tiempo, en combinación con el RSI para determinar el fenómeno de sobreventa y sobreventa, el RSI superior a 70 es el área de sobreventa y inferior a 30 es la zona de sobreventa. Cuando la línea de Bolling se estrecha, el indicador RSI se acerca a la zona de sobreventa y sobreventa.

Además, la estrategia también utiliza el ADX para determinar la intensidad de la tendencia de los precios. Cuando el ADX es alto, representa una fuerte tendencia y se puede elegir un comercio en curso; cuando el ADX es bajo, representa una tendencia no evidente y se puede considerar un cambio de tendencia. Finalmente, en combinación con la línea de paridad para determinar la dirección de la tendencia a largo plazo, si el precio está en una tendencia ascendente, se puede considerar comprar; si el precio está en una tendencia descendente, se puede considerar vender.

Concretamente, cuando el Brin se estrecha, el indicador RSI está cerca de la zona de sobreventa y el precio se desvía, se considera que la tendencia puede rebotar, y se considera más; cuando el Brin se estrecha, el indicador RSI está cerca de la zona de venta y el precio se desvía, se considera que la tendencia puede bajar, y se considera el vacío. Además, si el ADX es alto y el precio está en una tendencia ascendente, se puede colocar más; si el ADX es bajo y el precio está en una tendencia descendente, se puede colocar y vaciar.

Análisis de las ventajas

Esta estrategia de combinación de múltiples indicadores tiene las siguientes ventajas:

  1. La integración de varios indicadores técnicos mejora la precisión y la solidez de las señales de negociación. Un solo indicador es susceptible a errores como brechas falsas, mientras que una combinación de varios indicadores puede verificar la señal y evitar transacciones erróneas.

  2. Considera tanto la tendencia como la oscilación, puede adaptarse a diferentes situaciones del mercado, tiene una gran flexibilidad. El comercio de tendencias persigue una gran tendencia, el comercio de oscilaciones apunta a una pequeña ganancia.

  3. Al mismo tiempo, se puede hacer más deuda libre para reducir el riesgo de posición en el mercado unilateral y evitar situaciones extremas.

  4. El límite de pérdidas y ganancias es el límite de pérdidas y ganancias que se obtienen cuando las posiciones van mal.

  5. A través de la optimización de los parámetros, se puede mejorar constantemente la eficacia de la estrategia y adaptarse a los cambios en el mercado.

Análisis de riesgos

La estrategia también tiene algunos riesgos a tener en cuenta:

  1. La combinación de múltiples indicadores aumenta la complejidad de la estrategia, y la configuración inadecuada de los parámetros puede reducir la eficacia. Se requiere una buena prueba y optimización.

  2. La excesiva dependencia de los indicadores técnicos y la ignorancia de la información básica pueden conducir a que las señales de negociación sean inexactas.

  3. Cuando el indicador emite una señal, la situación puede haber cambiado y existe el riesgo de perseguir el alza y la caída. Es necesario esperar adecuadamente la corrección.

  4. La apertura de múltiples binarios aumenta la frecuencia de las operaciones, aumenta los costos de las comisiones y la presión financiera. Se necesita controlar el tamaño de las posiciones.

  5. Existe un cierto riesgo de ajuste de curva, por lo que es mejor probar la solidez de la estrategia en varios mercados.

El riesgo puede ser controlado por métodos como el estricto stop loss, la prudente adquisición de posiciones y el control razonable de la posición. En general, la estrategia tiene una gran utilidad.

Dirección de optimización

Esta estrategia puede ser optimizada en los siguientes aspectos:

  1. Prueba diferentes combinaciones de parámetros para encontrar el mejor. Optimiza los parámetros con métodos como el paso a paso, la búsqueda aleatoria o los algoritmos genéticos.

  2. Añadir más indicadores, como KDJ, William, etc., para formar grupos de indicadores y mejorar la solidez de la estrategia.

  3. Optimizar la gestión de posiciones y controlar el riesgo mediante el ajuste dinámico de las posiciones.

  4. Combinado con algoritmos de aprendizaje automático, el uso de modelos cuantitativos para determinar las tendencias de los precios y el futuro.

  5. Prueba de la adaptabilidad de las estrategias en diferentes variedades, períodos de tiempo y mercados.

  6. Optimización de los tiempos de entrada y salida para capturar tendencias en una etapa temprana y salir antes de la reversión.

  7. El uso de métodos como el seguimiento de paradas y el movimiento de paradas para bloquear ganancias y controlar el riesgo.

  8. Añadir los factores fundamentales y la estructura del mercado para filtrar las señales generadas por los indicadores técnicos.

Resumir

La estrategia utiliza una variedad de indicadores para determinar la tendencia de los precios y automatizar las transacciones. La estrategia tiene ventajas como la verificación de grupos de indicadores, el comercio bidireccional y el stop loss, lo que puede mejorar la eficiencia de las transacciones. Pero también hay que tener en cuenta los problemas de optimización y falsas señales. Mediante la optimización continua de las pruebas, la estrategia puede convertirse en un sistema de comercio cuantitativo estable y práctico.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
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/
// © The_Bigger_Bull
//@version=5
strategy("Best TradingView Strategy", overlay=true, margin_long=0, margin_short=0)
//Bollinger Bands
source1 = close
length1 = input.int(15, minval=1)
mult1 = input.float(2.0, minval=0.001, maxval=50)
basis1 = ta.sma(source1, length1)
dev1 = mult1 * ta.stdev(source1, length1)
upper1 = basis1 + dev1
lower1 = basis1 - dev1
//buyEntry = ta.crossover(source1, lower1)
//sellEntry = ta.crossunder(source1, upper1)

//RSI
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

//plot(rsi, "RSI", color=#7E57C2)
//plot(rsiMA, "RSI-based MA", color=color.yellow)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")

//ADX

adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up1 = ta.change(high)
	down1 = -ta.change(low)
	plusDM = na(up1) ? na : (up1 > down1 and up1 > 0 ? up1 : 0)
	minusDM = na(down1) ? na : (down1 > up1 and down1 > 0 ? down1 : 0)
	truerange = ta.rma(ta.tr, len)
	plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
	minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)




out = ta.sma(close, 14)

sma1=ta.sma(close,55)

ema200=ta.ema(close,200)



longCondition = (out>sma1) and ta.crossover(source1, lower1)

if (longCondition )
    strategy.entry("long", strategy.long)
    
shortCondition = (out<sma1) and ta.crossunder(source1, lower1)

if (shortCondition )
    strategy.entry("short", strategy.short)
    
    
stopl=strategy.position_avg_price-50
tptgt=strategy.position_avg_price+100
stopshort=strategy.position_avg_price+50
tptgtshort=strategy.position_avg_price-100

strategy.exit("longclose","long",trail_offset=5,trail_points=45,when=ta.crossover(sma1,out))
strategy.exit("shortclose","short",trail_offset=5,trail_points=45,when=ta.crossover(out,sma1))

    
//if strategy.position_avg_price<0
    
    
plot(sma1 , color=color.blue)
plot(out, color=color.green)
//plot(ema200,color=color.red)