En la carga de los recursos... Cargando...

Estrategia de compra/venta basada en el volumen y los patrones de candlestick

El autor:¿ Qué pasa?, Fecha: 2024-06-03 16:31:28
Las etiquetas:La SMAEl EMA

img

Resumen general

Esta estrategia combina señales del precio y el volumen de negociación, junto con los niveles de retroceso de Fibonacci, para generar señales de compra y venta dentro de los marcos de tiempo de 15 minutos y 45 minutos. La estrategia emplea múltiples promedios móviles (MA) como indicadores de tendencia e impulso, incluidos los promedios móviles simples (SMA) y los promedios móviles exponenciales (EMA). Además, los niveles de retroceso de Fibonacci se utilizan como puntos de entrada potenciales.

Principios de estrategia

  1. Calcule el MA rápido (default 10) y el MA lento (default 30). Cuando el MA rápido está por encima del MA lento, indica una tendencia al alza; de lo contrario, indica una tendencia a la baja.
  2. Calcular el volumen MA (por defecto 20). Cuando el volumen actual es mayor que el volumen MA, indica un aumento del volumen; en caso contrario, indica una disminución del volumen.
  3. Se utilizarán múltiples MAs y EMA como indicadores auxiliares, incluidos los MAs rápidos (default 9), los MAs a corto plazo (default 10 y 60) y los MAs (default 3 y 7).
  4. Calcular los niveles de retroceso de Fibonacci (0,47, 0,658 y 0,886) como niveles potenciales de soporte y resistencia.
  5. Generar señales de compra o venta cuando la SMA a corto plazo (60) cruza la línea de precisión (basada en el cruce de la EMA rápida y la EMA lenta).
  6. Generar señales de salida cuando el MA rápido (9) cruza el EMA (7).

Análisis de ventajas

  1. Combina información de precios y volumen de operaciones, proporcionando un análisis de mercado más completo.
  2. Utiliza múltiples MAs y EMAs como indicadores auxiliares, ayudando a confirmar los cambios en la tendencia y el impulso.
  3. Los niveles de retroceso de Fibonacci proporcionan una referencia para los puntos de entrada potenciales, lo que ayuda a optimizar el tiempo de entrada.
  4. Las señales de compra y venta se basan en el cruce de la SMA a corto plazo y la línea de precisión, lo que ayuda a capturar rápidamente los puntos de inflexión del mercado.
  5. Las señales de salida se basan en el cruce de los MA y EMA rápidos, lo que ayuda a obtener beneficios o a detener pérdidas a tiempo.

Análisis de riesgos

  1. En mercados inestables, las señales cruzadas frecuentes pueden conducir a pérdidas comerciales y de comisión excesivas.
  2. La estrategia se basa en los niveles de MAs y Fibonacci calculados a partir de datos históricos, que pueden no adaptarse rápidamente a cambios repentinos del mercado.
  3. La estrategia carece de una evaluación de la fuerza de las tendencias del mercado y puede generar señales falsas cuando las tendencias son débiles.
  4. Los parámetros de la estrategia (como los períodos de admisión) deben optimizarse de acuerdo con las diferentes condiciones del mercado; de lo contrario, la eficacia de la estrategia puede verse afectada.

Direcciones de optimización

  1. Introduzca un indicador de fuerza de tendencia (como el ADX) para evitar el comercio o adopte una estrategia más conservadora cuando las tendencias sean débiles.
  2. Optimizar los parámetros de los períodos de las AMP y de las AMA para adaptarse a las diferentes condiciones del mercado y a los instrumentos de negociación.
  3. Combinar otros indicadores técnicos (como RSI, MACD) para mejorar la fiabilidad de las señales.
  4. Introducir mecanismos de stop loss y take profit para controlar la exposición al riesgo de las operaciones individuales.
  5. Para los mercados agitados, considere adoptar estrategias comerciales más adecuadas (como el comercio de rango).

Resumen de las actividades

Esta estrategia genera señales de compra y venta dentro de múltiples marcos de tiempo mediante la combinación de precios, volumen de operaciones y niveles de retroceso de Fibonacci. La ventaja de la estrategia radica en su consideración integral de múltiples elementos de mercado y el uso de múltiples MAs y EMAs como indicadores auxiliares. Sin embargo, la estrategia puede generar señales comerciales excesivas en mercados agitados y se basa en indicadores calculados a partir de datos históricos. Por lo tanto, se necesita una mayor optimización para mejorar su adaptabilidad y confiabilidad.


/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Buy/Sell with Volume and Candlestick Signals", overlay=true)

// Fibonacci Retracement Levels
var float[] fibonacciLevels = array.new_float(5)
array.set(fibonacciLevels, 2, 0.47)
array.set(fibonacciLevels, 3, 0.658)
array.set(fibonacciLevels, 4, 0.886)

// Calculate Fibonacci Retracement Levels
fibonacciRetrace(highLevel, lowLevel) =>
    priceRange = highLevel - lowLevel
    retracementLevels = array.new_float(0)
    for i = 0 to array.size(fibonacciLevels) - 1
        level = highLevel - array.get(fibonacciLevels, i) * priceRange
        array.push(retracementLevels, level)
    retracementLevels

fibRetracementValues = fibonacciRetrace(high, low)
fibRetracement = ta.sma(close, 21)
plot(fibRetracement, color=color.purple, title="Fibonacci Retracement")

// Define inputs
fast_ma = input.int(title="Fast MA Period", defval=10)
short_sma_10 = input.int(title="Short SMA 10 Period", defval=10)
short_sma_60 = input.int(title="Short SMA 60 Period", defval=60)
slow_ma = input.int(title="Slow MA Period", defval=30)
ema1Length = input.int(title="EMA 1 Length", defval=3)
fast_ma_9 = input.int(title="Fast MA 9", defval=9)

// Define indicators
fast_ma_val = ta.sma(close, fast_ma)
short_sma_10_val = ta.sma(close, short_sma_10)
short_sma_60_val = ta.sma(close, short_sma_60)
slow_ma_val = ta.sma(close, slow_ma)
up_trend = fast_ma_val > slow_ma_val
down_trend = fast_ma_val < slow_ma_val
volume_up = volume > ta.sma(volume, 20)
volume_down = volume < ta.sma(volume, 20)

// Calculate accuracy values
fast_ema_val = ta.ema(close, fast_ma)
slow_ema_val = ta.ema(close, slow_ma)
ema1_val = ta.ema(close, ema1Length)
fast_ma_9_val = ta.sma(close, fast_ma_9)
ema7_val = ta.ema(close, 7)
accuracy = ta.crossover(close, slow_ma_val) ? fast_ema_val : slow_ema_val

// Define lines
plot(up_trend ? fast_ma_val : na, color=color.green, linewidth=2, title="Up Trend")
plot(down_trend ? fast_ma_val : na, color=color.red, linewidth=2, title="Down Trend")
plot(volume_up ? fast_ma_val : na, color=color.green, linewidth=2, title="Volume Up")
plot(volume_down ? fast_ma_val : na, color=color.red, linewidth=2, title="Volume Down")
plot(accuracy, color=color.yellow, linewidth=1, title="Accuracy Line")
plot(ema1_val, color=color.purple, linewidth=1, title="EMA 1")
plot(fast_ma_9_val, color=color.orange, linewidth=1, title="Fast MA 9")
plot(ema7_val, color=color.blue, linewidth=1, title="EMA 7")
plot(short_sma_60_val, color=color.red, linewidth=1, title="Short SMA 60")
hline(0, color=color.gray, linestyle=hline.style_dotted, title="Zero Line")

// Buy/Sell Signals
buySignal = ta.crossunder(short_sma_60_val, accuracy)
sellSignal = ta.crossover(short_sma_60_val, accuracy)

// Exit Signals
exitLongSignal = ta.crossunder(fast_ma_9_val, ema7_val)
exitShortSignal = ta.crossover(fast_ma_9_val, ema7_val)

// Plot Buy/Sell Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

if exitLongSignal
    strategy.close("Buy")

if exitShortSignal
    strategy.close("Sell")


if buySignal
    strategy.entry("Enter Long", strategy.long)
else if sellSignal
    strategy.entry("Enter Short", strategy.short)

Relacionados

Más.