Strategi Perdagangan Spread Volatilitas Sumbu Waktu Ganda


Tanggal Pembuatan: 2024-02-18 15:31:32 Akhirnya memodifikasi: 2024-02-18 15:31:32
menyalin: 0 Jumlah klik: 608
1
fokus pada
1617
Pengikut

Strategi Perdagangan Spread Volatilitas Sumbu Waktu Ganda

Ringkasan

Strategi perdagangan selisih harga dengan harga selisih harga dengan menghitung selisih harga antara dua indikator RSI dari periode waktu yang berbeda, untuk menilai kondisi overbought dan oversold di pasar, untuk mencapai perdagangan tren dengan risiko rendah.

Prinsip Strategi

Indikator utama dari strategi ini adalah shortTermXtrender dan longTermXtrender. ShortTermXtrender menghitung selisih harga RSI pada garis waktu pendek, dan longTermXtrender menghitung selisih harga RSI pada garis waktu panjang.

RSI diperhitungkan pada garis waktu jangka pendek dengan 7 hari EMA dan 4 hari LMA, kemudian dengan 50 untuk membuat perbedaan harga, membentuk ShortTermXtrender. RSI pada garis waktu jangka panjang dengan 4 hari EMA dan 50 untuk membuat perbedaan harga, membentuk LongTermXtrender.

Ketika shortTermXtrender memakai 0 , lakukan lebih banyak; Ketika longTermXtrender memakai 0 , lakukan lebih banyak. Prinsip stop loss setelah melakukan lebih banyak adalah ketika shortTermXtrender memakai 0; Ketika longTermXtrender memakai 0 , juga berhenti.

Dengan cara ini, lebih banyak terobosan palsu dapat disaring melalui penilaian timeline ganda.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah keakuratan penilaian tren. Penggunaan dual timeline dapat secara efektif menyaring kebisingan dan mengunci arah tren yang ditargetkan. Ini menjamin perdagangan pelacakan tren yang berisiko rendah.

Selain itu, strategi memberikan ruang untuk mengoptimalkan parameter. Pengguna dapat menyesuaikan siklus SMA, parameter RSI, dan lain-lain untuk mengoptimalkan efek strategi sesuai dengan varietas dan periode waktu yang berbeda.

Analisis risiko

Risiko utama dari strategi ini adalah kesalahan penilaian over-the-counter. Dalam situasi yang bergejolak, mudah untuk menghasilkan sinyal yang salah. Saat ini, jika masih membuka posisi, Anda akan menghadapi risiko kerugian.

Selain itu, pengaturan parameter yang tidak tepat juga dapat menyebabkan efek yang buruk. Jika parameter siklus waktu terlalu pendek, kemungkinan kesalahan penilaian akan meningkat; Jika parameter siklus waktu terlalu lama, peluang tren akan terlewatkan. Ini memerlukan pengguna untuk menguji dan mengoptimalkan parameter untuk pasar yang berbeda.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Menambahkan mekanisme stop loss. Strategi saat ini tidak memiliki stop loss, tetapi dapat dihentikan tepat waktu setelah mencapai target keuntungan.

  2. Meningkatkan manajemen posisi. Anda dapat menyesuaikan posisi secara dinamis berdasarkan ukuran dana, volatilitas, dan indikator lainnya.

  3. Pengujian pengaturan parameter varietas yang berbeda. Pengguna dapat menguji kombinasi parameter optimal dengan melakukan pengukuran kembali dari periode waktu yang berbeda, seperti sinar matahari, 60 menit.

  4. Menambahkan penilaian yang dibantu dengan pembelajaran mesin. Model dapat dilatih untuk menilai jenis situasi, sehingga secara dinamis menyesuaikan parameter strategi, meningkatkan tingkat kemenangan.

Meringkaskan

Strategi perdagangan selisih harga dengan harga selisih harga dengan membangun indikator dua sumbu waktu, untuk menangkap tren yang efisien. Ada ruang untuk mengoptimalkan strategi, pengguna dapat mengoptimalkan dengan cara penyesuaian parameter, manajemen stop-loss, manajemen posisi, dan sebagainya, untuk mendapatkan efek strategi yang lebih baik. Strategi ini cocok untuk pengguna yang memiliki pengalaman perdagangan tertentu.

Kode Sumber Strategi
/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//study("MavXtrender")
strategy("MavXtrender")

ShortTermSMA = input(7)
ShortTermLMA = input(4)
ShortTermRSI = input(2)

LongTermMA  = input(4)
LongTermRSI  = input(2)

UseFactors = input(true)
TradeShortTerm = input(true)
TradeLongTerm = input(true)

count = TradeShortTerm == true ? 1 : 0
count := TradeLongTerm == true ? count + 1 : count
// set position size
Amount = strategy.equity / (close * count)

ShortTermLMA := UseFactors == true ? round(ShortTermSMA * ShortTermLMA) : ShortTermLMA
ShortTermRSI := UseFactors == true ? round(ShortTermSMA * ShortTermRSI) : ShortTermRSI
LongTermMA := UseFactors == true ? round(ShortTermSMA * LongTermMA) : LongTermMA
LongTermRSI := UseFactors == true ? round(ShortTermSMA * LongTermRSI) : LongTermRSI

shortTermXtrender = rsi(ema(close, ShortTermSMA) - ema(close, ShortTermLMA), ShortTermRSI ) - 50
longTermXtrender  = rsi( ema(close, LongTermMA), LongTermRSI ) - 50

// === INPUT BACKTEST RANGE ===
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 2020, title = "To Year", minval = 2012)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

strategy.entry("ShortTerm", strategy.long, qty = Amount, when = window() and crossover(shortTermXtrender,0) and TradeShortTerm)
strategy.entry("LongTerm", strategy.long, qty = Amount, when = window() and crossover(longTermXtrender,0) and TradeLongTerm)

strategy.close("ShortTerm", when = crossunder(shortTermXtrender,0) or time > finish)
strategy.close("LongTerm", when = crossunder(longTermXtrender,0) or time > finish)

shortXtrenderCol = shortTermXtrender > 0 ? shortTermXtrender > shortTermXtrender[1] ? color.lime : #228B22 : shortTermXtrender > shortTermXtrender[1] ? color.red : #8B0000
plot(shortTermXtrender, color=shortXtrenderCol, style=plot.style_columns, linewidth=1, title="B-Xtrender Osc. - Histogram", transp = 50)

longXtrenderCol = longTermXtrender> 0 ? longTermXtrender > longTermXtrender[1] ? color.lime : #228B22 : longTermXtrender > longTermXtrender[1] ? color.red : #8B0000
plot(longTermXtrender , color=longXtrenderCol, style=plot.style_histogram, linewidth=2, title="B-Xtrender Trend - Histogram", transp = 80)
plot(longTermXtrender , color=color.white,     style=plot.style_line,      linewidth=1, title="B-Xtrender Trend - Line",      transp = 80)