
Esta estrategia utiliza la teoría de la línea media para construir un sistema de negociación de la grilla, para determinar la tendencia del mercado a través de una combinación de líneas medias JMA de diferentes parámetros, y para iniciar una negociación de la grilla en un punto de cambio de tendencia con el objetivo de obtener ganancias de la conversión de la tendencia de la línea media del mercado.
Utiliza una combinación de líneas de medias JMA de 1 a 20 ciclos diferentes para determinar la tendencia del mercado. Cuando las medias de corto período son más altas que las medias de largo período, se considera una tendencia alcista, y viceversa, una tendencia descendente.
En el punto de cambio de tendencia, es decir, cuando la media corta cruza la media larga desde arriba hacia abajo o desde abajo hacia la media larga, abra la rejilla de operaciones. En la tendencia ascendente, construya gradualmente una sola carta; en la tendencia descendente, construya gradualmente varias cartas.
Se puede elegir si se filtra por el color de la entidad de la línea K. Si está activado, solo se compra en la línea K roja y se vende en la línea K verde. De lo contrario, no se considera el color de la línea K y solo se negocia cuando la tendencia se invierte.
El método de parada de pérdidas es el de seguimiento de la parada de pérdidas o la parada de vencimiento. La parada de vencimiento se refiere al cierre de todas las posiciones al final del ciclo de ejecución de la estrategia.
El uso de un sistema de medias líneas para juzgar la tendencia, puede ser eficaz para juzgar el punto de inflexión en el movimiento de la línea larga del mercado.
El comercio de la rejilla permite obtener ganancias en el mercado de la conmoción cuando no hay una tendencia clara. Al mismo tiempo, se puede configurar un stop loss para controlar el riesgo.
Los parámetros de la línea media de JMA son personalizables y se pueden optimizar para diferentes períodos, con gran flexibilidad.
Se puede elegir si se filtra por el color de la entidad de la línea K, para evitar ser engañado por el falso avance.
El riesgo de pérdidas es mayor en mercados con grandes movimientos y sin tendencias evidentes.
El error de juicio del sistema de línea media puede llevar a una señal de negociación errónea.
Si se activa el filtro de línea K, se corre el riesgo de perder algunas oportunidades comerciales.
Si el espacio entre las rejillas es demasiado grande, no se puede obtener suficiente beneficio; si es demasiado pequeño, hay demasiadas posiciones y una gran presión de gastos.
Los parámetros de más combinaciones pueden ser probados para encontrar combinaciones de JMA más adecuadas para diferentes variedades.
Se puede combinar con otros indicadores para filtrar, como el canal BOLL, KD, etc., para mejorar la calidad de la señal.
Los parámetros que permiten optimizar la configuración de las transacciones de la red, como el espacio entre las redes, el número de almacenes construidos y otros.
Se pueden considerar más tipos de paradas, como paradas de salto, paradas de seguimiento, etc.
Esta estrategia se basa en la teoría de la línea media de JMA para determinar el cambio de tendencia y abrir una operación en la red en el punto de cambio. Se obtiene ganancias por la conversión de la tendencia de la línea larga en el mercado. Se puede obtener un mejor rendimiento de la estrategia mediante la optimización de los parámetros. En general, la estrategia es adecuada para la tenencia a medio o largo plazo y el seguimiento gradual de la tendencia para obtener ganancias.
/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=3
strategy(title = "Noro's Fishnet Strategy", shorttitle = "Fishnet str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
usecf = input(false, defval = false, title = "Use Color-filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//JMA
jmax(src, len) =>
beta = 0.45*(len-1)/(0.45*(len-1)+2)
alpha = pow(beta, 3)
L0=0.0, L1=0.0, L2=0.0, L3=0.0, L4=0.0
L0 := (1-alpha)*src + alpha*nz(L0[1])
L1 := (src - L0[0])*(1-beta) + beta*nz(L1[1])
L2 := L0[0] + L1[0]
L3 := (L2[0] - nz(L4[1]))*((1-alpha)*(1-alpha)) + (alpha*alpha)*nz(L3[1])
L4 := nz(L4[1]) + L3[0]
L4
ma01 = jmax(close, 10)
ma02 = jmax(close, 20)
ma03 = jmax(close, 30)
ma04 = jmax(close, 40)
ma05 = jmax(close, 50)
ma06 = jmax(close, 60)
ma07 = jmax(close, 70)
ma08 = jmax(close, 80)
ma09 = jmax(close, 90)
ma10 = jmax(close, 100)
ma11 = jmax(close, 110)
ma12 = jmax(close, 120)
ma13 = jmax(close, 130)
ma14 = jmax(close, 140)
ma15 = jmax(close, 150)
ma16 = jmax(close, 160)
ma17 = jmax(close, 170)
ma18 = jmax(close, 180)
ma19 = jmax(close, 190)
ma20 = jmax(close, 200)
trend = 0
trend := ma01 > ma20 ? 1 : ma01 < ma20 ? -1 : trend[1]
col = trend == 1 ? #00FF7F : #DC143C
plot(ma01, transp = 0, color = col)
plot(ma02, transp = 0, color = col)
plot(ma03, transp = 0, color = col)
plot(ma04, transp = 0, color = col)
plot(ma05, transp = 0, color = col)
plot(ma06, transp = 0, color = col)
plot(ma07, transp = 0, color = col)
plot(ma08, transp = 0, color = col)
plot(ma09, transp = 0, color = col)
plot(ma10, transp = 0, color = col)
plot(ma11, transp = 0, color = col)
plot(ma12, transp = 0, color = col)
plot(ma13, transp = 0, color = col)
plot(ma14, transp = 0, color = col)
plot(ma15, transp = 0, color = col)
plot(ma16, transp = 0, color = col)
plot(ma17, transp = 0, color = col)
plot(ma18, transp = 0, color = col)
plot(ma19, transp = 0, color = col)
plot(ma20, transp = 0, color = col)
//Trading
lot = 0.0
lot := strategy.equity / close * capital / 100
if trend == 1 and (close < open or usecf == false)
strategy.entry("Long", strategy.long, needlong ? lot : na)
if trend == -1 and (close > open or usecf == false)
strategy.entry("Short", strategy.short, needshort ? lot : na)