Estrategia comercial avanzada basada en retrocesos de volumen-precio y múltiples tomas de ganancias


Fecha de creación: 2023-12-12 15:39:19 Última modificación: 2023-12-12 15:39:19
Copiar: 0 Número de Visitas: 612
1
Seguir
1621
Seguidores

Estrategia comercial avanzada basada en retrocesos de volumen-precio y múltiples tomas de ganancias

Descripción general

La estrategia combina una cruzada de medias móviles, un índice de resistencia relativamente fuerte (RSI) y un gran aumento en el volumen de operaciones, para tomar posiciones más cortas cuando se captura una cierta cantidad de retroceso en los precios después de un alto volumen de operaciones, y se establecen tres órdenes de parada progresiva para bloquear diferentes proporciones de ganancias. La estrategia también tiene una función de stop loss de seguimiento opcional para capturar oportunidades de que los precios sigan cambiando favorablemente.

Principio de estrategia

El cruce de las medias móviles rápidas y las medias móviles lentas en el oro proporciona una señal temprana para determinar que la tendencia ha comenzado a cambiar. El RSI se utiliza para evaluar el estado de sobreventa y sobreventa, lo que ayuda a evitar que se produzcan señales de entrada en estos escenarios para garantizar la estabilidad de la señal.

El principio de obtención y de salida de la señal de vacío es similar al de hacer más, pero no se trata aquí. Es importante señalar que la estrategia tiene la capacidad de hacer más y de hacer vacío a la vez.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas principales:

  1. El cruce de la línea media rápida y lenta con el indicador RSI forma un juicio sólido sobre el momento de la entrada en el mercado, evita la construcción de una posición en una zona de sobrecompra y venta excesiva, y mejora la probabilidad de obtener ganancias.

  2. Utiliza el aumento en el volumen de transacciones como criterio auxiliar para asegurar que se elija un intervalo de almacenamiento con una mayor amplitud de fluctuación de precios, lo que aumenta la fuerza de la señal.

  3. La adopción de una estrategia de creación de posiciones en la que el precio y el volumen de las transacciones retroceden en un determinado porcentaje aumenta la precisión de la hora de la entrada en el mercado y las oportunidades de reversión o aumento.

  4. Se establecen tres órdenes de parada progresiva para aprovechar al máximo el espacio de fluctuación de los precios para bloquear los beneficios, y los inversores pueden elegir entre varias órdenes de parada según el riesgo que asuman.

  5. La función de seguimiento de pérdidas opcional permite a los inversores elegir si activar o no la función de seguimiento de pérdidas en función de las fluctuaciones del mercado, al tiempo que obtienen mayores ganancias con la garantía.

  6. Al mismo tiempo, se aplica a las operaciones con más y con menos capitales, obteniendo ganancias tanto cuando el mercado sube como cuando baja, lo que aumenta la practicidad de la estrategia.

Análisis de riesgos

A pesar de esta estrategia tan bien diseñada, la negociación de cualquier producto financiero conlleva riesgos, por lo que hay que tener en cuenta:

  1. El cruce de la línea media rápida y lenta no siempre es un juicio preciso de la evolución del mercado, y si se utiliza un parámetro de línea media incorrecto, también se producen señales erróneas.

  2. La configuración incorrecta de los parámetros del indicador RSI también puede causar una fuga a la zona de sobreventa y sobreventa, y los parámetros del ciclo RSI deben ajustarse según el mercado.

  3. El incremento en el volumen de transacciones no equivale en absoluto a un cambio significativo en los precios, y los parámetros de referencia de volumen de transacciones pueden ajustarse adecuadamente.

  4. El descenso de precios y volúmenes de transacciones puede afectar el tiempo de entrada a la bolsa, lo que también requiere un ajuste al mercado.

  5. El margen de paradas establecido no garantiza que las órdenes de paradas se negocien por completo, y los cambios bruscos en el mercado pueden causar un deslizamiento.

  6. Si se establece un límite de pérdidas demasiado alto, también es posible que se retire el límite de pérdidas demasiado pronto y se pierdan mayores ganancias.

Para responder a estos riesgos, es necesario asegurar la estabilidad y fiabilidad de las estrategias mediante optimización de código, ajuste de parámetros y rigurosa retroalimentación.

Dirección de optimización

La estrategia tiene espacio para ser optimizada aún más:

  1. La adición de otros indicadores para ayudar a la decisión de la posición, como la banda de Brin, KD y otros indicadores, puede mejorar aún más la precisión de la señal.

  2. La creación de promedios móviles dinámicos, combinados con métodos de aprendizaje automático como LSTM, puede ajustar automáticamente los parámetros de la línea media en función de la situación más reciente del mercado, mejorando la capacidad de juicio sobre las tendencias.

  3. Se ha añadido la función de ajuste dinámico de stop/stop loss basado en la volatilidad del mercado, lo que permite a la estrategia ajustar automáticamente el stop/stop dependiendo de la volatilidad del mercado actual.

  4. Utiliza el método de aproximación dinámica para optimizar el factor de retroceso en tiempo real según la correlación entre la caída y la caída de la bolsa en general y las acciones individuales, para seleccionar el mejor momento para establecer una posición.

  5. La adopción de modelos multifactoriales, combinados con análisis de sentimientos, análisis de reglas de correlación y otras opciones para aplicar estrategias con la mayor correlación de precios y cambios en el volumen de transacciones, puede mejorar considerablemente la eficacia de la estrategia.

Resumir

En general, esta estrategia es muy adecuada para el uso de inversores de línea corta y media. La función de la estrategia optimizada será más completa e inteligente, con un mayor valor de aplicación en el campo de batalla. Como una estrategia de comercio cuantitativa positiva y agresiva, que ofrece un gran retorno de la inversión al mismo tiempo que se esfuerza por reducir el riesgo, realmente se puede hacer una apuesta sólida.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Advanced Strategy with Volume and Price Retracement and Multi-Take Profit (USDT)", overlay=true)

// Parametreler
fastLength = input(12, minval=1, title="Fast Moving Average")
slowLength = input(26, minval=1, title="Slow Moving Average")
rsiPeriod = input(14, minval=1, title="RSI Period")
volLength = input(20, minval=1, title="Volume MA Length")
volMultiplier = input(2.0, title="Volume Spike Multiplier")
trailOffset = input(1, title="Trailing Offset (%)")
usdtPerTrade = input(50000, title="USDT per Trade")
retraceFactor = input(0.8, title="Retracement Factor for Entry")
takeProfit1 = input(1, title="Take Profit 1 (%)")
takeProfit2 = input(2, title="Take Profit 2 (%)")
takeProfit3 = input(3, title="Take Profit 3 (%)")
trailForTP = input(true, title="Use Trailing Stop for Take Profits")

// Hesaplamalar
fastMA = sma(close, fastLength)
slowMA = sma(close, slowLength)
rsi = rsi(close, rsiPeriod)
volMA = sma(volume, volLength)
volumeSpike = volume > volMA * volMultiplier

// Durum Değişkenleri ve Saklanan Değerler
var float spikeVolume = na
var float spikePrice = na
var int direction = 0

// Alım/Satım Sinyalleri
longCondition = crossover(fastMA, slowMA) and rsi < 70
shortCondition = crossunder(fastMA, slowMA) and rsi > 30

// Hacim Spike ve Fiyat Hareketinin Saklanması
if (longCondition and volumeSpike)
    spikeVolume := volume
    spikePrice := close
    direction := 1
else if (shortCondition and volumeSpike)
    spikeVolume := volume
    spikePrice := close
    direction := -1

// Retracement Kontrolü ve Giriş Emirleri
if (direction == 1 and volume < spikeVolume * retraceFactor and close < spikePrice * (1 - trailOffset / 100))
    strategy.entry("Long", strategy.long, qty=usdtPerTrade / close)
    spikeVolume := na
    direction := 0
else if (direction == -1 and volume < spikeVolume * retraceFactor and close > spikePrice * (1 + trailOffset / 100))
    strategy.entry("Short", strategy.short, qty=usdtPerTrade / close)
    spikeVolume := na
    direction := 0

// Take Profit Emirleri
if strategy.position_size > 0
    strategy.exit("TP1", "Long", limit=strategy.position_avg_price * (1 + takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
    strategy.exit("TP2", "Long", limit=strategy.position_avg_price * (1 + takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
    strategy.exit("TP3", "Long", limit=strategy.position_avg_price * (1 + takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)

if strategy.position_size < 0
    strategy.exit("TP1", "Short", limit=strategy.position_avg_price * (1 - takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
    strategy.exit("TP2", "Short", limit=strategy.position_avg_price * (1 - takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
    strategy.exit("TP3", "Short", limit=strategy.position_avg_price * (1 - takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)

// Pozisyon çıkışları
strategy.close("Long", when=shortCondition)
strategy.close("Short", when=longCondition)