Strategi Trading Spread Volatilitas Dual Timeframe

Penulis:ChaoZhangTanggal: 2024-02-18 15:31:32
Tag:

img

Gambaran umum

Strategi perdagangan spread volatilitas dua kerangka waktu menilai status overbought/oversold pasar dengan menghitung spread antara indikator RSI dari dua siklus waktu yang berbeda untuk menerapkan perdagangan tren berisiko rendah.

Prinsip Strategi

Indikator inti dari strategi ini adalah shortTermXtrender dan longTermXtrender. shortTermXtrender menghitung spread RSI pada kerangka waktu jangka pendek, dan longTermXtrender menghitung spread RSI pada kerangka waktu jangka panjang.

Kerangka waktu jangka pendek mengadopsi perbedaan harga antara EMA 7 hari dan LMA 4 hari untuk menghitung RSI, dan kemudian perbedaan harga dengan 50 merupakan shortTermXtrender. Kerangka waktu jangka panjang mengadopsi perbedaan harga antara RSI EMA 4 hari dan 50 untuk membentuk longTermXtrender.

Ketika shortTermXtrender melintasi di atas 0, pergi panjang; ketika longTermXtrender melintasi di atas 0, juga pergi panjang. Prinsip stop loss setelah pergi panjang adalah untuk menghentikan kerugian ketika shortTermXtrender melintasi di bawah 0, ketika longTermXtrender melintasi di bawah 0, berhenti kerugian juga.

Dengan cara ini, dengan menilai dua kerangka waktu, lebih banyak kebocoran palsu dapat disaring.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah bahwa penilaian tren akurat. Kombinasi dua kerangka waktu dapat secara efektif menyaring kebisingan dan mengunci arah tren target. Ini memberikan jaminan untuk perdagangan pelacakan tren berisiko rendah.

Selain itu, strategi memberikan ruang untuk optimasi parameter. Pengguna dapat menyesuaikan parameter seperti siklus SMA dan parameter RSI sesuai dengan berbagai varietas dan siklus waktu untuk mengoptimalkan hasil strategi.

Analisis Risiko

Risiko utama dari strategi ini adalah penilaian yang salah dari panjang dan pendek. Di pasar osilasi, mudah untuk menghasilkan sinyal yang salah. Jika posisi masih terbuka pada saat ini, akan ada risiko kerugian.

Selain itu, pengaturan parameter yang tidak tepat juga dapat menyebabkan hasil yang buruk. Jika parameter siklus waktu diatur terlalu pendek, kemungkinan penilaian yang salah akan meningkat; jika parameter siklus waktu diatur terlalu lama, kesempatan untuk tren akan terlewatkan. Ini mengharuskan pengguna untuk menguji dan mengoptimalkan parameter untuk pasar yang berbeda.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Meningkatkan mekanisme pengambilan keuntungan. Saat ini tidak ada pengaturan pengambilan keuntungan dalam strategi. Keuntungan dapat diambil dalam waktu setelah mencapai keuntungan target.

  2. Meningkatkan manajemen posisi Posisi dapat disesuaikan secara dinamis berdasarkan ukuran modal, volatilitas dan indikator lainnya.

  3. Pengaturan parameter uji untuk varietas yang berbeda. Pengguna dapat menguji kombinasi parameter optimal dengan backtesting jangka waktu yang berbeda seperti harian dan 60 menit.

  4. Meningkatkan penilaian yang dibantu pembelajaran mesin. Model dapat dilatih untuk menentukan kondisi pasar dan menyesuaikan parameter strategi secara dinamis untuk meningkatkan tingkat kemenangan.

Ringkasan

Strategi trading spread volatility timeframe ganda mencapai penangkapan tren yang efisien dengan membangun indikator timeframe ganda. Strategi ini memiliki ruang optimasi yang besar. Pengguna dapat mengoptimalkan melalui penyesuaian parameter, manajemen pengambilan keuntungan, manajemen posisi, dll untuk mendapatkan hasil strategi yang lebih baik. Strategi ini cocok untuk pengguna dengan beberapa pengalaman trading.


/*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)


Lebih banyak