
A estratégia é um sistema de acompanhamento de tendências baseado em breakouts de preços históricos e filtragem de linhas uniformes. Combina sinais de breakouts de preços de vários períodos e médias móveis para identificar tendências de mercado e capturar movimentos de mercado a médio e longo prazo por meio de regras rigorosas de entrada e saída. A estratégia usa breakouts de preços de 55 dias como sinal de fazer mais, breakouts de preços de 20 dias como sinal de posição de equilíbrio, enquanto a linha de média de 200 dias é introduzida como filtro de tendência, reduzindo efetivamente o risco de breakouts falsos.
A lógica central da estratégia baseia-se em rupturas de preços e acompanhamento de tendências.
Este é um sistema de estratégia que combina a lei clássica de negociação do mar e as ferramentas de análise tecnológica moderna. Capturar a tendência através da ruptura do preço, usar o filtro de linha uniforme para confirmar a direção, juntamente com o racional gerenciamento de posição para controlar o risco. A lógica da estratégia é clara, prática e com boa escalabilidade.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Turtle Traders - Andrei", overlay=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// ====== Inputs ======
// Período para a máxima das compras
lookback_buy = input.int(title="Período para Máxima de Compra", defval=55, minval=1)
// Período para a mínima das vendas
lookback_sell = input.int(title="Período para Mínima de Venda", defval=20, minval=1)
// Período da Média Móvel
ma_length = input.int(title="Período da Média Móvel", defval=200, minval=1)
// Tipo de Média Móvel
ma_type = input.string(title="Tipo de Média Móvel", defval="SMA", options=["SMA", "EMA", "WMA", "VWMA"])
// ====== Cálculos ======
// Cálculo da Média Móvel baseada no tipo selecionado
ma = switch ma_type
"SMA" => ta.sma(close, ma_length)
"EMA" => ta.ema(close, ma_length)
"WMA" => ta.wma(close, ma_length)
"VWMA" => ta.vwma(close, ma_length)
// Cálculo da máxima dos últimos 'lookback_buy' candles
highest_buy = ta.highest(high, lookback_buy)
// Cálculo da mínima dos últimos 'lookback_sell' candles
lowest_sell = ta.lowest(low, lookback_sell)
// ====== Condições de Negociação ======
// Condição de entrada: fechamento acima da máxima dos últimos 'lookback_buy' candles E acima da MA
longCondition = (high == highest_buy) and (close > ma)
if (longCondition)
strategy.entry("Comprar", strategy.long)
// Condição de saída: fechamento abaixo da mínima dos últimos 'lookback_sell' candles
exitCondition = (low == lowest_sell)
if (exitCondition)
strategy.close("Comprar")
// ====== Plotagens ======
// Plotar a máxima de 'lookback_buy' candles
plot(highest_buy, color=color.green, title="Máxima", linewidth=2)
// Plotar a mínima de 'lookback_sell' candles
plot(lowest_sell, color=color.red, title="Mínima", linewidth=2)
// Plotar a Média Móvel
plot(ma, color=color.blue, title="Média Móvel", linewidth=2)
// ====== Sinais Visuais ======
// Sinal de entrada
plotshape(series=longCondition, location=location.belowbar, color=color.green,
style=shape.labelup, title="Sinal de Compra", text="")
// Sinal de saída
plotshape(series=exitCondition, location=location.abovebar, color=color.red,
style=shape.labeldown, title="Sinal de Venda", text="")