Strategi Aliran Persimpangan Purata Pergerakan Dinamik


Tarikh penciptaan: 2024-02-05 12:14:12 Akhirnya diubah suai: 2024-02-05 12:14:12
Salin: 0 Bilangan klik: 589
1
fokus pada
1617
Pengikut

Strategi Aliran Persimpangan Purata Pergerakan Dinamik

Gambaran keseluruhan

Strategi ini adalah strategi simpulan bergerak rata-rata (SMA) yang digunakan untuk pasaran cryptocurrency. Ia menggunakan tiga set SMA cepat, sederhana dan perlahan untuk mengenal pasti isyarat masuk dan keluar yang berpotensi. Apabila SMA cepat naik melalui SMA sederhana, ia menghasilkan isyarat beli; apabila SMA cepat turun melalui SMA sederhana, ia menghasilkan isyarat jual.

Prinsip Strategi

Tetapan parameter

Strategi membolehkan peniaga menetapkan parameter utama berikut:

  • Sumber data harga: harga penutupan atau harga lain
  • Adakah K-Line yang tidak lengkap dipertimbangkan
  • Kaedah ramalan SMA: ramalan perpindahan atau ramalan regresi linear
  • Panjang SMA pantas: 7 secara lalai
  • Panjang SMA kelajuan sederhana: 30 secara lalai
  • Panjang SMA perlahan: 50 secara lalai
  • Wang dalam akaun
  • Peratusan risiko bagi setiap transaksi

Pengiraan SMA

Berdasarkan panjang SMA yang ditetapkan oleh pengguna, SMA pantas, SMA sederhana dan SMA perlahan dikira.

Isyarat dagangan

Apabila SMA cepat di atas menembusi SMA sederhana, ia menghasilkan isyarat beli; apabila SMA cepat di bawah menembusi SMA sederhana, ia menghasilkan isyarat jual.

Pengurusan risiko dan kedudukan

Strategi ini menggabungkan dana akaun dan nisbah risiko yang ditanggung oleh setiap urus niaga, untuk mengira modal nominal setiap urus niaga. Kemudian menggabungkan ATR untuk mengira marjin stop loss, akhirnya menentukan kedudukan khusus untuk setiap urus niaga.

Analisis kelebihan

  • Menggunakan pelbagai kumpulan SMA untuk mengenal pasti trend, lebih bijak
  • Kaedah ramalan SMA boleh dipilih, lebih mudah disesuaikan
  • Isyarat perdagangan mudah, jelas dan mudah dilaksanakan
  • Pengurusan risiko dan kedudukan yang bersepadu, lebih saintifik

Analisis risiko

  • SMA sendiri ketinggalan akan terlepas titik perubahan harga
  • Berpikir hanya tentang teknikal, tidak mengikutsertakan asas
  • Tidak mengambil kira kesan daripada kejadian yang tidak dijangka

Ia boleh dioptimumkan dengan cara memendekkan kitaran SMA dengan betul dan membantu penunjuk lain.

Arah pengoptimuman

  • Gabungan penapis isyarat yang salah dengan petunjuk lain
  • Menambah penilaian asas
  • Optimumkan parameter kitaran SMA
  • Parameter pengiraan risiko dan kedudukan yang optimum

ringkaskan

Strategi ini mengintegrasikan pelbagai fungsi penilaian silang SMA, pengurusan risiko dan pengoptimuman kedudukan, merupakan strategi pengesanan trend yang sesuai untuk pasaran kripto. Pedagang boleh menyesuaikan parameter dan melaksanakan pengoptimuman mengikut gaya perdagangan dan persekitaran pasaran mereka sendiri.

Kod sumber strategi
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Onchain Edge Trend SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Configuration Parameters
priceSource = input(close, title="Price Source")
includeIncompleteBars = input(true, title="Consider Incomplete Bars")
maForecastMethod = input(defval="flat", options=["flat", "linreg"], title="Moving Average Prediction Method")
linearRegressionLength = input(3, title="Linear Regression Length")
fastMALength = input(7, title="Fast Moving Average Length")
mediumMALength = input(30, title="Medium Moving Average Length")
slowMALength = input(50, title="Slow Moving Average Length")
tradingCapital = input(100000, title="Trading Capital")
tradeRisk = input(1, title="Trade Risk (%)")

// Calculation of Moving Averages
calculateMA(source, period) => sma(source, period)
predictMA(source, forecastLength, regressionLength) => 
    maForecastMethod == "flat" ? source : linreg(source, regressionLength, forecastLength)

offset = includeIncompleteBars ? 0 : 1
actualSource = priceSource[offset]

fastMA = calculateMA(actualSource, fastMALength)
mediumMA = calculateMA(actualSource, mediumMALength)
slowMA = calculateMA(actualSource, slowMALength)

// Trading Logic
enterLong = crossover(fastMA, mediumMA)
exitLong = crossunder(fastMA, mediumMA)

// Risk and Position Sizing
riskCapital = tradingCapital * tradeRisk / 100
lossThreshold = atr(14) * 2
tradeSize = riskCapital / lossThreshold

if (enterLong)
    strategy.entry("Enter Long", strategy.long, qty=tradeSize)

if (exitLong)
    strategy.close("Enter Long")

// Display Moving Averages
plot(fastMA, color=color.blue, linewidth=2, title="Fast Moving Average")
plot(mediumMA, color=color.purple, linewidth=2, title="Medium Moving Average")
plot(slowMA, color=color.red, linewidth=2, title="Slow Moving Average")