Strategi Perdagangan Spread Volatiliti Dua Jangka Masa

Penulis:ChaoZhang, Tarikh: 2024-02-18 15:31:32
Tag:

img

Ringkasan

Strategi perdagangan spread turun naik dua jangka masa menilai status overbought/oversold pasaran dengan mengira spread antara penunjuk RSI dari dua kitaran masa yang berbeza untuk melaksanakan perdagangan trend berisiko rendah.

Prinsip Strategi

Penunjuk teras strategi ini adalah shortTermXtrender dan longTermXtrender. shortTermXtrender mengira spread RSI pada jangka masa pendek, dan longTermXtrender mengira spread RSI pada jangka masa panjang.

Jangka masa pendek menggunakan perbezaan harga antara EMA 7 hari dan LMA 4 hari untuk mengira RSI, dan kemudian perbezaan harga dengan 50 membentuk shortTermXtrender. Jangka masa panjang menggunakan perbezaan harga antara RSI EMA 4 hari dan 50 untuk membentuk longTermXtrender.

Apabila shortTermXtrender melintasi di atas 0, pergi panjang; apabila longTermXtrender melintasi di atas 0, juga pergi panjang. Prinsip stop loss selepas pergi panjang adalah untuk menghentikan kerugian apabila shortTermXtrender melintasi di bawah 0; apabila longTermXtrender melintasi di bawah 0, berhenti kerugian juga.

Dengan cara ini, dengan menghakimi dua kerangka masa, lebih banyak penyebaran palsu boleh disaring.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah bahawa penilaian trend adalah tepat. Gabungan bingkai masa berganda dapat menapis bunyi bising dengan berkesan dan mengunci arah trend sasaran. Ini memberikan jaminan untuk perdagangan pengesanan trend berisiko rendah.

Di samping itu, strategi menyediakan ruang untuk pengoptimuman parameter. Pengguna boleh menyesuaikan parameter seperti kitaran SMA dan parameter RSI mengikut pelbagai jenis dan kitaran masa untuk mengoptimumkan hasil strategi.

Analisis Risiko

Risiko utama strategi ini adalah penilaian yang salah panjang dan pendek. Dalam pasaran berayun, mudah untuk menjana isyarat yang salah. Jika kedudukan masih dibuka pada masa ini, akan ada risiko kerugian.

Selain itu, tetapan parameter yang tidak betul juga boleh membawa kepada hasil yang buruk. Jika parameter kitaran masa ditetapkan terlalu pendek, kemungkinan salah menilai akan meningkat; jika parameter kitaran masa ditetapkan terlalu lama, peluang untuk trend akan terlewatkan. Ini memerlukan pengguna untuk menguji dan mengoptimumkan parameter untuk pasaran yang berbeza.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Meningkatkan mekanisme mengambil keuntungan. Pada masa ini tidak ada pengaturan mengambil keuntungan dalam strategi. Keuntungan boleh diambil dalam masa selepas mencapai keuntungan sasaran.

  2. Meningkatkan pengurusan kedudukan. Posisi boleh diselaraskan secara dinamik berdasarkan saiz modal, turun naik dan penunjuk lain.

  3. Tetes tetapan parameter untuk pelbagai jenis. Pengguna boleh menguji kombinasi parameter yang optimum dengan backtesting jangka masa yang berbeza seperti harian dan 60 minit.

  4. Meningkatkan penilaian pembelajaran mesin yang dibantu. Model boleh dilatih untuk menentukan keadaan pasaran dan menyesuaikan parameter strategi secara dinamik untuk meningkatkan kadar kemenangan.

Ringkasan

Strategi perdagangan spread turun naik jangka masa berganda mencapai penangkapan trend yang cekap dengan membina penunjuk jangka masa berganda. Strategi ini mempunyai ruang pengoptimuman yang besar. Pengguna boleh mengoptimumkan melalui penyesuaian parameter, pengurusan mengambil keuntungan, pengurusan kedudukan, dll untuk mendapatkan hasil strategi yang lebih baik. Strategi ini sesuai untuk pengguna dengan beberapa pengalaman perdagangan.


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