Uyku işlevi
Belirli bir zamana kadar bekleme yeteneği, cBot'lar için, özellikle de bazı olayların (örneğin, kamu duyurusu) meydana gelmesi üzerine planlanması veya etkinleştirilmesi gerekenler için çok önemlidir. cTrader'daki Sleep() yöntemi, algoritmaları belirtilen süre geçene veya yaklaşana kadar askıya almayı sağlar.
Not
Uyku işlevi yalnızca cBot'lar ve göstergeler için kullanılabilir.
Bu API kılavuzu, Sleep() yöntemini ve nasıl doğru kullanılacağını size tanıtacak.
Sleep() yöntemi bir dakikada!
Sleep()yöntemi, geliştiricilerin esnek zaman parametreleri belirlenmiş bir algoritmanın yürütülmesini askıya almasını sağlar.- cBot'unuzun özel bir stratejiyle tepki vermesi gereken belirli bir olayın tarihini ve saatini biliyorsanız, haberleri işlem yapmak ve planlanmış olaylara tepki vermek için uyku işlevini kullanın.
- Uyku işlevi için milisaniyelerden herhangi bir zaman aralığına kadar geçmesi için bir süre belirleyin.
Sleep()yöntemi yalnızca .NET 6 algoritmaları için kullanılabilir ve geriye dönük testte beklendiği gibi çalışır.
Sleep() yöntemi nasıl çalışır
Uyku işlevi yalnızca .NET 6 algoritmaları için kullanılabilir. Bir cBot uyku modunda kalırken, koddaki diğer tüm olaylar göz ardı edilecektir.
Örnek
BarOpened olayı uyku modu sırasında beş kez meydana geldiyse, cBot uyandıktan sonra kaçırılan OnBar() işleyicilerinden hiçbiri çağrılmayacaktır. Bu durumda yalnızca yeni gelecek olaylar tetiklenecektir.
Yine de, cBot'lar uyku modunda kalırken tüm veri mesajlarını işler (örneğin, RefreshData() çağrılırsa).
Not
Uyku süresini belirterek, algoritma askıya alma için minimum bir aralık belirlersiniz. Gerçek uyku süresi, talep edilen askıya alma süresinden her zaman eşit veya daha büyük olacaktır.
Sleep() yöntemini uygulamak için, algoritma geliştiricileri amaçlarına bağlı olarak bu imzalardan birini kullanmalıdır.
Algoritmayı belirtilen zaman aralığı geçene kadar askıya almak için:
void Sleep(Timespan timespan)
Belirtilen milisaniye sayısı geçene kadar algoritmayı askıya almak için:
void Sleep(int milliseconds)
Belirtilen saat ve tarih yaklaşana kadar algoritmayı askıya almak için:
void Sleep(DateTime dateTime)
Örnek
Mevcut Federal Rezerv Başkanı Jerome Powell'ın bir sonraki konuşmasının 11 Aralık 2023 saat 11:00'de yapılacağını varsayacağız. EURUSD trendini etkileyecek bazı duyurular bekliyorsunuz ve konuşma başlar başlamaz ilgili bir strateji izleyecek bir cBot geliştirdiniz. Bu durumda, Sleep() yöntemini şu şekilde uygulayabilirsiniz.
DateTime doomsday = new DateTime(2023, 12, 11, 11, 0, 0);
Sleep(doomsday)
Uyarı
DateTime parametresi algoritma zaman diliminden değilse, bir ArgumentException fırlatılacaktır.
Sleep() yöntemi geriye dönük testte beklendiği gibi çalışır. Uyku modundaki bir cBot'u kullanıcı arayüzünden durdurmak istiyorsanız, uyanmasını beklemek zorunda değilsiniz. Durdur düğmesine tıklayın ve zaman aşımı olmadan çalışmayı durduracaktır.
Örnek bir cBot oluşturun
Aşağıdaki örnek cBot, başlatıldıktan sonra 30 saniye uyur ve ilgili mesaj günlüğe yazdırılır. Daha sonra, USDJPY için bir alış piyasa emri verir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |

Özet
Uyku işlevi, cBot başlatılmış olsa bile algoritma geliştiricilerinin diğer yöntemlerin yürütülmesini askıya almasını sağlar. Sleep() yöntemini esnek zaman parametreleriyle uygulayarak, planlanmış olaylara özel stratejinizle her zaman zamanında tepki vereceksiniz.