Strategi Perdagangan Sisihan Volatiliti SMA


Tarikh penciptaan: 2023-12-19 10:52:10 Akhirnya diubah suai: 2023-12-19 10:52:10
Salin: 1 Bilangan klik: 788
1
fokus pada
1621
Pengikut

Strategi Perdagangan Sisihan Volatiliti SMA

Strategi Perdagangan Sisihan Volatiliti SMA

Gambaran Keseluruhan Strategi

Strategi ini menggunakan purata bergerak mudah dan beberapa pengiraan matematik untuk menentukan titik beli/jual. Kami menggunakan 100 hari SMA sebagai garis dasar. Jika harga tutup berada di bawah garis, kami memilih titik bukaan berdasarkan seberapa rendah ia berada di bawah garis, nilai ini (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Prinsip Strategi

Strategi ini menggunakan tiga garis SMA: garis pantas ((14 hari lalai), garis perlahan ((100 hari lalai) dan garis rujukan ((30 hari lalai) .

Apabila harga penutupan berada di bawah garis rujukan, dan perpindahan rendah garis perlahan berbanding dengan perpindahan rendah yang lebih besar daripada konfigurasi, dan garis cepat naik dan garis perlahan turun, masuk ke dalam multipel. Apabila syarat-syarat ini dipenuhi, garis cepat dan perlahan sangat mungkin bersalin, dan oleh itu merupakan titik permulaan yang baik.

Apabila harga penutupan lebih tinggi daripada garis rujukan, dan perpindahan tinggi garis perlahan lebih besar daripada perpindahan tinggi yang dikonfigurasi, dan harga penutupan telah meningkat secara berturut-turut dengan 3 garis K, telah mencapai keuntungan, dan garis cepat lebih tinggi daripada garis perlahan, kedudukan kosong lebih mudah. Jika harga terus meningkat, penghentian kerugian akan dimulakan.

Setiap dagangan kedudukan yang masuk mengikut nisbah hak dan kepentingan tertentu, dengan cara ini mengawal kedudukan.

Analisis kelebihan strategi

  1. Menggunakan SMA untuk meluruskan kurva harga dan menapis bunyi pasaran.
  2. SMA cross mempunyai kemampuan untuk meramalkan trend.
  3. Tetapan pengalihan berbanding dengan garis SMA, untuk mengelakkan penembusan palsu.
  4. Menggabungkan trend dan cross-indicator untuk meningkatkan ketepatan keputusan.
  5. Menggunakan Tracking Stop Loss untuk mengunci keuntungan dan mengelakkan penarikan balik.

Analisis risiko strategi

  1. SMA sendiri lebih ketinggalan zaman dan mungkin terlepas titik perubahan harga.
  2. Tetapan bias yang tidak betul boleh menyebabkan terlalu radikal atau terlalu berhati-hati.
  3. Tetapan parameter tracking stop loss yang tidak betul boleh menyebabkan stop loss terlalu awal atau terlalu besar.
  4. Tidak mampu menghadapi pasaran yang bergelombang.

Langkah-langkah pengoptimuman:

  1. Gabungan dengan penyaringan petunjuk terdahulu.
  2. Pengoptimuman ujian berulang untuk perpindahan.
  3. Parameter hentian kerugian diuji berulang kali untuk mencari parameter yang optimum.
  4. Menurunkan kedudukan semasa tahap turun naik.

Arah pengoptimuman strategi

  1. Uji SMA untuk mencari parameter yang optimum untuk pelbagai kitaran
  2. Menambah petunjuk lain untuk menilai struktur dan trend pasaran
  3. Optimumkan parameter tracking stop loss untuk mengunci lebih banyak keuntungan
  4. Penyesuaian kedudukan mengikut turun naik pasaran
  5. Ia juga digunakan dalam pelbagai jenis dan dalam kombinasi

ringkaskan

Strategi perdagangan pengalihan pergerakan SMA mencari masa masuk yang terbaik dengan menetapkan pengalihan merujuk kepada rata-rata SMA yang berbeza. Pada masa yang sama, mekanisme keluar ditetapkan untuk mengesan henti kerugian untuk mengunci keuntungan. Strategi ini mudah difahami dan mudah dilaksanakan.

Kod 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)