
A estratégia permite o acompanhamento da tendência dos preços das criptomoedas, definindo os pontos altos e baixos em que os preços se rompem. Fazer mais quando os preços atingem o ponto mais alto, e fazer menos quando os preços atingem o ponto mais baixo, permite a captura da tendência.
A estratégia usa principalmente a lei da média móvel ponderada para determinar se os preços estão em uma tendência óbvia de alta ou baixa. Concretamente, ele calcula os preços mais altos e mais baixos de um determinado período, e julga que há uma tendência de alta quando os preços de negociação reais superam os preços mais altos das estatísticas; quando os preços de negociação reais são inferiores aos preços mais baixos das estatísticas, julga-se que há uma tendência de queda.
O preço de abertura de uma posição com mais tomada de posição é definido pela barra de parâmetros ENTRY, e o preço de parada é definido pela barra de parâmetros EXIT. O tempo de retorno também pode ser definido por meio de parâmetros. Assim, é possível encontrar a melhor combinação de combos, ajustando os parâmetros.
A principal lógica da estratégia é a seguinte:
Através deste ciclo lógico, pode-se capturar as tendências de alta e baixa dos preços, permitindo o acompanhamento de tendências.
A maior vantagem desta estratégia é que, através de ajustes de parâmetros, é possível capturar automaticamente a tendência dos preços, sem a necessidade de julgar manualmente a direção da tendência. Se os parâmetros estiverem definidos corretamente, é possível rastrear automaticamente a oscilação dos preços das criptomoedas.
Além disso, a estratégia é muito adequada para a transação de quantidade, que pode ser facilmente automatizado pedidos. Não há necessidade de manipulação manual, reduzindo o risco de transações emocionais, pode aumentar significativamente a eficiência das transações.
Finalmente, a estratégia também pode maximizar o lucro através do ajuste de parâmetros. Ao testar diferentes parâmetros de ENTRY e EXIT, pode-se encontrar o parâmetro ideal para maximizar o lucro.
O maior risco desta estratégia é que a configuração inadequada dos parâmetros pode levar a negociações excessivamente frequentes, aumentando as taxas de negociação e a perda de pontos de deslizamento. Se o ENTRY for muito baixo e o EXIT for muito alto, é fácil gerar um falso sinal de negociação.
Além disso, se os parâmetros não forem ajustados adequadamente, também pode causar a incapacidade de capturar a tendência dos preços em tempo hábil, perdendo oportunidades de negociação. Isso requer um grande número de retrocessões para encontrar os parâmetros mais ótimos.
Finalmente, a estratégia é muito sensível ao ruído do mercado de curto prazo, podendo gerar sinais de negociação errados. Isso precisa ser evitado com a configuração apropriada dos parâmetros de ciclo de tempo de negociação.
A estratégia pode ser aperfeiçoada através das seguintes direções:
Aumentar a lógica de stop-loss. Assim, você pode parar a perda quando a perda se expande para uma certa proporção, evitando perdas maiores.
Aumentar a filtragem de indicadores técnicos, como as médias móveis. Utilize indicadores como MA, KDJ para avaliar grandes tendências e evitar que o ruído de curto prazo cause excesso de negociação.
Optimizar a lógica de configuração dos parâmetros. Pode-se definir um mecanismo de mudança adaptativa dos parâmetros ENTRY, EXIT, em vez de uma configuração estática, permitindo que os parâmetros sejam ajustados de acordo com o ambiente de mercado.
Aproveite os melhores parâmetros de treinamento de aprendizagem de máquina. Treine com uma grande quantidade de dados históricos para obter os melhores ajustes de entrada e saída para o ambiente de mercado atual.
A estratégia permite automatizar a negociação através da captura de tendências de preços, com o maior benefício de reduzir a influência da emoção humana na negociação, reduzir o risco e aumentar a eficiência. Ao mesmo tempo, é possível encontrar o melhor ponto de ganho através de ajustes de parâmetros.
Os principais riscos da estratégia são a configuração inadequada dos parâmetros e a sensibilidade excessiva ao ruído do mercado. Isso requer melhorias por meio de paralisia, filtragem de indicadores e otimização de adaptação dos parâmetros.
Em geral, a estratégia é uma estratégia de acompanhamento de tendências simples e eficazes, adequada para a quantificação e negociação automática. A estabilidade da estratégia pode ser aumentada ainda mais com a otimização contínua.
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 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/
// © JstMtlQC
//@version=4
strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
/////////////// INPUT ENTRY EXIT
entry= input(100, "ENTRY H/L")
exit= input(50, "EXIT H/L")
/////////////// Backtest Input
FromYear = input(2015, "Backtest Start Year")
FromMonth = input(1, "Backtest Start Month")
FromDay = input(1, "Backtest Start Day")
ToYear = input(2999, "Backtest End Year")
ToMonth = input(1, "Backtest End Month")
ToDay = input(1, "Backtest End Day")
/////////////// Backtest Setting
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
/////////////// BUY OPEN PLOT
highestpricelong = highest(high,entry)[1]
plot(highestpricelong, color=color.green, linewidth=2)
/////////////// BUY CLOSE PLOT
lowestpricelong = lowest(high,exit)[1]
plot(lowestpricelong, color=color.green, linewidth=2)
/////////////// SHORT OPEN PLOT
lowestpriceshort = lowest(low,entry)[1]
plot(lowestpriceshort, color=color.red, linewidth=2)
/////////////// SHORT CLOSE PLOT
highestpriceshort = highest(low,exit)[1]
plot(highestpriceshort, color=color.red, linewidth=2)
///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// CONDITION LONG SHORT //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
/////////////// SHORT
entryshort= crossunder(close, lowestpriceshort)
exitshort= crossover(close,highestpriceshort)
/////////////// LONG
exitlong= crossover(close, lowestpricelong)
entrylong= crossover(close,highestpricelong)
///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// LONG and SHORT ORDER //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
/////////////// LONG
if (entrylong)
strategy.entry("LongEntry", strategy.long, when = window())
if (exitlong or entryshort)
strategy.close("LongEntry", when=window())
/////////////// SHORT
if (entryshort)
strategy.entry("short", strategy.short, when = window())
if (exitshort or entrylong)
strategy.close("short", when=window())