
Strategi ini menggunakan VWAP (Value-Wage Average Price) pada garis harian sebagai isyarat untuk masuk dan keluar. Apabila harga tutup melalui VWAP, ia akan mencetuskan lebih banyak, dan stop loss akan diletakkan di bawah garis K terendah di bawah VWAP, dan harga sasaran akan diletakkan 3 titik di atas harga bukaan. Apabila harga tutup melalui VWAP, ia akan mencetuskan kosong, dan stop loss akan diletakkan di atas garis K teratas di atas VWAP, dan harga sasaran akan diletakkan 3 titik di bawah harga bukaan.
Mengetahui trend melalui data VWAP sepanjang tempoh, dan menggunakan stop loss dinamik dan stop loss titik tetap, anda dapat memahami trend, mengawal risiko penarikan balik, dan mengunci keuntungan tepat pada masanya.
Strategi ini menggunakan data VWAP untuk membuat penilaian dan isyarat trend sepanjang tempoh, sambil mengawal risiko dan mengunci keuntungan dengan cara menghentikan kehilangan dan berhenti berhenti, merupakan strategi perdagangan kuantitatif yang mudah dan berkesan. Pengoptimuman strategi dengan penapisan trend, berhenti bergerak, pengurusan kedudukan dan pilihan masa perdagangan dapat meningkatkan lagi kestabilan dan potensi keuntungan. Tetapi dalam aplikasi praktikal, masih perlu memperhatikan ciri-ciri pasaran, kos perdagangan dan faktor pengoptimuman parameter untuk mencapai prestasi strategi yang lebih baik.
/*backtest
start: 2024-03-06 00:00:00
end: 2024-03-07 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=1000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)
// fastEMA = ta.ema(close, 24)
// slowEMA = ta.ema(close, 200)
// Higher Time Frame
float sl = na
float tgt = na
posSize = 1
vwap_1d = request.security(syminfo.tickerid, "1D", ta.vwap(close))
// plot(vwap_1d)
// To avoid differences on historical and realtime bars, you can use this technique, which only returns a value from the higher timeframe on the bar after it completes:
// indexHighTF = barstate.isrealtime ? 1 : 0
// indexCurrTF = barstate.isrealtime ? 0 : 1
// nonRepaintingVWAP = request.security(syminfo.tickerid, "1D", close[indexHighTF])[indexCurrTF]
// plot(nonRepaintingVWAP, "Non-repainting VWAP")
enterLong = ta.crossover(close, vwap_1d)
exitLong = ta.crossunder(close, vwap_1d)
enterShort = ta.crossunder(close, vwap_1d)
exitShort = ta.crossover(close, vwap_1d)
if enterLong
sl := low[1]>vwap_1d ?low[1]:vwap_1d
tgt:=close+3
strategy.entry("EL", strategy.long, qty=posSize)
strategy.exit('exitEL', 'EL', stop=sl, limit=tgt)
if enterShort
sl := high[1]<vwap_1d ?high[1]:vwap_1d
tgt := close-3
strategy.entry("ES", strategy.short, qty=posSize)
strategy.exit('exitES', 'ES', stop=sl, limit=tgt)
// if exitLong
// strategy.close("EL")
// if exitShort
// strategy.close("ES")
// goLongCondition1 = ta.crossover(close, vwap_1d)
// timePeriod = time >= timestamp(syminfo.timezone, 2021, 01, 01, 0, 0)
// notInTrade = strategy.position_size <= 0
// if goLongCondition1 and timePeriod and notInTrade
// stopLoss = low[1]
// takeProfit = close+3
// strategy.entry('long', strategy.long)
// strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)
plot(close, color=color.new(#00c510, 0))
plot(vwap_1d, color=color.new(#f05619, 0))
plot(sl, color=color.new(#fbff00, 0))
plot(tgt, color=color.new(#00e1ff, 0))