Hayır, öyle değil.
Şimdi ontimer fonksiyonunu başlatma durdurma olayı yok. oninite yazdığımız SetTimerInterval(60) ile çalışma periyodunu 60 saniyeye ayarlayarak başlıyor çalışmaya.
Ben stratejiyi 10:45:25 de çalıştırdım diyelim. ontimer her dakikanın 25. saniyesinde içindeki kodu çalıştıracak.
Stratejimin içinde sinyal geldi ve ben artık emir gönderdim. timer=true yaptım(ontimer başlangıcında yaptığım bir kontrol). Saat:11:00:20 diyelim. Ontimer her dakikanın 25. saniyesinde işleme girdiği için ve ben artık timer=true yaptığım için 5 saniye sonra ontimer içindeki kodlarım işleme girecek. Ben, emir gönderdikten, yani ontimer=true yaptıktan 60 saniye(ontimer için belirlediğim periyot kadar) sonra ontimer içindeki kod devreye girsin istiyorum.
//60 saniye sadece bir örnek, 75 saniye de olabilir, 120 saniye de.
Ontimer konusunda diğer durumlar:
1-Tüm stratejilerime ontimer kodu ekledim ve işlemci kullanımı artık %40 a seviyesinde. Bellek kullanımı da aynı oranda arttı. Ontimer kodu eklenmemiş statejilerim çalışırken işlemci kullanımı %3-5 civarındaydı. (Ek: Yaklaşık 4 saat geçtikten sonra iq dondu, prime bile işlem yapamaz duruma geldi.)
2-Sanıyorum oninit dışında veya bir kez belirlendikten sonra artık periyodu değiştirmemize izin vermiyor sistem. oninit içerisine SetTimerInterval(600000) gibi büyük bir sayı yazdım (işlemci kullanımı azalır umuduyla). Emir sonrasında ise SetTimerInterval(60) yazdım, periyodu değişmedi, yani oninit içerisine yazdığım uzun periyot devam etti.
3-Yapmak istediğim şey, belirlediğim periyotta (örneğin 60 saniyede bir) çalışan bir döngü kurup, istediğim şart oluştuğunda bu döngüden çıkmak. Bu olayı ontimer harici bir fonksiyonla yapabilir miyim?