Strategi kombinasi pembalikan faktor ganda dan peningkatan tren volume harga

Penulis:ChaoZhang, Tanggal: 2024-01-25 14:46:36
Tag:

img

Gambaran umum

Strategi ini menggabungkan pembalikan faktor ganda dan sub-strategi tren volume harga yang ditingkatkan untuk menghasilkan sinyal perdagangan kumulatif. Strategi pembalikan faktor ganda didasarkan pada ide Ulf Jensen di Halaman 183 bukunya, menghasilkan sinyal ketika harga saham berbalik selama dua hari dan kondisi indikator stokastik terpenuhi.

Prinsip Strategi

Strategi tren volume harga yang ditingkatkan didasarkan pada penelitian bersama harga dan volume perdagangan. Rumus perhitungan adalah: PxVFactor = PriceFactor + Scale * CumPVT, di mana PriceFactor adalah faktor harga, dan CumPVT adalah indikator daya akumulasi. Kemudian hitung panjang hari rata-rata bergerak sederhana dari PxVFactor dan bandingkan dengan nilai PxVFactor saat ini untuk menentukan tren dan momentum pasar.

Strategi combo secara komprehensif mempertimbangkan sinyal dari dua sub-strategi. Ketika pembalikan faktor ganda dan peningkatan tren volume harga naik atau menurun, sinyal panjang dan pendek yang sesuai dihasilkan.

Analisis Keuntungan

  • Strategi pembalikan faktor ganda menggabungkan pembalikan harga dan penilaian indikator stokastik, yang dapat secara efektif mengidentifikasi ekstremitas jangka pendek dan menangkap peluang pembalikan.
  • Strategi tren volume harga yang ditingkatkan menggabungkan faktor volume perdagangan untuk menilai momentum dan konsolidasi pasar.
  • Kedua strategi saling memverifikasi untuk meningkatkan stabilitas dan menghindari sinyal yang salah.
  • Menggunakan parameter jangka menengah 9 atau 14 hari cocok untuk operasi intraday dan jangka pendek.

Risiko dan Optimasi

  • Strategi harga volume dapat meningkatkan penarikan jika arah pasar dinilai tidak benar.
  • Hal ini dapat diuji apakah bobot faktor PriceFactor dan CumPVT adalah optimal untuk optimasi lebih lanjut.
  • Parameter dari hari yang berbeda dapat diuji untuk rasio return to drawdown terbaik.

Kesimpulan

Sebagai kesimpulan, strategi kombinasi pembalikan faktor ganda dan peningkatan tren volume harga menggabungkan penilaian pembalikan dan tren dalam dua dimensi. Keduanya dapat memverifikasi sinyal satu sama lain untuk meningkatkan stabilitas. Menambahkan indikator tren sebagai penilaian tambahan diperlukan dalam strategi pembalikan di mana mudah terjebak. Dan menggabungkan faktor volume perdagangan juga penting untuk menentukan pembalikan dan momentum pasar. Strategi ini menggunakan parameter jangka menengah yang cocok untuk operasi intraday dan jangka pendek, dengan nilai praktis tertentu.


/*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 )

Lebih banyak