Strategi Perdagangan Deviasi Volatilitas SMA


Tanggal Pembuatan: 2023-12-19 10:52:10 Akhirnya memodifikasi: 2023-12-19 10:52:10
menyalin: 1 Jumlah klik: 786
1
fokus pada
1621
Pengikut

Strategi Perdagangan Deviasi Volatilitas SMA

Strategi Perdagangan Deviasi Volatilitas SMA

Tinjauan Strategi

Strategi ini menggunakan rata-rata bergerak sederhana dan beberapa perhitungan matematika untuk menentukan titik beli/jual. Kami menggunakan 100 hari SMA sebagai garis dasar. Jika harga tutup berada di bawah garis, kami memilih titik buka berdasarkan seberapa jauh di bawah garis, nilai ini (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Prinsip Strategi

Strategi ini menggunakan tiga garis SMA: garis cepat (default 14 hari), garis lambat (default 100 hari), dan garis referensi (default 30 hari).

Ketika harga close-out berada di bawah garis referensi, dan bias rendah dari garis lambat relatif lebih besar dari bias rendah yang dikonfigurasi, dan garis cepat naik dan garis lambat turun, masuk ke dalam multipel. Ketika kondisi ini terpenuhi, garis cepat dan lambat sangat mungkin untuk bersilang, sehingga merupakan titik masuk yang lebih baik.

Ketika harga close out lebih tinggi dari garis referensi, dan perpindahan tinggi garis lambat relatif lebih besar dari perpindahan tinggi yang dikonfigurasi, dan harga close out telah naik 3 garis K berturut-turut, telah mencapai keuntungan, dan garis cepat lebih tinggi dari garis lambat, posisi kosong lebih sederhana. Jika harga terus naik, stop loss akan dimulai.

Posisi yang masuk pada setiap transaksi berdasarkan proporsi hak dan kepentingan tertentu, dengan cara ini mengendalikan posisi.

Analisis Keunggulan Strategi

  1. Mengambil keuntungan dari SMA, yaitu meratakan kurva harga, memfilter kebisingan pasar.
  2. SMA cross memiliki kemampuan untuk memprediksi tren.
  3. Untuk menghindari false breakout, setelkan deflection terhadap garis SMA.
  4. Dengan kombinasi dari tren dan cross-index, ini meningkatkan akurasi pengambilan keputusan.
  5. Menggunakan Tracking Stop Loss untuk mengunci keuntungan dan menghindari penarikan.

Analisis Risiko Strategi

  1. SMA sendiri memiliki keterbelakangan yang kuat dan mungkin akan melewatkan titik balik harga.
  2. Pengaturan bias yang tidak tepat dapat menyebabkan terlalu radikal atau terlalu berhati-hati.
  3. Pengaturan parameter tracking stop loss yang salah dapat menyebabkan stop loss yang terlalu cepat atau terlalu besar.
  4. Tidak mampu menghadapi pasar yang bergejolak.

Langkah-langkah optimasi yang sesuai:

  1. Filter masuk dalam kombinasi dengan indikator sebelumnya lainnya.
  2. Optimalisasi pengujian berulang pada defleksinya.
  3. Parameter stop loss diuji berulang kali untuk menemukan parameter optimal.
  4. Menurunkan posisi pada fase fluktuasi tinggi.

Arah optimasi strategi

  1. Mencari parameter optimal untuk menguji SMA pada periode yang berbeda
  2. Menambahkan indikator lain untuk menilai struktur dan tren pasar
  3. Optimalkan parameter tracking stop loss untuk mengunci lebih banyak keuntungan
  4. Mengubah posisi sesuai dengan volatilitas pasar
  5. Pada saat yang sama diterapkan pada berbagai varietas dan dalam kombinasi

Meringkaskan

Strategi perdagangan SMA yang bergeser secara bergelombang mencari waktu masuk yang optimal dengan menetapkan pergerakan yang mengacu pada rata-rata SMA yang berbeda. Pada saat yang sama, mekanisme keluar diatur untuk melacak stop loss untuk mengunci keuntungan. Strategi ini sederhana dan mudah dipahami dan mudah diterapkan.

Kode Sumber Strategi
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// Author: Sonny Parlin (highschool dropout)
strategy(shorttitle="SMA+Strategy", title="SMA Offset Strategy",
                                      overlay=true,  currency=currency.USD,
                                      initial_capital=10000)

// Inputs and variables
ss = input(14, minval=10, maxval=50, title="SMA Fast (days)")
ff = input(100, minval=55, maxval=200, title="SMA Slow (days)")
ref = input(30, minval=20, maxval=50, title="SMA Reference (days)")
lowOffset = input(0.001, "Low Offset (%)", minval=0, step=0.001)
highOffset = input(0.0164, "High Offset (%)", minval=0, step=0.0001)
orderStake = input(0.96, "Order Stake (%)", minval=0, step=0.01)

// SMA
smaFast = sma(close, ss)
smaSlow = sma(close, ff)
smaRef = sma(close, ref)
distanceLow = (close - smaSlow) / close
distanceHigh = (close - smaSlow) / close

// Set up SMA plot but don't show by default
plot(smaFast, "smaFast", color=#00ff00, display = 0)
plot(smaSlow, "smaSlow", color=#ff0000, display = 0)
plot(smaRef, "smaRef", color=#ffffff, display = 0)

// The buy stratey:
// guard that the low is under our sma low reference line by our lowOffset %, 
// default is 0.001. (low < smaRef) and (distanceLow > lowOffset)
// SMA fast is on the rise and SMA slow is falling and they are very likely
// to cross. (rising(smaFast,1)) and (falling(smaSlow, 1)) 
enterLong = (low < smaRef) and (distanceLow > lowOffset) and (rising(smaFast,1)) and (falling(smaSlow, 1)) 

// The sell Strategy:
// Guard that close is higher than our sma high reference line by our 
// highOffset %, default is 0.0164. (close > smaRef) and (distanceHigh > highOffset)
// Guard that close has risen by 3 candles in a row (rising(close,3)) 
// Guard that we currently have profit (strategy.openprofit > 0)
// Guard that SMA fast is higher than smaSlow (smaFast > smaSlow)
// If it keeps going up past our close position the trailing stoploss will kick in!
enterShort = (close > smaRef) and (distanceHigh > highOffset) and (rising(close,3)) and (strategy.openprofit > 0) and (smaFast > smaSlow)

// Order size is based on total equity
// Example 1:
// startingEquity = 2000
// close = 47434.93
// orderStake = 0.45
// (2,000 × orderStake) / close = orderSize = 0.0189733599 = approx $900

// Example 2:
// startingEquity = 2000
// close = 1.272
// orderStake = 0.45
// (startingEquity × orderStake) / close = orderSize = 707.5471698113 = approx $900
orderSize = (strategy.equity * orderStake) / close

// Trailing Stoploss
// I'm using 1.35 as my default value, play with this for different results.
longTrailPerc = input(title="Trailing Stoploss (%)",
     type=input.float, minval=0.0, step=0.1, defval=1.35) * 0.01
     
longStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0

if (enterLong)
    strategy.entry("Open Long Position", strategy.long, orderSize, when=strategy.position_size <= 0)
    
if (enterShort)
    strategy.exit(id="Close Long Position", stop=longStopPrice)


//plot(strategy.equity)