
Strategi ini ialah sistem perdagangan pintar berdasarkan pelbagai penunjuk teknikal, menggabungkan isyarat pasaran daripada tiga dimensi: purata bergerak (MA), volum (Volume) dan analisis turun naik (ATR) komprehensif untuk menangkap peluang pasaran. Strategi ini menggunakan sistem purata bergerak berganda sebagai asas utama untuk menilai arah aliran, dan memperkenalkan volum dagangan dan turun naik sebagai syarat penapis dagangan, sekali gus mencapai pelbagai pengesahan isyarat dagangan.
Logik teras strategi adalah berdasarkan tiga dimensi berikut:
Strategi hanya akan mengeluarkan isyarat dagangan apabila syarat tiga dimensi ini dipenuhi pada masa yang sama. Mekanisme penapisan berbilang ini meningkatkan ketepatan transaksi dengan berkesan.
Strategi ini membina sistem membuat keputusan perdagangan yang lengkap melalui analisis kolaboratif berbilang penunjuk teknikal. Reka bentuk strategi mempertimbangkan sepenuhnya ciri pasaran seperti arah aliran, kecairan dan turun naik, serta sangat praktikal dan boleh dipercayai. Melalui pengoptimuman dan penambahbaikan berterusan, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam pelbagai persekitaran pasaran. Reka bentuk modular strategi juga menyediakan asas yang baik untuk pengembangan seterusnya, dan boleh diselaraskan dan dioptimumkan secara fleksibel mengikut keperluan sebenar.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Advanced Trading Strategy", overlay=true)
// Parâmetros de entrada
shortPeriod = input.int(9, title="Short Period", minval=1)
longPeriod = input.int(21, title="Long Period", minval=1)
volumeThreshold = input.float(1.5, title="Volume Threshold Multiplier", minval=0.1)
volatilityPeriod = input.int(14, title="Volatility Period", minval=1)
// Cálculo das médias móveis
shortSMA = ta.sma(close, shortPeriod)
longSMA = ta.sma(close, longPeriod)
// Cálculo do volume médio
averageVolume = ta.sma(volume, longPeriod)
// Cálculo da volatilidade (ATR - Average True Range)
volatility = ta.atr(volatilityPeriod)
// Condições de compra e venda baseadas em médias móveis
maBuyCondition = ta.crossover(shortSMA, longSMA)
maSellCondition = ta.crossunder(shortSMA, longSMA)
// Verificação do volume
volumeCondition = volume > averageVolume * volumeThreshold
// Condição de volatilidade (volatilidade acima de um certo nível)
volatilityCondition = volatility > ta.sma(volatility, volatilityPeriod)
// Condições finais de compra e venda
buyCondition = maBuyCondition and volumeCondition and volatilityCondition
sellCondition = maSellCondition and volumeCondition and volatilityCondition
// Plotando as médias móveis
plot(shortSMA, title="Short SMA", color=color.red)
plot(longSMA, title="Long SMA", color=color.blue)
// Sinal de compra
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Sinal de venda
if (sellCondition)
strategy.close("Buy")
// Plotando sinais no gráfico
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Configurando alertas
alertcondition(buyCondition, title="Buy Alert", message="Buy Signal Triggered")
alertcondition(sellCondition, title="Sell Alert", message="Sell Signal Triggered")