
Strategi ini merupakan sistem pelacakan tren yang komprehensif, yang menggabungkan beberapa indikator teknis dan metode analisis dinamika. Inti dari strategi ini adalah penggunaan crossover rata-rata, pengakuan tren dan kombinasi indikator dinamika, untuk mengendalikan risiko melalui tingkat fluktuasi, untuk menangkap tren pasar dan manajemen risiko yang efektif. Strategi ini memiliki adaptasi yang baik dalam lingkungan pasar dengan tren jangka menengah dan panjang yang jelas.
Strategi ini menggunakan mekanisme pengesahan sinyal bertingkat, yang terdiri dari beberapa elemen utama:
Kondisi transaksi untuk penilaian komprehensif sinyal ganda adalah sebagai berikut: Kondisi multi: EMA9 di atas EMA21, MACD lebih besar dari sinyal dan positif, RSI antara 40-70, harga di atas EMA9 Kondisi kosong: EMA9 di bawah EMA21, MACD lebih kecil dari sinyal dan negatif, RSI antara 30-60, harga di bawah EMA9
Strategi ini menggunakan kombinasi dari beberapa indikator teknis untuk membangun sistem perdagangan pelacakan tren yang relatif lengkap. Keunggulan inti dari strategi ini adalah keandalan sinyal dan rasionalitas pengendalian risiko, tetapi ada juga masalah keterbelakangan dan pengoptimalan parameter tertentu. Dengan arah pengoptimalan yang diusulkan, strategi ini diharapkan untuk mencapai kinerja yang lebih baik dalam aplikasi real-time.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estratégia Cripto - 1D", shorttitle="Estratégia Cripto", overlay=true)
// Definição das Médias Móveis Exponenciais (EMA)
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
// Definição do MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Definição do RSI
rsi = ta.rsi(close, 14)
// Volume médio
volMedio = ta.sma(volume, 14)
// Definição das Bollinger Bands
basis = ta.sma(close, 20)
dev = ta.stdev(close, 20)
upperBand = basis + 2 * dev
lowerBand = basis - 2 * dev
// Condições de Compra (Long)
longCondition = (ema9 > ema21) and (macdLine > signalLine) and (macdLine > 0) and (volume > volMedio) and (rsi > 40 and rsi < 70) and (close > ema9)
if (longCondition)
strategy.entry("Compra", strategy.long)
// Condições de Venda (Short)
shortCondition = (ema9 < ema21) and (macdLine < signalLine) and (macdLine < 0) and (volume > volMedio) and (rsi < 60 and rsi > 30) and (close < ema9)
if (shortCondition)
strategy.entry("Venda", strategy.short)
// Stop Loss e Take Profit
strategy.exit("Take Profit/Stop Loss", from_entry="Compra", loss=200, profit=400)
strategy.exit("Take Profit/Stop Loss", from_entry="Venda", loss=200, profit=400)
// Plotagem das Médias Móveis e Bollinger Bands
plot(ema9, color=color.green, title="EMA 9")
plot(ema21, color=color.red, title="EMA 21")
plot(upperBand, color=color.blue, title="Upper Band")
plot(lowerBand, color=color.blue, title="Lower Band")