Strategi Masa Mula Backtest yang boleh disesuaikan

Penulis:ChaoZhang, Tarikh: 2023-09-26 20:53:15
Tag:

Ringkasan

Tujuan strategi ini adalah untuk membolehkan pengguna menyesuaikan masa permulaan backtesting untuk backtesting yang lebih fleksibel dan boleh disesuaikan.

Logika Strategi

Strategi ini menggunakan fungsi masa dan cap masa Pine Script untuk melaksanakan masa permulaan backtest yang boleh disesuaikan.

Ia pertama membolehkan pengguna memasukkan tahun, bulan, tarikh, jam, dan minit permulaan backtest yang disesuaikan dalam tetapan. Ia kemudian menggunakan input ini untuk menjana cap masa dan menyimpannya dalam pembolehubah startTime.

Dalam pemeriksaan keadaan strategi, ia menambah keadaan startTime baru. Strategi hanya akan bermula apabila masa semasa lebih besar daripada atau sama dengan startTime.

Contohnya:

longCondition = crossover(sma(close, 14), sma(close, 28))

if (longCondition and startTime)

  strategy.entry("My Long Entry Id", strategy.long) 

Ini membolehkan pelaksanaan masa permulaan backtest yang boleh disesuaikan. Pengguna boleh mengkonfigurasi masa permulaan backtesting dengan fleksibel dan bukannya terhad kepada masa yang keras.

Analisis Kelebihan

Strategi masa permulaan backtest yang boleh disesuaikan ini mempunyai kelebihan berikut:

  1. Lebih fleksibel: Pengguna boleh menyesuaikan sepenuhnya masa permulaan backtest dan bukannya terhad kepada titik tetap dalam masa.

  2. Lebih Realistis: Masa permulaan boleh ditetapkan untuk masa pelaksanaan sebenar strategi, menjadikan backtest lebih realistik.

  3. Mudah untuk Ujian Kembali yang Dikendalikan Acara: Waktu permulaan boleh ditetapkan berdasarkan masa kejadian peristiwa untuk ujian semula peristiwa tertentu.

  4. Penyesuaian Keadaan Mudah: Keadaan permulaan backtest boleh disesuaikan dengan mudah untuk pengujian backtest yang disasarkan dari peringkat yang berbeza.

  5. Ulangi dan boleh dipercayai: Parameterisasi masa permulaan backtest membolehkan hasil backtest yang boleh diulang dan boleh dipercayai.

Analisis Risiko

Menggunakan masa permulaan backtest yang boleh disesuaikan juga mempunyai beberapa risiko:

  1. Hasil Bergantung pada Masa Mula: Masa permulaan yang berbeza boleh membawa kepada hasil backtest yang sangat berbeza.

  2. Waktu permulaan memerlukan pemilihan yang teliti: Waktu permulaan yang tidak munasabah boleh menyebabkan penyelewengan dalam hasil backtest.

  3. Peningkatan risiko pemasangan lengkung: Mudah overfit dengan menyesuaikan masa permulaan dengan data sejarah.

  4. Perbandingan yang berkurangan: Hasil strategi ini kurang setanding dengan backtest masa permulaan tetap.

Penyelesaian:

  1. Uji semula beberapa kali untuk menilai kesan perubahan masa permulaan pada hasil.

  2. Pilih masa peristiwa penting sebagai masa permulaan untuk meminimumkan gangguan.

  3. Sesuaikan masa permulaan dengan teliti untuk mengelakkan data sejarah yang berlebihan.

  4. Simpan backtest masa permulaan tetap sebagai penanda aras untuk perbandingan dengan backtest disesuaikan.

Arahan pengoptimuman

Strategi masa permulaan backtest yang boleh disesuaikan ini juga boleh ditingkatkan dalam aspek berikut:

  1. Sokongan penyesuaian kedua-dua waktu permulaan dan akhir untuk konfigurasi masa backtest yang fleksibel sepenuhnya.

  2. Sokong pelbagai mod masa: tarikh tertentu, tarikh relatif, didorong oleh peristiwa, dan lain-lain untuk konfigurasi masa yang lebih pintar dan lebih mudah.

  3. Sokongan antara muka konfigurasi grafik untuk tetapan parameter masa yang lebih intuitif.

  4. Sokongan konfigurasi granulariti masa yang berbeza: tahun, bulan, hari, jam, minit, saat, dll.

  5. Mencatatkan konfigurasi masa backtest untuk hasil yang boleh direproduksi, dapat dikesan, dan boleh dibandingkan.

  6. Tambah pengesahan konfigurasi masa yang tidak betul untuk mengelakkan backtest berkualiti rendah kerana tetapan masa yang tidak munasabah.

  7. Menyediakan waktu permulaan mengikat untuk mudah menyegerakkan masa permulaan di pelbagai strategi.

Ringkasan

Strategi ini membolehkan konfigurasi masa permulaan backtest yang boleh disesuaikan dan fleksibel untuk mengurangkan batasan dan membuat backtest lebih realistik. Tetapi pergantungan hasil pada masa permulaan perlu diperhatikan untuk menggunakan pelbagai backtest, model yang didorong peristiwa, dll untuk mengurangkan penyimpangan. Strategi ini juga mempunyai banyak arah untuk peningkatan untuk mencapai konfigurasi masa backtest yang lebih pintar dan lebih mudah di masa depan.


/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("C320up Strategy Tester Start Time", overlay = true)
// Copy and paste below into your strategy
// Strategy Tester Start Time
xYear = input(2018, title = "Start Year")
xMonth = input(01, title = "Start Month", minval = 01, maxval = 12)
xDay = input(01, title = "Start Day", minval = 01, maxval = 31)
xHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
xMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = time >= timestamp(xYear, xMonth, xDay, xHour, xMinute)
// End copy and paste
// Add (and startTime) at the end of your condition/s to activate

// The strategy below is just an example
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and startTime)
    strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition and startTime)
    strategy.entry("My Short Entry Id", strategy.short)
// Happy trading!


Lebih lanjut