
Esta estratégia primeiro calcula a média móvel simples de 13 e 26 períodos, e depois calcula o indicador FRAMA. Faça mais quando a linha rápida de baixo para cima quebra a linha lenta, e leve quando a linha rápida de cima para baixo quebra a linha lenta ou o indicador FRAMA de cima para baixo quebra o preço de fechamento.
Esta estratégia utiliza principalmente o cruzamento de duas linhas de equilíbrio para formar um sinal de negociação. Quando a média de curto prazo de baixo para cima quebra a média de longo prazo, a tendência é de inverter a tendência de baixa para cima, fazer mais; quando a média de curto prazo de cima para baixo quebra a média de longo prazo, a tendência é de inverter a tendência de cima para baixo, equilibrar a posição.
Ao mesmo tempo, a estratégia introduziu o indicador FRAMA como um julgamento auxiliar. O indicador FRAMA é uma média móvel adaptativa melhorada com base na hipótese de um mercado de divisão. Estima as dimensões de divisão do mercado em tempo real, calculando a taxa de variação analógico da amplitude de flutuação dos preços em diferentes períodos, para ajustar dinamicamente a suavidade da média.
Esta estratégia combina a dupla linha de equilíbrio cruzada com o indicador FRAMA para filtrar os falsos sinais de ruptura e melhorar a qualidade do sinal de negociação. A dupla linha de equilíbrio cruzada determina a direção principal da negociação, e o julgamento auxiliar da FRAMA evita a perda de um ponto de reversão em um cenário de turbulência.
Em comparação com um único indicador e modelo, a estratégia melhora significativamente a qualidade do sinal, reduzindo a probabilidade de erro de julgamento. Ao mesmo tempo, em combinação com a linha média lenta e rápida, pode ser feito de forma contínua, evitando ser encaixado.
O principal risco desta estratégia é que as linhas de dupla média podem produzir mais falsos sinais de ruptura, e a configuração dos parâmetros do indicador FRAMA também pode afetar o julgamento. Além disso, em determinadas circunstâncias, as linhas rápidas e lentas podem não se cruzar por muito tempo entre a FRAMA e o preço de fechamento, resultando em nenhuma oportunidade de negociação.
Para controlar os riscos acima, pode-se ajustar adequadamente o parâmetro de ciclo de linha média, ou em combinação com outros indicadores de filtragem. Além disso, o comprimento do indicador FRAMA, o fator de fração e outros parâmetros também precisam de ajustes razoáveis para diferentes mercados, para evitar o excesso de suavização ou alergia.
A estratégia pode ser melhorada em vários aspectos:
Teste mais combinações de linhas médias e parâmetros de ciclo para encontrar o melhor par de parâmetros.
Aumentar as estratégias de stop loss e controlar as perdas individuais.
Combinado com indicadores de volume de transação, evitar falsas rupturas de baixo volume.
Adição de modelos de aprendizado de máquina, avaliação em tempo real do estado do mercado, parâmetros de ajuste dinâmico.
A combinação de vários fatores, como indicadores de sentimento e notícias, para avaliar o sentimento do mercado e melhorar a qualidade das decisões.
Esta estratégia é uma prática inicial da dupla estratégia de equilíbrio de linha cruzada com a combinação do indicador FRAMA. Ao manter uma base simples e intuitiva, eleva efetivamente a qualidade do sinal, e vale a pena otimizar para testes adicionais. Com o ajuste dos parâmetros, a introdução de novos indicadores e outras otimizações, esta estratégia pode ser uma estratégia de negociação quantitativa estável e confiável.
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-16 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Fractal Adaptive Moving Average",shorttitle="FRAMA",overlay=true)
ma_fast = sma(close,13)
ma_slow = sma(close,26)
plot(ma_fast,color = green)
plot(ma_slow, color = yellow)
price = input(hl2)
len = input(defval=16,minval=1)
FC = input(defval=1,minval=1)
SC = input(defval=198,minval=1)
len1 = len/2
w = log(2/(SC+1))
H1 = highest(high,len1)
L1 = lowest(low,len1)
N1 = (H1-L1)/len1
H2 = highest(high,len)[len1]
L2 = lowest(low,len)[len1]
N2 = (H2-L2)/len1
H3 = highest(high,len)
L3 = lowest(low,len)
N3 = (H3-L3)/len
dimen1 = (log(N1+N2)-log(N3))/log(2)
dimen = iff(N1>0 and N2>0 and N3>0,dimen1,nz(dimen1[1]))
alpha1 = exp(w*(dimen-1))
oldalpha = alpha1>1?1:(alpha1<0.01?0.01:alpha1)
oldN = (2-oldalpha)/oldalpha
N = (((SC-FC)*(oldN-1))/(SC-1))+FC
alpha_ = 2/(N+1)
alpha = alpha_<2/(SC+1)?2/(SC+1):(alpha_>1?1:alpha_)
out = (1-alpha)*nz(out[1]) + alpha*price
plot(out,title="FRAMA",color=purple,transp=0)
entry() => crossover(ma_fast, ma_slow) and (out < close)
exit() => crossover(ma_slow, ma_fast) or crossunder(out, close)
strategy.entry(id= "MA cross", long = true, when = entry())
strategy.close(id= "MA cross", when = exit())