
Strategi acak penunjuk dua garis rata adalah strategi yang cuba menggunakan gabungan penunjuk rata dan penunjuk rawak untuk mencari peluang perdagangan. Ia akan menghasilkan isyarat perdagangan ketika melintasi SMA perlahan pada EMA cepat, sambil menggunakan nilai K penunjuk rawak untuk menentukan sama ada oversold atau oversold untuk menghilangkan sebahagian isyarat.
Strategi ini berdasarkan kepada dua petunjuk teknikal:
Garis purata: mengira garis purata tiga parameter yang berbeza EMA pantas, SMA perlahan, VWMA perlahan, menghasilkan isyarat perdagangan apabila EMA pantas melintasi atau melintasi SMA perlahan.
Indikator rawak: mengira nilai% K, apabila ia melebihi nilai terhad yang ditetapkan untuk kawasan overbought atau oversold, menganggap bahawa pasaran mungkin akan berbalik, dan boleh membuang sebahagian daripada isyarat perdagangan rata-rata.
Secara khusus, logik isyarat strategi adalah:
Apabila EMA pantas melintasi SMA perlahan, dan nilai% K berada di bawah paras paras paras oversold, buat lebih banyak; apabila EMA pantas melintasi SMA perlahan di bawah EMA, dan nilai% K berada di atas paras paras paras paras paras oversold, buat kosong.
Untuk kedudukan berganda yang dibuka, jika nilai% K kembali ke kawasan oversold, atau harga jatuh di bawah garis berhenti, maka ia akan ditutup. Untuk kedudukan kosong yang dibuka, jika nilai% K kembali ke kawasan overbuy, atau harga jatuh di atas garis berhenti, maka ia akan ditutup.
Dengan menggabungkan penunjuk garis rata dan penunjuk rawak, strategi ini cuba menghantar isyarat masuk di titik isyarat garis rata dengan kebarangkalian tinggi, sambil memanfaatkan peluang penapisan bahagian penunjuk rawak yang salah masuk.
Strategi ini mempunyai kelebihan utama:
Strategi ini mempunyai beberapa risiko:
Kaedah yang sesuai:
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi acak penunjuk dua garis rata-rata merancang strategi pengesanan trend yang lebih mantap melalui gabungan penunjuk rata-rata dan penunjuk acak. Tetapi ada juga ruang untuk pengoptimuman, seperti pilihan parameter, cara menghentikan kerugian, dan sebagainya. Jika lebih banyak penghakiman dan pengoptimuman penunjuk diperkenalkan, strategi ini dijangka memperoleh keuntungan tambahan yang lebih stabil.
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("TVIX MEAN REV V2 TREND", overlay=true)
length = input(16, minval=1)
OverBought = input(80)
OverSold = input(20)
TradeLong = input (true)
TradeShort = input (true)
OverBoughtClose = input(80)
OverSoldClose = input(20)
smoothK = 3
smoothD = 3
trail_points = input(50)
k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)
k2 = sma(stoch(close, high, low, length), smoothK)
d2 = sma(k, smoothD)
// === GENERAL INPUTS ===
// short Ema
maFastSource = input(defval=close, title="Fast EMA Source")
maFastLength = input(defval=1, title="Fast EMA Period", minval=1)
// long Sma
maSlowSource = input(defval=close, title="Slow SMA Source")
maSlowLength = input(defval=100, title="Slow SMA Period", minval=1)
// longer Sma
maSlowerSource = input(defval=close, title="Slower SMA Source")
maSlowerLength = input(defval=30, title="Slower SMA Period", minval=1)
//ATR Stop Loss Indicator by Keith Larson
atrDays = input(7, "ATR Days Lookback")
theAtr = atr(atrDays)
atrModifier = input(5.0, "ATR Modifier")
//plot(atr * atrModifier, title="ATR")
LstopLoss = close - (theAtr * atrModifier)
SstopLoss = close + (theAtr * atrModifier)
// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)
maSlower = vwma(maSlowerSource, maSlowerLength)
rsi = rsi(maSlowerSource, maSlowerLength)
// === PLOTTING ===
fast = plot(maFast, title="Fast MA", color=color.red, linewidth=2, style=plot.style_line, transp=30)
slow = plot(maSlow, title="Slow MA", color=color.green, linewidth=2, style=plot.style_line, transp=30)
slower = plot(maSlower, title="Slower MA", color=color.teal, linewidth=2, style=plot.style_line, transp=30)
// === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross
LongFilter = maFast > maSlow
ShortFilter = maSlow > maFast
BUY=crossover(k, d) and k < OverSold
SELL=crossunder(k, d) and k > OverBought
SELLCLOSE=crossover(k, d) and k < OverSoldClose
BUYCLOSE=crossunder(k, d) and k > OverBoughtClose
Open = open
if not na(k) and not na(d)
if crossover(k, d) and k < OverSold and LongFilter and TradeLong
strategy.entry("$", strategy.long, limit = Open, comment="Long")
strategy.close("$",when = crossunder(k, d) and k > OverBoughtClose or open < LstopLoss )
///strategy.close("$",when = open < LstopLoss )
if not na(k) and not na(d)
if crossunder(k, d) and k > OverBought and ShortFilter and TradeShort
strategy.entry("$1", strategy.short, limit = Open, comment="S")
strategy.close ("$1", when = crossover(k, d) and k < OverSoldClose or open > SstopLoss )
///strategy.close ("$1", when = open < SstopLoss)