
Esta estratégia utiliza a teoria da linha de equilíbrio para construir um sistema de negociação de grades, julgar a tendência do mercado através de uma combinação de linhas de equilíbrio JMA de vários conjuntos de diferentes parâmetros e abrir negociações de grades em pontos de mudança de tendência, com o objetivo de obter lucros na conversão de tendências de linha longa no mercado.
Utilizando a linha média JMA de 1 a 20 ciclos diferentes para formar uma combinação de linhas médias, julgue a tendência do mercado. Quando a média de curto prazo é superior à média de longo prazo, julgue a tendência ascendente, ao contrário, a tendência descendente.
No ponto de mudança de tendência, ou seja, quando a média curta atravessa a média longa de cima para baixo ou a média longa de baixo para cima, abra a grade de negociação. Crie gradualmente as listas em ascensão; Crie gradualmente as listas em declínio.
Pode-se escolher se o filtro de cor de entidade da linha K, se ativado, só comprar na linha K vermelho, a linha K verde vender, caso contrário, não considerar a cor da linha K, apenas quando a tendência inverter o comércio.
A parada de perda é um modo de rastrear a parada de perda ou a parada de expiração. A parada de perda de expiração significa que todas as posições são eliminadas no final do ciclo de execução da estratégia.
Usando o sistema de linha média para determinar a tendência, é possível determinar efetivamente o ponto de inflexão da linha longa no mercado.
O Grid Trading permite obter lucros de mercado de choque quando não há uma tendência clara. Além disso, o Stop Loss pode ser configurado para controlar o risco.
Os parâmetros da linha média da JMA são personalizáveis e podem ser otimizados para diferentes períodos, com alta flexibilidade.
Pode-se escolher se o filtro de cores de entidades de linha K, para evitar ser enganado por false breakouts.
O risco de perda é maior em mercados onde há uma grande volatilidade e sem uma tendência evidente.
O erro de julgamento do sistema de linha média pode levar a um erro de sinal de negociação.
Se o filtro de linha K for ativado, há o risco de perder algumas oportunidades de negociação.
Se o espaço entre as grades for muito grande, não haverá lucro suficiente; se for muito pequeno, haverá uma posição excessiva e uma pressão sobre os custos.
Os parâmetros de mais combinações podem ser testados para encontrar combinações JMA lineares mais adequadas para diferentes variedades.
Filter pode ser combinado com outros indicadores, como o canal BOLL, KD, etc., para melhorar a qualidade do sinal.
Parâmetros que permitem otimizar a configuração de transações de grades, como o intervalo de grades, o número de depósitos construídos e outros.
Mais tipos de paragem podem ser considerados, como paragem de salto, paragem de rastreamento, etc.
Esta estratégia utiliza a teoria da linha média da JMA para avaliar a reversão de tendência e abrir a grelha de negociação no ponto de reversão. Os lucros obtidos com a conversão de tendências de longo prazo no mercado podem ser obtidos através da otimização de parâmetros.
/*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)