
A estratégia de acompanhamento de tendências de linha reta é uma estratégia de acompanhamento de tendências baseada em um gráfico de nuvem de indicadores de popularidade. A estratégia usa a linha de giro de um gráfico de nuvem para enviar sinais de compra e venda com antecedência, permitindo a captura antecipada da tendência.
A estratégia baseia-se principalmente nos seguintes pontos:
Construir um mapa de nuvens usando a linha de conversão e a linha de referência e mapeá-la em 26 ciclos de deslocamento.
Quando o preço de fechamento quebra a trajetória do gráfico da nuvem, um sinal de compra é emitido; Quando o preço de fechamento cai abaixo da trajetória do gráfico da nuvem, um sinal de venda é emitido.
Para filtrar brechas falsas, é necessário que o preço de fechamento atual quebre simultaneamente os valores máximos e mínimos da linha de conversão e da linha de referência.
A linha de stop loss é definida como 5% do preço de entrada e pode ser desligada.
Com este tipo de filtragem múltipla, pode-se identificar de forma eficiente os pontos de mudança de tendência e capturar novas oportunidades de negociação em tempo hábil. Ao mesmo tempo, um rigoroso filtro de ruptura também pode reduzir a emissão de falsos sinais.
A estratégia tem as seguintes vantagens:
A estratégia também apresenta os seguintes riscos:
O risco pode ser reduzido através das seguintes medidas:
A estratégia também pode ser melhorada nos seguintes aspectos:
Adicionar mecanismos de gerenciamento de posições através de operadores como:strategy.position_sizeControlar a taxa de construção de armazéns.
Aumentar a filtragem de variedadessecurity()Filtragem de variedades, identificação automática de tendências.
Aumentar a estratégia de parada de perda, configurando uma parada móvel ou parcial para controlar ainda mais o risco.
Combinação com outros indicadores, como linhas de Brin, RSI, etc., para construir um sistema de negociação de indicadores múltiplos e melhorar a qualidade do sinal.
Aplicar métodos de aprendizagem de máquina para determinar a confiabilidade dos sinais de compra e venda através de treinamento e ajustar dinamicamente o número de pedidos.
A estratégia de acompanhamento de tendências de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha de linha
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 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/
// © QuantCT
//@version=4
strategy("Ichimoku Cloud Strategy Idea",
shorttitle="Ichimoku",
overlay=true,
pyramiding=0,
default_qty_type=strategy.percent_of_equity,
default_qty_value=99,
initial_capital=1000,
commission_type=strategy.commission.percent,
commission_value=0.1)
// ____ Inputs
conversion_period = input(9, minval=1, title="Conversion Line Period")
base_period = input(26, minval=1, title="Base Line Period")
lagging_span2_period = input(52, minval=1, title="Lagging Span 2 Period")
displacement = input(26, minval=1, title="Displacement")
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)
// ____ Logic
donchian(len) => avg(lowest(len), highest(len))
conversion_line = donchian(conversion_period)
base_line = donchian(base_period)
lead_line1 = avg(conversion_line, base_line)
lead_line2 = donchian(lagging_span2_period)
chikou = close
chikou_free_long = close > high[displacement] and close > max(lead_line1[2 * displacement], lead_line2[2 * displacement])
enter_long = chikou_free_long and close > max(lead_line1[displacement], lead_line2[displacement])
exit_long = close < lead_line1[displacement] or close < lead_line2[displacement]
chikou_free_short = close < low[displacement] and close < min(lead_line1[2 * displacement], lead_line2[2 * displacement])
enter_short = chikou_free_short and close < min(lead_line1[displacement], lead_line2[displacement])
exit_short = close > lead_line1[displacement] or close > lead_line2[displacement]
strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long)
if (not long_only)
strategy.entry("Short", strategy.short, when=enter_short)
strategy.close("Short", when=exit_short)
// ____ SL
sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
strategy.exit(id="SL", from_entry="Long", stop=sl_long)
strategy.exit(id="SL", from_entry="Short", stop=sl_short)
// ____ Plots
colors =
enter_long ? #27D600 :
enter_short ? #E30202 :
color.orange
p1 = plot(lead_line1, offset = displacement, color=colors,
title="Lead 1")
p2 = plot(lead_line2, offset = displacement, color=colors,
title="Lead 2")
fill(p1, p2, color = colors)
plot(chikou, offset = -displacement, color=color.blue)