Estrategia dinámica de EMAherokuapp


Fecha de creación: 2023-12-07 17:20:44 Última modificación: 2023-12-07 17:20:44
Copiar: 0 Número de Visitas: 621
1
Seguir
1619
Seguidores

Estrategia dinámica de EMAherokuapp

Descripción general

Esta estrategia combina las señales EMA y RSI para identificar las oportunidades de ajuste de la línea corta de Bitcoin. Utiliza principalmente la EMA como gráfica principal y el RSI como indicador auxiliar de juicio para buscar las formas de ajuste más evidentes. Produce señales de negociación cuando el precio cae o se vuelve a subir a la línea de paridad EMA.

Principio de estrategia

La estrategia utiliza principalmente la línea EMA de 50 ciclos y el indicador RSI de 25 ciclos. La línea EMA se considera el indicador gráfico principal, el RSI se usa para determinar sobreventa y sobreventa y ayuda a generar señales de negociación. Se produce una señal de venta cuando el precio se rompe la línea EMA de arriba a abajo; y se produce una señal de compra cuando el precio se rompe la línea EMA de abajo a arriba y el indicador RSI muestra una señal de no sobreventa.

Después de la entrada de la operación, la estrategia establece al mismo tiempo las posiciones de stop loss y stop loss. La distancia de stop loss se puede establecer, por defecto, en un 5.1%; La distancia de stop loss también se puede establecer, por defecto, en un 9.6%. Esto puede reducir efectivamente el valor máximo de pérdidas individuales.

En general, la estrategia se basa principalmente en la forma de la línea EMA, complementada con el indicador RSI para evitar la sobrecompra y la sobreventa, mientras que tiene un control de stop loss para la captura de ajustes en la línea corta de BTC.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Las señales estratégicas son más claras y no generan demasiadas entradas erróneas al azar. El uso de la combinación de EMA y RSI hace que las señales sean más claras y confiables y no dependen solo de un indicador.

  2. Las estrategias de control de pérdidas de la barra de detención de pérdidas. Esto puede controlar eficazmente cada pérdida individual y es un medio de control de riesgo muy importante.

  3. Los parámetros de la estrategia se pueden optimizar. La longitud del EMA, la longitud del RSI, etc. son parámetros ajustables, y el usuario puede encontrar la combinación de parámetros óptima para diferentes mercados.

  4. Las políticas permiten retroalimentación. Se puede configurar un rango de tiempo de retroalimentación directamente dentro de la política para verificar la política.

Análisis de riesgos

La estrategia también presenta algunos riesgos, principalmente en los siguientes aspectos:

  1. El mercado de BT Bitcoin es violento, y el stop loss puede ser superado. A pesar de que la estrategia establece el stop loss, en el mercado de Bitcoin Big, el precio se mueve más y la línea de stop loss puede ser superada directamente. Esto puede generar grandes pérdidas.

  2. Riesgo de retroceso. La estrategia no tiene en cuenta el control de retroceso en general. Si se encuentra con una situación de ajuste más larga, la estrategia producirá una cierta retroceso.

  3. En el mercado general, el efecto de la señal se deteriora. En el mercado general comparativo salvaje, el precio de BTC tiene un movimiento de ondas más grande y más largo. En este caso, el efecto de la señal a corto plazo se deteriora y es fácil de estafar.

Los riesgos pueden ser controlados y mitigados con las siguientes medidas:

  1. La extensión adecuada de los estímulos de pérdidas. Si se trata de un gran mercado, se puede ampliar la distancia de los estímulos de pérdidas, por ejemplo, a alrededor del 10%, para evitar que los estímulos de pérdidas sean demasiado fáciles de romper.

  2. En combinación con otros indicadores de filtración. Se puede agregar un indicador de tendencia como el alineamiento de múltiples cabezas en línea media, para evitar el uso de esta estrategia en el ajuste a largo plazo.

  3. Optimización del conjunto de parámetros. Se puede probar la configuración de parámetros en diferentes etapas del mercado, crear múltiples combinaciones de parámetros y cambiar los parámetros cuando llegue el momento en que se produzca una situación importante para mejorar la calidad de la señal.

Dirección de optimización

La estrategia también tiene espacio para una mayor optimización, principalmente en los siguientes aspectos:

  1. Aumentar el control de retiro global. Se puede establecer un porcentaje máximo de retiro, como el 20%, y la estrategia para suspender la negociación cuando se alcanza ese retiro, para evitar pérdidas excesivas.

  2. Aumentar el control de la frecuencia de apertura de posiciones. Se puede limitar el número de posiciones abiertas por unidad de tiempo de la estrategia, como un máximo de dos veces por hora, para evitar operaciones demasiado frecuentes.

  3. Optimización de la configuración de parámetros. Prueba combinaciones de parámetros en diferentes situaciones del mercado, crea varias plantillas de parámetros y selecciona los parámetros adecuados en el disco real según la situación actual para mejorar la eficacia de la estrategia.

  4. La estrategia se puede utilizar con otras combinaciones de indicadores, como tendencias y volatilidad, para formar una base de entrada más completa y confiable en el sistema de negociación.

Resumir

En general, la estrategia se basa principalmente en la configuración de ajuste a corto plazo de BT Bitcoin, utilizando EMA y RSI para generar una señal de negociación más clara, al mismo tiempo que tiene controles de stop loss y stop loss para aprovechar eficazmente las oportunidades de arbitraje generadas por el deslizamiento a corto plazo de BT. Sin embargo, la estrategia es más adecuada como herramienta auxiliar de línea corta, y su uso en combinación con otras estrategias es más efectivo y puede generar ganancias excedentarias más estables.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
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/
// © mmoiwgg

//@version=4
strategy(title="EMA+RSI Pump & Drop Swing Sniper (With Alerts & SL+TP) - Strategy", shorttitle="EMA+RSI Swing Strategy", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=50, minval=0)
emarsiSource = input(close, title="EMA+RSI Source")
condSource = input(high, title="Long+Short Condition Source")
emaVal = ema(emarsiSource, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(emarsiSource, rsiLength)

//Safety 
emaLength2 = input(title="Safety EMA Length", type=input.integer, defval=70, minval=0)
emaSource2 = input(close, title="Safety EMA Source")
ema = ema(emaSource2, emaLength2)
emaColorSource2 = close
emaBSource2 = close

// Backtest+Dates
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)        // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest end window
window()  => time >= start and time <= finish ? true : false       // create function - add window() to entry/exit/close

// Conditions
exit_long = crossover(emaVal, condSource)
longCond = crossunder(emaVal, condSource) and close > ema

//Stoploss + TakeProfit
sl = input(0.051, step=0.001, title="Stop Loss")
tp = input(0.096, step=0.001, title="Take Profit")

// Plots Colors
colors = emarsiSource > emaVal and rsiVal > 14 ? color.green : color.red
emaColorSource = input(close, title="Line Color Source")
emaBSource = input(close, title="Line Color B Source")

// Plots
plot(ema, color=emaColorSource2[1] > ema and emaBSource2 > ema ? color.green : color.red, linewidth=1)
plot(emaVal, color=emaColorSource[1] > emaVal and emaBSource > emaVal ? color.green : color.red, linewidth=3)
plotcandle(open, high, low, close, color=colors)


//Strategy Entry+Exits
strategy.entry("long",1,when=window() and longCond)
strategy.close("long",when=window() and exit_long)
strategy.exit("long tp/sl", "long", profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick)