
Strategi ini adalah sistem perdagangan trend-tracking yang komprehensif, menggabungkan pelbagai petunjuk teknikal untuk mengesahkan trend pasaran dan isyarat perdagangan. Strategi ini menggunakan EMA crossover sebagai alat pengenalan trend utama, sambil mengintegrasikan RSI, ADX dan penunjuk volum untuk menapis isyarat perdagangan, dan menggunakan stop loss dan stop loss yang dinamik untuk menguruskan risiko.
Logik utama strategi ini adalah berdasarkan kepada beberapa elemen utama:
Syarat pembelian perlu dipenuhi pada masa yang sama: EMA9 memakai EMA21, RSI lebih besar daripada 50, jumlah transaksi lebih besar daripada nilai purata, ADX lebih besar daripada 25 Syarat jual memenuhi salah satu: EMA9 di bawah EMA21, RSI kurang daripada 50, jumlah urus niaga kurang daripada purata ((dan ADX lebih besar daripada 25)
Ini adalah strategi pengesanan trend yang dirancang dengan baik untuk meningkatkan kebolehpercayaan perdagangan melalui penggunaan gabungan pelbagai petunjuk teknikal. Kelebihan strategi adalah mekanisme pengesahan isyarat dan sistem pengurusan risiko yang komprehensif, tetapi juga perlu berhati-hati untuk mengoptimumkan parameter yang sesuai mengikut keadaan pasaran dalam penggunaan sebenar.
/*backtest
start: 2025-01-10 00:00:00
end: 2025-02-09 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estrategia Avançada - EMA, RSI, ADX e Volume", overlay=true)
// Parâmetros das EMAs
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
// RSI
rsi14 = ta.rsi(close, 14)
// Cálculo do ADX usando ta.dmi
[plusDI, minusDI, adx] = ta.dmi(14, 14)
// Volume com média
volume_ma = ta.sma(volume, 20)
// Critérios de Compra (Bullish)
buy_signal = ta.crossover(ema9, ema21) and rsi14 > 50 and volume > volume_ma and adx > 25
// Critérios de Venda (Bearish)
sell_signal = ta.crossunder(ema9, ema21) or rsi14 < 50 or volume < volume_ma and adx > 25
// Plotando indicadores no gráfico
plot(ema9, color=color.blue, linewidth=2, title="EMA 9")
plot(ema21, color=color.red, linewidth=2, title="EMA 21")
hline(50, "RSI 50", color=color.gray)
// Stop Loss e Take Profit dinâmicos
long_sl = strategy.position_avg_price * 0.97 // Stop Loss de 3%
long_tp = strategy.position_avg_price * 1.05 // Take Profit de 5%
short_sl = strategy.position_avg_price * 1.03 // Stop Loss de 3% para vendas
short_tp = strategy.position_avg_price * 0.95 // Take Profit de 5% para vendas
// Executando compra
if buy_signal
strategy.close("Venda") // Fecha posição de venda se existir
strategy.entry("Compra", strategy.long)
strategy.exit("TakeProfit", from_entry="Compra", limit=long_tp, stop=long_sl)
// Executando venda
if sell_signal
strategy.close("Compra") // Fecha posição de compra se existir
strategy.entry("Venda", strategy.short)
strategy.exit("TakeProfit", from_entry="Venda", limit=short_tp, stop=short_sl)
// Alertas configurados
alertcondition(buy_signal, title="Sinal de Compra", message="Hora de comprar!")
alertcondition(sell_signal, title="Sinal de Venda", message="Hora de vender!")