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.
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.
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 )