Fungsi tidur
Keupayaan untuk bersiap sedia sehingga masa tertentu adalah penting untuk cBot, terutamanya bagi yang perlu dijadualkan atau diaktifkan apabila berlakunya sesuatu peristiwa (contohnya, pengumuman awam). Kaedah Sleep() dalam cTrader membolehkan penggantungan algoritma sehingga masa yang ditetapkan berlalu atau menghampiri.
Nota
Fungsi tidur hanya tersedia untuk cBot dan indikator.
Panduan API ini akan memperkenalkan anda kepada kaedah Sleep() dan cara menggunakannya dengan betul.
Kaedah Sleep() dalam satu minit!
- Kaedah
Sleep()membolehkan pembangun menggantung pelaksanaan algoritma dengan parameter masa fleksibel yang ditetapkan. - Jika anda mengetahui tarikh dan masa peristiwa tertentu yang perlu direspon oleh cBot anda dengan strategi yang disesuaikan, gunakan fungsi tidur untuk berdagang berita dan bertindak balas terhadap peristiwa yang dijadualkan.
- Tetapkan tempoh untuk berlalu bagi fungsi tidur, dari milisaat hingga sebarang tempoh masa.
- Kaedah
Sleep()hanya tersedia untuk algo .NET 6 dan berfungsi seperti yang dimaksudkan dalam ujian belakang.
Bagaimana kaedah sleep() berfungsi
Fungsi tidur hanya tersedia untuk algo .NET 6. Semasa cBot berada dalam mod tidur, semua peristiwa lain dalam kod akan diabaikan.
Contoh
Jika peristiwa BarOpened berlaku lima kali semasa mod tidur, tiada pengendali OnBar() yang terlepas akan dipanggil selepas cBot terjaga. Hanya peristiwa baharu yang akan datang akan dibangkitkan dalam kes ini.
Namun, cBot masih memproses semua mesej data semasa berada dalam mod tidur (contohnya, jika RefreshData() dipanggil).
Nota
Apabila menentukan masa tidur, anda menetapkan selang minimum penggantungan algoritma. Masa tidur sebenar akan sentiasa sama dengan atau lebih besar daripada masa penggantungan yang diminta.
Untuk menggunakan kaedah Sleep(), pembangun algoritma perlu menggunakan salah satu tandatangan ini bergantung pada tujuan mereka.
Untuk menggantung algoritma sehingga tempoh masa yang ditetapkan berlalu:
void Sleep(Timespan timespan)
Untuk menggantung algoritma sehingga bilangan milisaat yang ditetapkan berlalu:
void Sleep(int milliseconds)
Untuk menggantung algoritma sehingga masa dan tarikh yang ditetapkan menghampiri:
void Sleep(DateTime dateTime)
Contoh
Kita akan andaikan bahawa ucapan seterusnya oleh Pengerusi Federal Reserve semasa Jerome Powell dijadualkan pada 11 Disember 2023 pada pukul 11:00. Anda menjangkakan beberapa pengumuman yang akan mempengaruhi trend EURUSD dan telah membangunkan cBot yang akan mengejar strategi yang relevan tepat pada permulaan ucapan. Dalam kes ini, anda boleh menggunakan kaedah Sleep() seperti berikut.
DateTime doomsday = new DateTime(2023, 12, 11, 11, 0, 0);
Sleep(doomsday)
Amaran
Jika parameter DateTime bukan dari zon masa algoritma, ArgumentException akan dilemparkan.
Kaedah Sleep() berfungsi seperti yang dimaksudkan dalam ujian belakang. Jika anda ingin menghentikan cBot yang sedang tidur dari UI, anda tidak perlu menunggu sehingga ia terjaga. Klik butang Henti dan ia akan berhenti beroperasi tanpa masa tamat.
Cipta contoh cBot
Contoh cBot berikut tidur selama 30 saat selepas pelancarannya, dengan mesej berkaitan dicetak dalam log. Selepas itu, ia meletakkan pesanan pasaran beli 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
Fungsi tidur membolehkan pembangun algoritma menggantung pelaksanaan kaedah lain walaupun jika cBot telah dilancarkan. Dengan menggunakan kaedah Sleep() dengan parameter masa yang fleksibel, anda akan sentiasa bertindak balas terhadap peristiwa yang dijadualkan dengan strategi yang disesuaikan pada masanya.