Strategi kombinasi pembalikan faktor ganda dan peningkatan tren volume harga


Tanggal Pembuatan: 2024-01-25 14:46:36 Akhirnya memodifikasi: 2024-01-25 14:46:36
menyalin: 1 Jumlah klik: 612
1
fokus pada
1617
Pengikut

Strategi kombinasi pembalikan faktor ganda dan peningkatan tren volume harga

Ringkasan

Strategi ini menggabungkan dua substrategi, yaitu double factor reversal dan modified price volume trend, untuk mendapatkan sinyal perdagangan komprehensif. Strategi double factor reversal ini didasarkan pada ide P183 dalam buku Ulf Jensen, yang menghasilkan sinyal ketika harga saham ditutup dalam dua hari dan kondisi indikator acak terbentuk. Strategi modified price volume trend didasarkan pada penilaian gabungan dari harga dan volume transaksi, menilai keselarasan pasar dan waktu tren.

Prinsip Strategi

Strategi reversal dua faktor menggunakan prinsip reversal harga penutupan dua hari dengan penilaian polygonal dari indikator acak. Jika hari sebelumnya harga penutupan lebih tinggi dan hari ini harga penutupan berbalik turun, dan indikator acak cepat lebih rendah dari indikator acak lambat dan indikator acak cepat lebih tinggi dari 50, sinyal kepala kosong akan dihasilkan. Jika hari sebelumnya penutupan lebih rendah dan hari ini harga penutupan berbalik naik, dan indikator acak cepat lebih tinggi dari indikator acak lambat dan acak cepat lebih rendah dari 50, sinyal kepala banyak akan dihasilkan.

PxVFactor = PriceFactor + Scale * CumPVT, di mana PriceFactor adalah faktor harga, CumPVT adalah indikator energi akumulasi. Kemudian menghitung Longth Day Simple Moving Average dari PxVFactor, dibandingkan dengan nilai PxVFactor saat ini, untuk menilai tren dan kekuatan pasar.

Kombinasi strategi secara komprehensif mempertimbangkan sinyal dari dua substrategi, dan bila reversal faktor ganda dan tren volume harga yang dimodifikasi sama-sama bullish atau bearish, maka akan menghasilkan sinyal bullish yang sesuai.

Analisis Keunggulan

  • Strategi reversal dua faktor yang menggabungkan reversal harga dengan penilaian acak indikator dapat secara efektif mengidentifikasi ekstremum jangka pendek dan menangkap peluang reversal.
  • Strategi untuk memperbaiki tren volume harga dengan menambahkan faktor volume transaksi, yang dapat menentukan kapan momentum pasar akan diatasi.
  • Kedua strategi saling memverifikasi, meningkatkan stabilitas dan menghindari sinyal yang salah.
  • Menggunakan parameter jangka pendek menengah seperti 9 hari atau 14 hari, cocok untuk operasi dalam sehari dan garis pendek.

Risiko dan optimasi

  • Strategi reversal memiliki risiko yang tertutup, yang memerlukan pengaturan stop loss untuk mengendalikan risiko tersebut.
  • Strategi harga kuantitatif ada kemungkinan peningkatan penarikan balik, jika penilaian arah pasar yang salah, kerugian meningkat.
  • Untuk menguji apakah dua faktor PriceFactor dan CumPVT memiliki bobot optimal, optimasi lebih lanjut dapat dilakukan.
  • Anda dapat menguji rasio pengembalian keuntungan dengan parameter harian yang berbeda, dan memilih parameter yang optimal.

Meringkaskan

Secara keseluruhan, strategi kombinasi double-factor reversal and modification of price volume trend, yang digabungkan dengan analisis dua dimensi reversal dan trend, dapat saling memverifikasi sinyal dan meningkatkan stabilitas. Menambahkan indikator tren sebagai penilaian tambahan dalam strategi reversal yang mudah ditiru adalah perlu.

Kode Sumber Strategi
/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/02/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
//  The related article is copyrighted material from
//  Stocks & Commodities.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


MPVT(Level,Scale,Length) =>
    pos = 0.0
    xCumPVT = 0.0
    xOHLC4 = ohlc4
    xV = volume
    rV = xV / 50000
    xCumPVT := nz(xCumPVT[1]) + (rV * (xOHLC4 - xOHLC4[1]) / xOHLC4[1])
    nRes = Level + Scale * xCumPVT
    xMARes = sma(nRes, Length)
    pos:= iff(nRes > xMARes, 1,
           iff(nRes < xMARes, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Modified Price-Volume Trend", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Price-Volume Trend ----")
LevelPVT = input(1)
Scale = input(1)
LengthPVT = input(23)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMPVT = MPVT(LevelPVT,Scale,LengthPVT)
pos = iff(posReversal123 == 1 and posMPVT == 1 , 1,
	   iff(posReversal123 == -1 and posMPVT == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )