
Strategi ini ialah sistem mengikut arah aliran yang menggabungkan purata bergerak berbilang tempoh dengan harga purata berwajaran volum (VWAP). Strategi ini mengenal pasti arah aliran melalui persilangan tiga purata bergerak mudah (SMA) 9 tempoh, 50 tempoh dan 200 tempoh, dan menggabungkan VWAP sebagai penunjuk pengesahan kekuatan harga untuk melaksanakan mekanisme pengesahan isyarat dagangan berbilang dimensi. Strategi ini sesuai untuk kedua-dua dagangan intrahari (carta 1 minit) dan dagangan jangka pendek (carta 1 jam).
Logik teras strategi adalah berdasarkan elemen utama berikut:
Syarat kemasukan lama mesti dipenuhi pada masa yang sama:
Syarat kemasukan pendek mesti dipenuhi pada masa yang sama:
Cadangan kawalan risiko:
Ini adalah sistem perdagangan lengkap yang menggabungkan purata bergerak berbilang tempoh dan VWAP, memberikan isyarat dagangan yang lebih dipercayai melalui mekanisme pengesahan berbilang. Kelebihan strategi adalah logik yang jelas, kemudahan pelaksanaan, dan keupayaan kawalan risiko yang baik. Walaupun terdapat risiko histerisis dan sensitiviti parameter tertentu, kestabilan dan kebolehsuaian strategi boleh dipertingkatkan lagi melalui arahan pengoptimuman yang disyorkan. Strategi ini sesuai sebagai rangka kerja asas, dan pedagang boleh memperibadikannya mengikut gaya dagangan dan persekitaran pasaran mereka.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-05 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA Crossover Strategy with VWAP", overlay=true)
// Input lengths for SMAs
sma9Length = 9
sma50Length = 50
sma200Length = 200
// Calculate SMAs
sma9 = ta.sma(close, sma9Length) // 9-period SMA
sma50 = ta.sma(close, sma50Length) // 50-period SMA
sma200 = ta.sma(close, sma200Length) // 200-period SMA
// Calculate VWAP
vwapValue = ta.vwap(close)
// Long entry condition: SMA 9 crosses above SMA 50 and SMA 200 is less than SMA 50, and close is above VWAP
longCondition = ta.crossover(sma9, sma50) and (sma200 < sma50) and (close > vwapValue)
if (longCondition)
strategy.entry("Long", strategy.long)
// Exit condition for long: SMA 9 crosses below SMA 50
longExitCondition = ta.crossunder(sma9, sma50)
if (longExitCondition)
strategy.close("Long")
// Short entry condition: SMA 9 crosses below SMA 50 and SMA 200 is greater than SMA 50, and close is below VWAP
shortCondition = ta.crossunder(sma9, sma50) and (sma200 > sma50) and (close < vwapValue)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit condition for short: SMA 9 crosses above SMA 50
shortExitCondition = ta.crossover(sma9, sma50)
if (shortExitCondition)
strategy.close("Short")
// Plotting the indicators on the chart
plot(sma9, color=color.blue, title="SMA 9")
plot(sma50, color=color.orange, title="SMA 50")
plot(sma200, color=color.red, title="SMA 200")
plot(vwapValue, color=color.green, title="VWAP")