Alıntı:
Originally Posted by
Orhan AKDOĞAN
aslında belirttim bunu da, iki sorun vardı, birisi düzeldi, ikincisi devam ediyor :)
tek bir formül test butonu tıklanması sizin kodda 2 kere runsistem yapar, 2 kat yavaşlık demek bu. (sistemgetir + SonYonGetirCanli )
lib metodunda ise 1 kere runsistem yapar.
sistemgetir i-1 e bakan kod;
SonYonGetirCanli ise i e bakan kodtur.
sistemgetir ile null kontrolü yapılabilir, çünkü sistemi return eder.
SonYonGetirCanli ile null kontrolü yapılamaz çünkü sistemi değil yönü döndürür.
sonuç olarak SonYonGetirCanli yıda kullanmak mantıklı olmuyor.
Orhan hocam daha önceki canlı bar kodumun önemli satırı şuydu;
Alıntı:
Sistem.GrafikVerisiIndir("VIP'VIP-X030", "1");
var LotSize = 1; //işlem adedi
var MySistem = Sistem.SistemGetir("SistemAD", "VIP'VIP-X030", "1");
if (MySistem == null)
{
Sistem.Mesaj(Sistem.Name + "Hatalı Çalışıyor !");
}
else
{
var EmirSembol = Sistem.AktifViopKontrat;
var Pozisyon = Sistem.PozisyonKontrolOku(Sistem.Name + " , " + EmirSembol);
var SonYon = "";
for (int i = 0; i < MySistem.Yon.Count; i++)
{
if (MySistem.Yon[i] != "")
SonYon = MySistem.Yon[i];
}
// Emir Miktarını Hesapla
// bu satır vıop saatleri için
var Miktar = 0.0;
if (Sistem.Saat.CompareTo("09:30:00") <= 0 || Sistem.Saat.CompareTo("18:14:59") >= 0)
{
}
//if (Sistem.Saat.CompareTo("14:00:00") <= 0 && Sistem.Saat.CompareTo("13:00:00") >= 0)
//{
//}
// else if (Sistem.Saat.CompareTo("17:59:59") >= 0) // Gün Sonu Pozisyonu Kapat
// {
// if (Pozisyon != 0)
// Miktar = -Pozisyon;
// }
else if (SonYon == "F" && Pozisyon != 0) // Flata Geç
Miktar = -Pozisyon;
else if (SonYon == "A" && Pozisyon != LotSize) // Al
Miktar = LotSize - Pozisyon;
else if (SonYon == "S" && Pozisyon != -LotSize) // Sat
Miktar = -LotSize - Pozisyon;
// Emir Gönder
var Islem = "";
if (Miktar > 0)
Islem = "ALIS";
if (Miktar < 0)
Islem = "SATIS";
if (Islem != "")
{
var Anahtar = Sistem.Name + " , " + MySistem.GrafikVerileri[MySistem.GrafikVerileri.Count-1].Date.ToString("yyyyMMdd HH:mm");
var Defa = Sistem.SayiTablosunuOku(Anahtar);
if (Defa == 0)
{
Defa++;
Sistem.SayiTablosunuGuncelle(Anahtar, Defa);
Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " + EmirSembol, Miktar + Pozisyon);
Sistem.EmirSembol = EmirSembol;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "KIE";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirMiktari = Math.Abs(Miktar);
Sistem.EmirGonder();
}
}
}
.. hülasa, ben defa kontrolüne gerek duymadığım (sistem kodum repaintsiz ve salınımsız geldiği ) için SistemGetirCanli komutunu halen kullanıyorum.