Originally Posted by
3c1a
Erhan hocam,
//1 deki gibi yeni bir liste tanimlayip, //2 deki satiri dongu icersine ekleyip dener misiniz?
PHP Code:
//1
var SonYon_Liste = Sistem.Liste(0);
//2
SonYon_Liste[i]=Sistem.Yon[i]=="A"?1:Sistem.Yon[i]=="S"?-1:Sistem.Yon[i]=="F"?0:SonYon_Liste[i-1];
Bu yeni liste Sistem.Yon'deki A/S/F degisimlerini 1/-1/0 degerleri olarak tutuyor. Sistem.Yon listesi sadece yon degisimleri sirasinda deger aliyor yani yon degisimi disindaki herhangi baska bir anda ici bos gibi. Yeni liste ise tum barlar boyunca ekranda gordugumuz yone paralel 1/-1/0 degerleri atiyor.
Not:Bu satirlari eski forumdan "anonim" arkadasimizin sistem birlestirme kodu icerisinde uyarladim.
performans açısından döngüye sokmadan bu işi yapayım demiştim.
Bir arayüz tasarlıyorum timer ile Sistem Getiri çalıştırıp sistemin yönlerini sürekli olarak çekiyorum. Yön çekildiği veya değiştiği andaki grafik fiyat verilerindeki son değer neyse onu form uygulamama yazdırmak istiyorum amacım bu.
-Sistem YÖnünü çekiyorum ve forma yazdırabiliyorum PROBLEM YOK!
-Alış veya Satış fiyatınıda çekiyorum forma yazdırıyorum YÖN DEĞİŞMESE BİLE FİYAT DEĞİŞİYOR. PROBLEM VAR!
BUradaki problem ana sebebi timer sürekli olarak okuma yapıyor haliyle koşul gerçekleştiği içinde okumayı sürdürüyor. Buaya bir if bloğuyla son yön değişmişse git fiyatları oku veya yansıt gibi birşey demem lazım ki sadece o anda fiyatı okusun. Bir önceki son yön değişmiş ise git son fiyatı oku demek lazım fakat son yon bir liste değil anladıgım kadarıyla.
Yonumuz diye bir değişken oluşturdum global alanda timer dışında burayı kontrol ettireyim diyordum. Yanlız Yonumuz adlı değişkeni tetikleyemiyorum. yine timer veya for gibi birşeylere girişmek gerekiyormuş gibi.
Aklıma gelen şey şu Yonumuz adlı global alandaki değişkeni bir listeye çeviremezmiyiz. Bunu bir liste halinde tutup bir önceki yonumuz şöyle şimdiki yönümüz böyle ise fiyatı o zaman oku gibi bir kurgu problemı cozermı yoksa liste sürekli olarak dolup şişirirmi programı kafamda deli sorular KIT C# bilgisiyle :D
Kod:
int Yonumuz;
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")
{
lblsistemyonu.Text = "LONG";
Yonumuz = 1;
var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
float P1 = S1.LastPrice; //son fiyatı
lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
}
if (Sistemim.SonYon == "S")
{
lblsistemyonu.Text = "SHORT";
Yonumuz = -1;
var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
float P1 = S1.LastPrice; //son fiyatı
lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
}
if (Sistemim.SonYon == "F")
{
lblsistemyonu.Text = "FLAT";
Yonumuz = 0;
var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
float P1 = S1.LastPrice; //son fiyatı
lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
}
else if (Sistemim.SonYon == null)
{
MessageBox.Show("Sistem Bulunamadı!");
}
}
Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
Sokrates twit @erhanacikgoz1
Yer İmleri