Strategi ini adalah sistem perdagangan trend-tracking berdasarkan penyambungan indikator trend harga-volume ((PVT) dengan purata bergerak indeksnya ((EMA)). Strategi ini mengenal pasti perubahan trend pasaran dengan memantau penyambungan indikator PVT dengan EMA-nya, untuk menangkap peluang perdagangan yang berpotensi. Kaedah ini menggabungkan perubahan harga dan perubahan volume, yang dapat mencerminkan pergerakan sebenar pasaran dengan lebih tepat.
Inti strategi ini adalah dengan menggunakan indikator PVT, yang mengesan trend pasaran dengan menggabungkan perubahan harga dengan jumlah dagangan. Secara khusus, peratusan perubahan harga pada hari itu dengan penggandaan jumlah dagangan pada hari itu menambah nilai PVT. Kemudian menghitung 20 kitaran EMA PVT sebagai garis rujukan. Apabila PVT melintasi EMA ke atas, ia menghasilkan isyarat plura; apabila PVT melintasi EMA ke bawah, ia menghasilkan isyarat kosong. Isyarat silang ini digunakan untuk menentukan titik perubahan trend pasaran.
Strategi persilangan trend PVT-EMA adalah sistem perdagangan lengkap yang menggabungkan analisis harga, jumlah transaksi dan trend. Walaupun terdapat risiko ketinggalan dan isyarat palsu, dengan pengoptimuman dan pengurusan risiko yang betul, strategi ini boleh menjadi alat perdagangan yang boleh dipercayai.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PakunFX
//@version=5
strategy(title="PVT Crossover Strategy", shorttitle="PVT Strategy", overlay=false, calc_on_every_tick=true)
// PVTの計算
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
runtime.error("No volume is provided by the data vendor.")
src = close
pvt = ta.cum(ta.change(src) / src[1] * volume)
// EMAの計算(PVTをソースに使用)
emaLength = input.int(20, minval=1, title="EMA Length")
emaPVT = ta.ema(pvt, emaLength)
// プロットをオフにする
plot(emaPVT, title="EMA of PVT", color=#f37f20, display=display.none)
// クロスオーバー戦略
longCondition = ta.crossover(pvt, emaPVT)
shortCondition = ta.crossunder(pvt, emaPVT)
// シグナル表示もオフにする
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", display=display.none)
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", display=display.none)
// 戦略エントリー
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)