
Strategi ini adalah sistem pengesanan trend berdasarkan penembusan harga bersejarah dan penyaringan rata-rata. Ia menggabungkan isyarat penembusan harga berkala dan purata bergerak untuk mengenal pasti trend pasaran dan menangkap pergerakan pasaran jangka panjang dan menengah melalui peraturan masuk yang ketat. Strategi ini menggunakan penembusan harga 55 hari sebagai isyarat plus, penembusan harga 20 hari sebagai isyarat kedudukan rata, sambil memperkenalkan garis rata-rata 200 hari sebagai penapis trend, yang berkesan mengurangkan risiko yang dibawa oleh penembusan palsu.
Logik utama strategi ini adalah berdasarkan kepada penembusan harga dan trend pelacakan.
Ini adalah sistem strategi yang menggabungkan undang-undang perdagangan pantai klasik dengan alat analisis teknikal moden. Dengan harga yang menembusi trend menangkap, menggunakan penapis garis rata untuk memastikan arah, dengan pengurusan kedudukan yang munasabah untuk mengawal risiko.
/*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="")