Strategi ini adalah sistem trend berikut berdasarkan penembusan harga sejarah dan penapis purata bergerak. Ia menggabungkan isyarat penembusan harga pelbagai tempoh dengan purata bergerak untuk mengenal pasti trend pasaran, menggunakan peraturan kemasukan dan keluar yang ketat untuk menangkap pergerakan pasaran jangka menengah hingga panjang. Strategi ini menggunakan penembusan harga 55 hari untuk isyarat panjang, penembusan harga 20 hari untuk keluar, dan menggabungkan purata bergerak 200 hari sebagai penapis trend untuk mengurangkan risiko penembusan palsu dengan berkesan.
Logik teras dibina pada harga pecah dan trend berikut.
Ini adalah sistem strategik yang menggabungkan peraturan perdagangan penyu klasik dengan alat analisis teknikal moden. Ia menangkap trend melalui penembusan harga, mengesahkan arah menggunakan purata bergerak, dan mengawal risiko dengan pengurusan kedudukan yang munasabah. Logik strategi jelas, praktikal, dan mempunyai skalabiliti yang baik. Walaupun ia mungkin kurang berprestasi di pasaran yang bergolak, melalui pengoptimuman parameter yang betul dan kawalan risiko, ia masih dapat mencapai pulangan yang stabil di pasaran yang sedang berkembang.
/*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="")