
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng dựa trên sự giao thoa của chỉ số xu hướng PVT với chỉ số di chuyển trung bình của nó (EMA). Chiến lược này xác định sự thay đổi trong xu hướng thị trường bằng cách theo dõi sự giao thoa của chỉ số PVT với EMA của nó, do đó nắm bắt cơ hội giao dịch tiềm năng. Phương pháp này kết hợp sự thay đổi của giá cả và sự thay đổi của khối lượng giao dịch, có thể phản ánh chính xác hơn về xu hướng thực sự của thị trường.
Cốt lõi của chiến lược này là sử dụng chỉ số PVT để theo dõi xu hướng thị trường bằng cách kết hợp biến động giá với khối lượng giao dịch. Cụ thể, phần trăm biến động giá trong ngày nhân với khối lượng giao dịch trong ngày được cộng với giá trị PVT. Sau đó tính toán 20 chu kỳ EMA của PVT làm đường viền.
Chiến lược giao chéo xu hướng PVT-EMA là một hệ thống giao dịch hoàn chỉnh kết hợp giá, khối lượng giao dịch và phân tích xu hướng. Mặc dù có một số rủi ro về sự chậm trễ và tín hiệu giả, nhưng với việc tối ưu hóa và quản lý rủi ro thích hợp, chiến lược này có thể trở thành một công cụ giao dịch đáng tin cậy.
/*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)