Strategi ini adalah sistem perdagangan cerdas yang didasarkan pada sinyal crossover rata-rata bergerak, dikombinasikan dengan mekanisme manajemen laba/rugi yang dinamis.
Strategi ini beroperasi berdasarkan mekanisme inti berikut: 1. Generasi Sinyal: Sinyal perdagangan dihasilkan dengan mengamati persilangan antara rata-rata bergerak jangka pendek (7 hari) dan jangka panjang (40 hari). Sinyal beli dihasilkan ketika MA jangka pendek melintasi di atas MA jangka panjang, dan sinyal jual ketika melintasi di bawah. Manajemen Posisi: Sistem ini menggunakan mekanisme posisi tunggal, mencegah beberapa entri sementara posisi terbuka untuk memastikan pemanfaatan modal yang efektif. 3. Pengendalian Risiko: Mengintegrasikan sistem stop-loss / take-profit dinamis berdasarkan harga masuk. Stop-loss ditetapkan pada 1% di bawah harga masuk, dan take-profit pada 2% di atas, memungkinkan manajemen risiko yang dikuantifikasi untuk setiap perdagangan.
Strategi ini menangkap tren pasar melalui crossover rata-rata bergerak sambil menerapkan manajemen risiko melalui kontrol laba / kerugian dinamis, menunjukkan kepraktisan yang kuat. Meskipun ada risiko lag yang melekat, arah optimasi yang disarankan dapat lebih meningkatkan stabilitas dan profitabilitas strategi. Konfigurasi tinggi strategi membuatnya cocok untuk penyempurnaan dan kustomisasi lebih lanjut.
/*backtest start: 2024-12-10 00:00:00 end: 2025-01-08 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Cruzamento de Médias Móveis (Configuração Interativa)", overlay=true) // Permite que o usuário defina os períodos das médias móveis na interface periodo_ma7 = input.int(7, title="Período da Média Móvel 7", minval=1) periodo_ma40 = input.int(40, title="Período da Média Móvel 40", minval=1) // Definindo as médias móveis com os períodos configuráveis ma7 = ta.sma(close, periodo_ma7) ma40 = ta.sma(close, periodo_ma40) // Parâmetros de stop loss e take profit stop_loss_pct = input.float(1, title="Stop Loss (%)", minval=0.1) / 100 take_profit_pct = input.float(2, title="Take Profit (%)", minval=0.1) / 100 // Condições para compra e venda compra = ta.crossover(ma7, ma40) venda = ta.crossunder(ma7, ma40) // Impede novas entradas enquanto já houver uma posição aberta if (compra and strategy.position_size == 0) strategy.entry("Compra", strategy.long) // Cálculo do preço de stop loss e take profit stop_loss_price = strategy.position_avg_price * (1 - stop_loss_pct) take_profit_price = strategy.position_avg_price * (1 + take_profit_pct) // Estratégia de saída com stop loss e take profit strategy.exit("Saída", from_entry="Compra", stop=stop_loss_price, limit=take_profit_price) // Sinal de venda (fechamento da posição) if (venda) strategy.close("Compra") // Plotando as médias móveis no gráfico plot(ma7, color=color.blue, title="Média Móvel 7") plot(ma40, color=color.red, title="Média Móvel 40") // Plotando o Stop Loss e Take Profit no gráfico plot(stop_loss_price, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss") plot(take_profit_price, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit")