Tujuan dari kebijakan ini adalah untuk memungkinkan pengguna untuk menyesuaikan waktu awal pengembalian, sehingga memungkinkan pengembalian yang lebih fleksibel dan disesuaikan.
Strategi ini menggunakan fungsi time dan timestamp dari skrip pine untuk mencapai waktu start ulang yang disesuaikan.
Pertama, ia memungkinkan pengguna untuk memasukkan tahun, bulan, tanggal, jam, dan menit yang disesuaikan untuk memulai pengukuran ulang ke pengaturan. Kemudian, ia menggunakan input ini untuk menghasilkan sebuah kolom waktu dan menyimpannya dalam variabel startTime.
Dalam penilaian kondisi kebijakan, ia menambahkan sebuah kondisi startTime. Kebijakan hanya akan dimulai jika 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)
Dengan demikian, dapat dimungkinkan untuk menyesuaikan waktu dimulainya pengukuran ulang. Pengguna dapat menyesuaikan waktu dimulainya pengukuran ulang sesuai dengan kebutuhan, dan tidak hanya terbatas pada waktu pengkodean keras.
Strategi ini memiliki beberapa keuntungan:
Fleksibilitas yang lebih baik: pengguna dapat sepenuhnya menyesuaikan waktu mulai pengukuran, tidak lagi dibatasi pada titik waktu tertentu.
Lebih realistis: Anda dapat mengatur waktu mulai pengembalian sebagai waktu yang tepat untuk menjalankan strategi, sehingga membuat pengembalian lebih dekat dengan situasi pasar yang sebenarnya.
Fasilitasi event-driven feedback: Anda dapat mengatur waktu startup berdasarkan waktu kejadian untuk melakukan feedback terhadap peristiwa tertentu.
Kemudahan penyesuaian kondisi: dapat dengan mudah menyesuaikan kondisi awal pengujian ulang, sehingga dapat melakukan pengujian ulang yang ditargetkan untuk berbagai tahap.
Repeatability Reliability: Dengan parameterisasi waktu awal pengukuran, pengukuran dapat dilakukan berulang kali untuk mendapatkan hasil yang dapat diandalkan.
Ada beberapa risiko dalam menggunakan waktu boot yang disesuaikan:
Hasil pengujian bergantung pada waktu mulai: waktu mulai yang berbeda dapat menyebabkan hasil pengujian yang sangat berbeda.
Pilihlah waktu startup dengan hati-hati, karena waktu startup yang tidak masuk akal dapat menyebabkan kesalahan dalam pengembalian dan tidak mencerminkan situasi yang sebenarnya.
Peningkatan risiko kecocokan kurva: mudah untuk menyesuaikan data historis dengan menyesuaikan waktu startup, sehingga menimbulkan risiko over-fit.
Kurangi komparabilitas hasil pengembalian: Hasil pengembalian dari strategi ini kurang komparabel dengan hasil pengembalian dari waktu startup yang tetap.
Solusi yang sesuai:
Uji ulang beberapa kali untuk mengevaluasi dampak perubahan waktu start pada hasil.
Memilih waktu kejadian besar sebagai waktu awal, mengurangi kecurangan retrospektif
Ada beberapa cara yang bisa dilakukan untuk menghemat waktu.
Simpan umpan balik dari waktu startup yang tetap sebagai acuan untuk membandingkan dengan umpan balik yang disesuaikan.
Strategi ini dapat dioptimalkan dengan cara:
Mendukung kustomisasi start dan end time, memungkinkan konfigurasi fleksibel dari jendela waktu pengembalian yang lengkap.
Mendukung berbagai mode waktu: tanggal spesifik, tanggal relatif, event-driven, dan lain-lain, membuat konfigurasi waktu retrospeksi lebih cerdas.
Mendukung antarmuka konfigurasi grafis untuk membuat pengaturan parameter waktu lebih intuitif.
Mendukung konfigurasi waktu yang berbeda: tahun, bulan, hari, jam, menit, dan detik.
Mencatat konfigurasi waktu pengukuran, sehingga hasil pengukuran dapat direproduksi, dapat dilacak, dan dapat dibandingkan.
Menambahkan waktu konfigurasi yang tidak tepat pemeriksaan, menghindari waktu konfigurasi yang tidak masuk akal mempengaruhi kualitas pengukuran kembali.
Memberikan fungsi waktu booting, satu tombol sinkronisasi salinan waktu booting ke beberapa kebijakan.
Kebijakan ini memungkinkan konfigurasi waktu awal pengembalian yang dapat disesuaikan dan fleksibel, yang dapat mengurangi batasan pengembalian, sehingga lebih dekat dengan situasi real-time. Namun, juga perlu waspada terhadap ketergantungan hasil pengembalian pada waktu awal, mengambil beberapa pengembalian, tindakan penggerak peristiwa dan lainnya untuk mengurangi kepalsuan pengembalian. Kebijakan ini memiliki banyak arah optimasi, yang diharapkan dapat mencapai konfigurasi waktu pengembalian yang lebih cerdas dan 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!