
Strategi ini merupakan kombinasi dari strategi perdagangan reverse EMA weighted yang dioptimalkan secara ganda. Strategi ini menggabungkan dua jenis strategi yang berbeda, yaitu strategi reverse dan strategi EMA weighted, untuk menghasilkan sinyal perdagangan yang lebih andal dengan menilai apakah sinyal dari kedua strategi tersebut konsisten.
Bagian berbalik menggunakan 123 strategi berbalik. Strategi ini menilai hubungan harga penutupan dua hari sebelumnya, dengan kombinasi indikator acak untuk menghasilkan sinyal. Aturan spesifiknya adalah:
EMA menggunakan indeks moving average dan volume transaksi.
xMAVolPrice = ema(volume * close, Length)
xMAVol = ema(volume, Length)
nRes = xMAVolPrice / xMAVol
Aturan perdagangan spesifik adalah: melakukan over/under ketika nRes berada di bawah/di atas harga penutupan kemarin.
Akhirnya, strategi ini menilai apakah sinyal dari dua bagian tersebut konsisten, dan konsistensi menghasilkan sinyal perdagangan yang sebenarnya.
Strategi ini menggabungkan dua jenis strategi yang berbeda, yang dapat saling diverifikasi, meningkatkan keandalan sinyal, dan mengurangi sinyal palsu. Pada saat yang sama, bagian reversal dapat menangkap titik balik, dan bagian EMA berat dapat melacak tren, keduanya dapat mencapai keuntungan yang saling melengkapi.
Strategi ini memiliki keterlambatan waktu tertentu, mudah untuk melewatkan peluang perdagangan di garis pendek. Dan EMA bertimbang pada pasar yang bergejolak harga tidak efektif. Selain itu, keandalan sinyal reversal juga perlu diperiksa.
Parameter dapat disingkat sesuai, mempercepat reaksi. Penambahan stop loss untuk mengendalikan risiko. Pengenalan lebih banyak faktor untuk memverifikasi sinyal pembalikan.
Strategi ini mengintegrasikan keunggulan dari dua jenis strategi yang berbeda, dapat meningkatkan kualitas sinyal, dan sampai batas tertentu mengatasi kelemahan dari strategi tunggal. Namun, ada juga keterbelakangan tertentu yang perlu dioptimalkan lebih lanjut. Secara keseluruhan, strategi ini memberikan ide baru untuk perdagangan kuantitatif, layak untuk dipelajari lebih lanjut dan dioptimalkan untuk menangkap peluang pasar.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/10/2019
// 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 2009 Oct
//
// 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
fFilter(xSeriesSum, xSeriesV, Filter) =>
iff(xSeriesV > Filter, xSeriesSum, 0)
EMA_VW(Length) =>
pos = 0.0
xMAVolPrice = ema(volume * close, Length)
xMAVol = ema(volume, Length)
nRes = xMAVolPrice / xMAVol
pos := iff(nRes < close[1], 1,
iff(nRes > close[1], -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & EMA & Volume Weighting", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthEMA_VM = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA_VW = EMA_VW(LengthEMA_VM)
pos = iff(posReversal123 == 1 and posEMA_VW == 1 , 1,
iff(posReversal123 == -1 and posEMA_VW == -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 )