Strategi Stokastik Indikator Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2024-01-29 11:54:10 Akhirnya memodifikasi: 2024-01-29 11:54:10
menyalin: 0 Jumlah klik: 608
1
fokus pada
1617
Pengikut

Strategi Stokastik Indikator Rata-rata Pergerakan Ganda

Ringkasan

Strategi Randomization dengan Indikator Dual Equilibrium adalah strategi yang mencoba untuk mencari peluang perdagangan dengan menggunakan kombinasi Indikator Equilibrium dan Indikator Randomization. Ini akan menghasilkan sinyal perdagangan ketika melewati SMA yang lambat pada EMA yang cepat, sementara menggunakan Indikator K yang acak untuk menentukan apakah ada overbought atau oversold untuk menghilangkan sebagian sinyal.

Prinsip Strategi

Strategi ini didasarkan pada dua indikator teknis:

  1. Garis rata-rata: menghitung garis rata-rata dari tiga parameter yang berbeda EMA cepat, SMA lambat, VWMA lambat, menghasilkan sinyal perdagangan ketika EMA cepat naik atau turun melewati SMA lambat.

  2. Indikator acak: Perhitungan nilai% K, ketika melebihi batas batas zona overbought atau zona oversold yang ditetapkan, menganggap bahwa pasar mungkin akan berbalik, dapat menghapus sebagian sinyal perdagangan rata-rata.

Secara khusus, logik dari sinyal strategi adalah:

  1. Ketika EMA cepat melewati SMA lambat, dan nilai K% berada di bawah titik terendah zona oversold, lakukan over; ketika EMA cepat melewati SMA lambat, dan nilai K% berada di atas titik terendah zona oversold, lakukan short.

  2. Untuk posisi multi-head yang dibuka, jika nilai% K kembali ke zona oversold, atau harga melewati batas stop loss, maka akan ditutup. Untuk posisi kosong yang dibuka, jika nilai% K kembali ke zona overbuy, atau harga melewati batas stop loss, maka akan ditutup.

Dengan menggabungkan indikator linier rata dan indikator acak, strategi ini mencoba untuk mengirim sinyal masuk di titik sinyal linier rata dengan probabilitas tinggi, sambil memanfaatkan kesempatan untuk memfilter bagian acak dari indikator yang salah masuk.

Analisis Keunggulan

Strategi ini memiliki keuntungan utama sebagai berikut:

  1. Dengan menggabungkan berbagai indikator teknis, penilaian komprehensif lebih komprehensif daripada indikator tunggal.
  2. Penggunaan indikator acak untuk memfilter sinyal dapat menghindari kesalahan hingga batas tertentu.
  3. Garis rata dengan beberapa set parameter campuran, penilaian lebih akurat secara keseluruhan.
  4. Sistem Stop Loss built-in untuk mengendalikan kerugian tunggal.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Indikator garis rata-rata mudah menghasilkan lebih banyak sinyal tidak pasti, probabilitas kesalahan yang lebih besar, kemampuan penghentian kerugian terbatas.
  2. Indikator acak itu sendiri juga dapat menghasilkan sinyal yang salah.
  3. Pengaturan parameter (seperti ukuran area overbought dan oversold, siklus rata-rata, dll.) mungkin perlu dioptimalkan, dan pengaturan yang salah dapat mempengaruhi kinerja strategi.
  4. Ini adalah strategi yang murni teknis dan kurang memperhatikan faktor-faktor mendasar.

Metode yang sesuai:

  1. Mengoptimalkan parameter, mencari kombinasi parameter indikator terbaik.
  2. Meningkatkan ukuran posisi dengan tepat, dan membangun gudang secara bertahap.
  3. Ini adalah analisa fundamental untuk menghindari peristiwa besar.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Optimalisasi tes parameter rata-rata untuk menemukan kombinasi parameter optimal.
  2. Uji parameter indikator acak seperti ukuran area overbought dan oversold untuk menemukan parameter optimal.
  3. Cobalah untuk menambahkan indikator lain, seperti VOLUME untuk meningkatkan penilaian atau indikator volatilitas untuk mengukur risiko, Enrich Entry logic.
  4. Menambahkan metode stop loss, seperti pelacakan stop loss, untuk mengendalikan risiko.
  5. Pengelolaan dana yang optimal, seperti penyesuaian posisi berdasarkan dinamika ATR.
  6. Ini adalah salah satu indikator yang paling penting untuk menghindari peristiwa berisiko besar, termasuk VIX.

Meringkaskan

Strategi acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan indikator acak dengan strategi acak dengan strategi acak dengan strategi acak dengan strategi acak dengan strategi acak

Kode Sumber Strategi
/*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)