
この戦略は,歴史的価格突破と均線フィルターに基づくトレンド追跡システムである.これは,多周期的な価格突破シグナルと移動平均を組み合わせて,市場トレンドを識別し,厳しい出場ルールを介して中長期の市場動きを捕捉する.この戦略は,55日間の価格突破を多値シグナルとして,20日間の価格突破を平仓シグナルとして採用し,同時に200日間の均線をトレンドフィルターとして導入し,偽の突破によるリスクを効果的に軽減する.
戦略の核心的な論理は,価格の突破とトレンドの追跡に基づいています.
これは,クラシックな海取引の法則を現代的な技術分析ツールと組み合わせた戦略システムである.価格突破によってトレンドを捕捉し,均線フィルターを使用して方向を確認し,合理的なポジション管理と組み合わせてリスクを制御する.戦略の論理は明確で,実用性が強く,良好な拡張性がある.震動市場では不良なパフォーマンスを発揮するかもしれないが,合理的なパラメータ最適化とリスク管理により,トレンド市場では安定した収益を得ることができる.
/*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="")