Strategi waktu awal backtest yang dapat disesuaikan

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

Gambaran umum

Tujuan dari strategi ini adalah untuk memungkinkan pengguna untuk menyesuaikan waktu awal backtesting untuk backtesting yang lebih fleksibel dan dapat disesuaikan.

Logika Strategi

Strategi ini menggunakan fungsi waktu dan timestamp Pine Script untuk menerapkan waktu awal backtest yang dapat disesuaikan.

Ini pertama-tama memungkinkan pengguna untuk memasukkan tahun, bulan, tanggal, jam, dan menit awal backtest yang disesuaikan dalam pengaturan.

Dalam strategis condition check, ia menambahkan kondisi startTime baru. Strategi hanya akan dimulai ketika waktu saat ini lebih besar dari atau sama dengan startTime.

Misalnya:

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

if (longCondition and startTime)

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

Ini memungkinkan implementasi waktu awal backtest yang dapat disesuaikan. Pengguna dapat secara fleksibel mengkonfigurasi waktu awal backtesting alih-alih terbatas pada waktu hardcoded.

Analisis Keuntungan

Strategi waktu awal backtest yang dapat disesuaikan ini memiliki keuntungan berikut:

  1. Lebih Fleksibel: Pengguna dapat sepenuhnya menyesuaikan waktu awal backtest alih-alih dibatasi pada titik waktu yang tetap.

  2. Lebih Realistis: Waktu awal dapat diatur ke waktu pelaksanaan sebenarnya dari strategi, membuat backtest lebih realistis.

  3. Nyaman untuk backtesting yang didorong oleh peristiwa: Waktu awal dapat diatur berdasarkan waktu terjadinya peristiwa untuk backtesting peristiwa tertentu.

  4. Pengaturan Kondisi Mudah: Kondisi awal backtest dapat dengan mudah disesuaikan untuk backtesting yang ditargetkan dari berbagai tahap.

  5. Ulang dan Dapat Diandalkan: Parameterisasi waktu awal backtest memungkinkan hasil backtest yang dapat diulang dan dapat diandalkan.

Analisis Risiko

Menggunakan waktu awal backtest yang dapat disesuaikan juga memiliki beberapa risiko:

  1. Hasil tergantung pada waktu awal: Waktu awal yang berbeda dapat menyebabkan hasil backtest yang sangat berbeda.

  2. Waktu Mulai Membutuhkan Pilihan yang Hati-Hati: Waktu awal yang tidak wajar dapat menyebabkan distorsi dalam hasil backtest.

  3. Peningkatan risiko penyesuaian kurva: Mudah overfit dengan menyesuaikan waktu awal dengan data historis.

  4. Perbandingan yang berkurang: Hasil dari strategi ini kurang sebanding dengan backtest waktu awal yang tetap.

Solusi:

  1. Backtest beberapa kali untuk mengevaluasi dampak perubahan waktu awal pada hasil.

  2. Pilih waktu peristiwa penting sebagai waktu awal untuk meminimalkan distorsi.

  3. Atur waktu awal dengan hati-hati untuk menghindari keterpaduan data historis.

  4. Simpan backtest waktu awal yang tetap sebagai patokan untuk perbandingan dengan backtest yang disesuaikan.

Arahan Optimasi

Strategi waktu awal backtest yang dapat disesuaikan ini juga dapat ditingkatkan dalam aspek berikut:

  1. Dukungan kustomisasi waktu awal dan akhir untuk konfigurasi waktu backtest yang fleksibel.

  2. Mendukung beberapa mode waktu: tanggal tertentu, tanggal relatif, event-driven, dll untuk konfigurasi waktu yang lebih cerdas dan lebih nyaman.

  3. Dukungan antarmuka konfigurasi grafis untuk pengaturan parameter waktu yang lebih intuitif.

  4. Dukungan konfigurasi granularitas waktu yang berbeda: tahun, bulan, hari, jam, menit, detik, dll.

  5. Rekam konfigurasi waktu backtest untuk hasil yang dapat direproduksi, dapat dilacak, dan dapat dibandingkan.

  6. Tambahkan validasi konfigurasi waktu yang tidak tepat untuk menghindari backtest berkualitas rendah karena pengaturan waktu yang tidak masuk akal.

  7. Menyediakan waktu awal mengikat untuk dengan mudah menyinkronkan waktu awal di berbagai strategi.

Ringkasan

Strategi ini memungkinkan konfigurasi waktu awal backtest yang dapat disesuaikan dan fleksibel untuk mengurangi keterbatasan dan membuat backtest lebih realistis. Tetapi ketergantungan hasil pada waktu awal perlu diperhatikan untuk menggunakan beberapa backtest, model yang didorong oleh peristiwa, dll untuk mengurangi distorsi. Strategi ini juga memiliki banyak arah untuk perbaikan untuk mencapai konfigurasi waktu backtest yang lebih cerdas dan lebih nyaman 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 banyak