1 beğenilme 0 beğenilmeme
676 kez görüntülendi
300 milisaniyede bir tetiklenmek üzere kurulan bir stratejim var ve bu strateji, hisse fiyatı %9’un üzerine çıktığında çalışmaya başlıyor ve alım satım yapıyor diyelim. Ama ben sürekli ekra başında olmadığım için %5-6 yükselen bazı hisseler için stratejiyi çalıştırıyorum ancak birden çok strateji aynı anda çalıştığı için ve çok hızlı tetiklenen kod olduğu için sistemimin donuyor ve matriks iq bazen kapanıyor. Sistemi rahatlamak adına;

OnTimer() altında yer alan ve çok hızlı tekrarlayan stratejimin çalışmaya başlamasını bir if koşuluna bağlayabilir miyim?

Örneğin SetTimerIntrval(30) ile 30 saniyede bir (gerekirse ondataupdate ile 1 dakikada bir de olabilir) sadece (fiyat>açılışfiyatı.1,09) koşulunun sağlanıp sağlanmadığı kontrol edilip, koşulun gerçekleşmesi durumunda SetTimerIntrvalMS ile OnTimer() altında yer alan ana stratejimi çalıştırabilir miyim?

Teşekkür ederim.
Algoritmik Trading kategorisinde (141 puan) tarafından | 676 kez görüntülendi
0 0
merhaba cözüm bulabildinmi sorununa acaba

1 cevap

0 beğenilme 0 beğenilmeme
En İyi Cevap

tabi bir değişken ile ontimerdaki işlemlerin tetiklenip tetiklenmemesi gerektiğini tutulabilir.

aşağıdaki örnekte fiyat 11 birimden büyük olduğunda ontimer içindeki işlemler aktif olacak.

 

bool bayrak=false;
		
public override void OnTimer()
{
	if(bayrak){
		// işlemlerin yapılacağı kod kısmı buraya gelecek
	}
}

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{
	if(barDataCurrentValues.LastUpdate.Close>11){
		bayrak=true;
	}
}

 

(15,892 puan) tarafından
tarafından seçilmiş
8,639 soru
8,593 cevap
4,826 yorum
19,854 kullanıcı