Fungsionalitas Sleep
Kemampuan untuk siaga hingga waktu tertentu sangat penting untuk cBot, terutama untuk yang harus dijadwalkan atau diaktifkan saat terjadinya suatu peristiwa (misalnya, pengumuman publik). Metode Sleep() di cTrader memungkinkan untuk menangguhkan algoritma hingga waktu yang ditentukan berlalu atau mendekat.
Catatan
Fungsionalitas sleep hanya tersedia untuk cBot dan indikator.
Panduan API ini akan memperkenalkan Anda pada metode Sleep() dan cara menggunakannya dengan benar.
Metode Sleep() dalam satu menit!
- Metode
Sleep()memungkinkan pengembang untuk menangguhkan eksekusi algoritma dengan parameter waktu fleksibel yang ditetapkan. - Jika Anda mengetahui tanggal dan waktu peristiwa tertentu yang harus direspons oleh cBot Anda dengan strategi yang disesuaikan, gunakan fungsionalitas sleep untuk trading berita dan bereaksi terhadap peristiwa terjadwal.
- Tetapkan periode yang harus berlalu untuk fungsionalitas sleep, dari milidetik hingga rentang waktu apa pun.
- Metode
Sleep()hanya tersedia untuk algo .NET 6 dan berfungsi sebagaimana dimaksud dalam backtesting.
Cara kerja metode sleep()
Fungsionalitas sleep hanya tersedia untuk algo .NET 6. Saat cBot berada dalam mode sleep, semua peristiwa lain dalam kode akan diabaikan.
Contoh
Jika peristiwa BarOpened terjadi lima kali selama mode sleep, tidak ada handler OnBar() yang terlewat akan dipanggil setelah cBot terbangun. Hanya peristiwa baru yang akan datang yang akan dimunculkan dalam kasus ini.
Namun, cBot tetap memproses semua pesan data saat berada dalam mode sleep (misalnya, jika RefreshData() dipanggil).
Catatan
Dengan menentukan waktu tidur, Anda menetapkan interval minimum penangguhan algoritma. Waktu tidur sebenarnya akan selalu sama dengan atau lebih besar dari waktu penangguhan yang diminta.
Untuk menerapkan metode Sleep(), pengembang algoritma harus menggunakan salah satu dari tanda tangan ini tergantung pada tujuan mereka.
Untuk menangguhkan algoritma hingga rentang waktu yang ditentukan berlalu:
void Sleep(Timespan timespan)
Untuk menangguhkan algoritma hingga jumlah milidetik yang ditentukan berlalu:
void Sleep(int milliseconds)
Untuk menangguhkan algoritma hingga waktu dan tanggal yang ditentukan mendekat:
void Sleep(DateTime dateTime)
Contoh
Kita akan mengasumsikan bahwa pidato berikutnya dari Ketua Federal Reserve saat ini Jerome Powell dijadwalkan pada 11 Desember 2023 pukul 11:00. Anda mengharapkan beberapa pengumuman yang akan mempengaruhi tren EURUSD dan telah mengembangkan cBot yang akan mengejar strategi yang relevan tepat pada awal pidato. Dalam contoh ini, Anda dapat menerapkan metode Sleep() sebagai berikut.
DateTime doomsday = new DateTime(2023, 12, 11, 11, 0, 0);
Sleep(doomsday)
Peringatan
Jika parameter DateTime bukan dari zona waktu algoritma, ArgumentException akan dilempar.
Metode Sleep() berfungsi sebagaimana dimaksud dalam backtesting. Jika Anda ingin menghentikan cBot yang sedang tidur dari UI, Anda tidak perlu menunggu sampai ia terbangun. Klik tombol Stop dan itu akan berhenti beroperasi tanpa timeout.
Buat contoh cBot
Contoh cBot berikut tidur selama 30 detik setelah diluncurkan, dengan pesan yang sesuai dicetak dalam log. Setelah itu, ia menempatkan order beli market untuk USDJPY.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |

Ringkasan
Fungsionalitas sleep memungkinkan pengembang algoritma untuk menangguhkan eksekusi metode lain bahkan jika cBot telah diluncurkan. Dengan menerapkan metode Sleep() dengan parameter waktu yang fleksibel, Anda akan selalu bereaksi terhadap peristiwa terjadwal dengan strategi yang disesuaikan tepat waktu.