
Стратегия является системой для отслеживания трендов, основанной на перекрестке индикатора ценообразования (PVT) с его индексом движущегося среднего значения (EMA). Стратегия определяет изменения в рыночных тенденциях, отслеживая перекрестку индикатора PVT с его EMA, чтобы поймать потенциальные торговые возможности. Этот метод, объединяющий изменения в цене и объеме сделок, позволяет более точно отражать реальные тенденции рынка.
В основе стратегии лежит использование показателя PVT, который отслеживает рыночные тенденции, объединяя изменения цены с объемом сделок. В частности, процент изменения цены за день, умноженный на объем сделок за день, добавляет значение PVT. Затем рассчитывается 20-циклическая ЭМА PVT в качестве справочной линии.
Стратегия PVT-EMA Trend Crossing является полной торговой системой, объединяющей анализ цены, оборота и тенденций. Хотя существует определенный риск задержки и ложных сигналов, при надлежащей оптимизации и управлении рисками эта стратегия может стать надежным торговым инструментом.
/*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)