A estratégia é uma estratégia de negociação baseada em sinais de negociação do Faytterro Estimator. O Faytterro Estimator é um indicador para julgar a tendência através do cálculo da taxa de convergência de dispersão dos preços. A estratégia combina os sinais de negociação do Faytterro Estimator, e algumas condições adicionais, para emitir sinais de compra e venda de diferentes tamanhos em pontos ideais.
O núcleo da estratégia é o Faytterro Estimator. O seu método de cálculo é: primeiro calcular a divergência de convergência de preços CR, e depois construir uma função secundária, que pode refletir a curva de CR através da configuração de diferentes coeficientes.
Concretamente, a estratégia primeiro calcula a taxa de convergência dispersa do preço CR. Depois, constrói um comprimento de 2*O conjunto de dígitos de len é preenchido com o valor da função secundária. O coeficiente da função secundária reflete o valor da função CR. Depois, é observado os valores de len+1+5 e len+1+4 para determinar se a função secundária está em um ponto de inflexão, e se estiver em um ponto de inflexão, é emitido um sinal de compra ou venda.
Com base nisso, a estratégia também estabelece algumas condições adicionais, como a definição de intervalos mínimos de ruptura de preços, para evitar negociações frequentes; a definição de sinais de entrada de diferentes tamanhos, etc. Estas condições são para filtrar alguns pontos de negociação indesejáveis.
A estratégia tem as seguintes vantagens:
O Faytterro Estimator é um indicador de tendências sensível às flutuações de preços e capaz de capturar mudanças de tendências mais cedo.
A construção de funções secundárias reflete as características da curva CR, procura os sinais dos pontos de inflexão e determina a eficácia intuitiva do método.
A configuração de sinais de entrada de diferentes tamanhos permite que as negociações em pirâmide sejam feitas em pontos ideais, aumentando a margem de lucro.
Aumentar a configuração de intervalos mínimos, filtrando sinais de forma eficaz, evitando frequentes transações inválidas.
Tem muitos parâmetros ajustáveis, pode ser otimizado para diferentes variedades, é altamente adaptável.
A estratégia é clara e fácil de entender, o código é fácil de ler e fácil de aprender.
A estratégia também apresenta alguns riscos que devem ser lembrados:
O Faytterro Estimator tem riscos para o curve fitting, podendo não funcionar bem em algumas variedades.
O sinal pode ser exagerado, causando um erro de julgamento.
A frequência de transações em pirâmide aumenta a carga de taxas.
A quantidade de parâmetros ajustáveis aumenta a dificuldade de ajuste.
A falta de capacidade para lidar com os erros de avaliação durante os períodos de flutuação dos preços.
A falta de um mecanismo de stop-loss pode levar a um aumento dos prejuízos.
As soluções para os riscos são:
Parâmetros de otimização para diferentes variedades para melhorar a robustez.
Para evitar erros de julgamento, adicione filtros para outros indicadores.
Estabeleça um limite de perda razoável e controle as perdas individuais.
Parâmetros de ajuste automático através de métodos de Big Data.
Aumentar os mecanismos de identificação de tremores para evitar a fase de tremor.
Configurar uma lógica de stop loss razoável.
A estratégia de otimização inclui:
Aumentar a lógica de stop-loss, controlar o único prejuízo. Pode ser configurado o stop-loss móvel ou o stop-loss de tempo.
Adicionar outras combinações de indicadores para evitar o risco de erro de julgamento de um único indicador Faytterro Estimator. Por exemplo, a combinação de MACD, KDJ e outros indicadores para filtragem.
Aumentar o mecanismo de confirmação, evitando a saída de stop loss devido a uma reversão de preço de curto prazo. Pode ser considerada uma segunda confirmação de entrada.
Optimizar parâmetros ajustáveis, definir parâmetros razoáveis para diferentes variedades. Pode usar algoritmos genéticos, métodos como otimização de Bayes.
Aumentar a identificação de situações de turbulência e evitar transações em períodos de turbulência. Pode ser identificado com indicadores como ATR, DMI.
Otimizar a lógica da pirâmide, para evitar a caça e a queda. Por exemplo, ajustar dinamicamente a amplitude de aumento de posição de acordo com a intensidade da tendência.
Teste as configurações de parâmetros de diferentes períodos de tempo para encontrar o melhor período.
Esta estratégia baseia-se em Faytterro Estimator de sinais de negociação para a tomada de decisões, com base em que o julgamento de lógica adicionada e configuração de sinais de entrada de diferentes tamanhos, formando uma estratégia de acompanhamento de tendências com características de pirâmide. A estratégia é intuitiva e fácil de entender, com uma forte capacidade de captura de tendências.
/*backtest
start: 2022-09-21 00:00:00
end: 2023-08-10 00:00:00
period: 1d
basePeriod: 1h
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/
// © faytterro
//@version=5
// strategy("Faytterro Estimator Strategy", overlay=true, pyramiding=100)
src=input(hlc3,title="source")
len=input.int(10,title="faytterro estimator lenght", maxval=500)
len2=100
len3=input.float(500,title="minumum enrty-close gap (different direction)")
len4=input.float(500,title="minumum entry-entry gap (same direction)")
cr(x, y) =>
z = 0.0
weight = 0.0
for i = 0 to y-1
z:=z + x[i]*((y-1)/2+1-math.abs(i-(y-1)/2))
z/(((y+1)/2)*(y+1)/2)
cr= cr(src,2*len-1)
width=input.int(10, title="strong entry size", minval=1)
dizi = array.new_float(500)
// var line=array.new_line()
//if barstate.islast
for i=0 to len*2
array.set(dizi,i,(i*(i-1)*(cr-2*cr[1]+cr[2])/2+i*(cr[1]-cr[2])+cr[2]))
buy = array.get(dizi,len+1+5)>array.get(dizi,len+1+4) and array.get(dizi,len+1+5)<cr[len]
sell = array.get(dizi,len+1+5)<array.get(dizi,len+1+4) and array.get(dizi,len+1+5)>cr[len]
bb=buy? hlc3 : na
ss=sell? hlc3 : na
sbuy= buy and close<(close[ta.barssince(buy or sell)])[1]-len4 and close<ta.highest(fixnan(ss),len2)-len3*3
ssell= sell and close>(close[ta.barssince(buy or sell)])[1]+len4 and close>ta.lowest(fixnan(bb),len2)+len3*3
buy:= buy and close<(close[ta.barssince(buy or sell)])[1]-len4 and close<ta.highest(fixnan(ss),len2)-len3 //and close>ta.highest(fixnan(ss),len2)-len3*3
sell:= sell and close>(close[ta.barssince(buy or sell)])[1]+len4 and close>ta.lowest(fixnan(bb),len2)+len3 //and close<ta.lowest(fixnan(bb),len2)+len3*3
alertcondition(buy or sell)
if (sbuy)
strategy.entry("strong buy", strategy.long,width)
if (ssell)
strategy.entry("strong sell", strategy.short,width)
if (buy)
strategy.entry("buy", strategy.long)
if (sell)
strategy.entry("sell", strategy.short)