Problemi muhtemelen çözdüm Pazartesi deneyeceğim Ancak kurgulanan algorıtma doğru diye düşünüyorum.

Bilgi ve öğretme amaçlı buraya da yayınlamış olayım.

a,s,f diye 0 değerinde değişkenler oluşturdum global alanda.

Timerin tick olayına yani her saniyede bir diyelim Sistemgetiri çalıştırıp sistemi çekiyor.

eğer sistemin son yonu A ise;
eğer a nın değeri de 0 a eşit ise;
Son fiyatı oku ve a nın değerini 1 arttır s ve f yide 0 yap.

Böylece timer tekrar okuma yaptıgında a'nın değeri artık 1 olacağı için LONG yazmasına veya son fiyatı okumasına gerek kalmayacak bir kere long olmuşsa birdaha long olmuş gibi davranmayacak.

Normalde her tickte yani her saniyede son yon kontrolunu saglayan if bloklarını okuyup duruyordu bu sayede o bloklarıda atlayacak max performansla calıstırmış olacagım

Ancak sistem getir acaba ne kadar yük bindiriyor makinaya onu ilerde ölçeceğim.


Kod:
int a = 0;
        int s = 0;
        int f = 0;
        
        public void timer1_Tick(object sender, EventArgs e) //timer1 acılınca okunacak verıler
        {
            SistemAdi = textBoxsistemadi.Text;
            SembolAdi = textBoxsembol.Text;
            Periyot = textBoxperiyot.Text;
            var Sistemim = User.Sistem.SistemGetir(SistemAdi, SembolAdi, Periyot);
            
            if (Sistemim.SonYon == "A") 
            {
                if (a==0)
                {
                    lblsistemyonu.Text = "LONG";
                  
                    var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
                    float P1 = S1.LastPrice; //son fiyatı
                    lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
                    a++;
                    s = 0;
                    f = 0;
                }

            }
            else if (Sistemim.SonYon == "S")
            {
                if (s==0)
                {
                    lblsistemyonu.Text = "SHORT";
                    var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
                    float P1 = S1.LastPrice; //son fiyatı
                    lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
                    s++;
                    a = 0;
                    f = 0;
                }
               
            }
            else if (Sistemim.SonYon == "F")
            {
                if (f==0)
                {
                    lblsistemyonu.Text = "FLAT";
                    var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
                    float P1 = S1.LastPrice; //son fiyatı
                    lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
                    f++;
                    s = 0;
                    a = 0;
                }
            }