Originally Posted by
erhanacikgoz1
bearin teknıkle ksımen yapabıldım fakat geçmiş verilere göre düzenleme yapamıyorum benım için test önemli robottan yana problem yok yani görsel olarak sonucun performans olarak neyi değiştirdiğini merak ediyorum.
Birde farkettıgım 3 kere değişmiş saatler.
Eskiden 17:30 muş bir zaman sonra 17:45 olmus şimdi ise 18:15 oldu.
Bir kodcu arkadaş milattan önce milattan sonra filan yazılabılır gibi birşeylerden bahsetmişti.
şu tarihler arasında şu barı flat yap şu tarihler arası şu satteki barı en sonda 18:10 barını flat yap seklınde tanımlanması lazım.
Varmı tarih girilerek flat yapabılecegımız bir kod yada tarih aralıgı + şu saateki barı flat yap seklınde bır durum.
Robot değil sistem performansı önemli.
aşağıdaki kod yardımcı olabilir erhan hocam.
Tarihleri rastgele girdim, sen doğru tarihleri girersin.
Tarih1 18:15 e geçilen tarih
Tarih2 17:45 e geçilen tarih
Kod:
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var X1 = Sistem.TRIX(60);
var X2 = Sistem.MA(X1, "Exp", 100);
var Tarih1 = new DateTime(2016, 10, 1, 0, 0, 0); // YIL=2016 AY=10 GUN=1 18:15 tarihini giriniz
var Tarih2 = new DateTime(2015, 6, 1, 0, 0, 0); // YIL=2015 AY=6 GUN=1 17:45 tarihini giriniz
var SonYon = "";
for (int i = 1; i < V.Count; i++)
{
var Flat1815 = V[i].Date > Tarih1 && V[i].Date.Hour == 18 && V[i].Date.Minute >= 10;
var Flat1745 = V[i].Date < Tarih1 && V[i].Date > Tarih2 && V[i].Date.Hour == 17 && V[i].Date.Minute >= 40;
var Flat1730 = V[i].Date < Tarih2 && V[i].Date.Hour == 17 && V[i].Date.Minute >= 25;
// kapanışta flat ol
if (Flat1815 || Flat1745 || Flat1730)
{
if (SonYon != "F")
{
SonYon = "F";
Sistem.Yon[i] = "F";
}
}
// sistemim
else
{
if (X1[i] > X2[i] && SonYon != "A")
{
SonYon = "A";
Sistem.Yon[i] = "A";
}
if (X1[i] < X2[i] && SonYon != "S")
{
SonYon = "S";
Sistem.Yon[i] = "S";
}
}