Kod:
var ParametreList = new List<string>();
ParametreList.Add("S3 , 1, 1");
ParametreList.Add("S5 , 1, 1");
ParametreList.Add("S6 , 1, 2");
ParametreList.Add("S7 , 1, 1");
ParametreList.Add("S9 , 1, 1");
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatOku(V, "Kapanis");
for (int i = 300; i < V.Count; i++)
{
if (V[i].Date.Month != V[i - 1].Date.Month)
Sistem.DikeyCizgiEkle(i, Color.DimGray, 2, 2);
}
var SistemList = new List<string>();
var PeriyotList = new List<string>();
var LotList = new List<float>();
for (int i = 0; i < ParametreList.Count; i++)
{
var FieldArray = ParametreList[i].Split(',');
SistemList.Add(FieldArray[0].Trim());
PeriyotList.Add(FieldArray[1].Trim());
LotList.Add(Convert.ToSingle(FieldArray[2].Trim()));
}
var ViopData = Sistem.GrafikVerileri;
var TarihDictionary = new Dictionary<DateTime, int>();
for (int i = 0; i < ViopData.Count; i++)
TarihDictionary[ViopData[i].Date] = i;
// yön listelerini oluştur
List<List<string>> Yonler = new List<List<string>>();
//for (int i = 0; i < ParametreList.Count; i++)
// Yonler.Add(System.Linq.Enumerable.Repeat("", ViopData.Count).ToList());
for (int i = 0; i < ParametreList.Count; i++)
{
var BosList = new List<string>();
for (int j = 0; j < ViopData.Count; j++)
BosList.Add("");
Yonler.Add(BosList);
}
// yönleri bul
for (int i = 0; i < ParametreList.Count; i++)
{
var SembolSistem = Sistem.SistemGetir(SistemList[i], Sistem.Sembol, PeriyotList[i]);
if (SembolSistem == null) continue;
for (int j = 0; j < SembolSistem.GrafikVerileri.Count; j++)
{
var Tarih = SembolSistem.GrafikVerileri[j].Date;
if (TarihDictionary.ContainsKey(Tarih))
Yonler[i][TarihDictionary[Tarih]] = SembolSistem.Yon[j];
}
}
// pozisyon hesapla
var SonPozDictionary = new Dictionary<string, int>();
var PozList = Sistem.Liste(0);
for (int i = 0; i < Yonler.Count; i++)
{
var SonPozStr = "";
for (int j = V.Count - 1; j > 0; j--)
{
if (Yonler[i][j] != "")
{
SonPozStr = Yonler[i][j];
break;
}
}
int SonPozLot = 0;
if (SonPozStr == "A")
SonPozLot = Convert.ToInt32(LotList[i]);
else if (SonPozStr == "S")
SonPozLot = -Convert.ToInt32(LotList[i]);
SonPozDictionary[SistemList[i]] = SonPozLot;
float Poz = 0;
for (int j = 0; j < V.Count; j++)
{
if (Yonler[i][j] == "A")
Poz = LotList[i];
else if (Yonler[i][j] == "S")
Poz = -LotList[i];
else if (Yonler[i][j] == "F")
Poz = 0;
PozList[j] += Convert.ToInt32(Poz);
}
}
Sistem.Cizgiler[0].Deger = PozList;
Sistem.Cizgiler[1].Deger = Sistem.Liste(0);
Sistem.DolguEkle(0, 1, Color.FromArgb(120, 0, 255, 0), Color.FromArgb(120, 255, 0, 0));
// sistem son durumları yazdır
int Counter = -1;
foreach (var item in SonPozDictionary)
{
Counter++;
var RenkPoz = Color.Gold;
if (item.Value > 0)
RenkPoz = Color.LimeGreen;
else if (item.Value < 0)
RenkPoz = Color.Red;
Sistem.GradientYaziEkle(ParametreList[Counter], 1, 250, (Counter + 1) * 25, RenkPoz, RenkPoz, "Tahoma", 18);
Sistem.GradientYaziEkle(" : " + Math.Abs(item.Value).ToString("0"), 1, 450, (Counter + 1) * 25, RenkPoz, RenkPoz, "Tahoma", 18);
}
// al sat renklendir
var SonYon = "";
for (int i = 0; i < V.Count; i++)
{
if (PozList[i] > 0 && SonYon != "A")
Sistem.Yon[i] = "A";
else if (PozList[i] < 0 && SonYon != "S")
Sistem.Yon[i] = "S";
else if (PozList[i] == 0 && SonYon != "F")
Sistem.Yon[i] = "F";
if (Sistem.Yon[i] != "")
SonYon = Sistem.Yon[i];
}
// kar zarar hesapla
var Kasa = 0.0f;
var KZList = Sistem.Liste(0);
for (int i = 1; i < V.Count; i++)
{
if (PozList[i] != PozList[i - 1])
Kasa += -(PozList[i] - PozList[i - 1]) * C[i];
KZList[i] = Kasa + (PozList[i] * C[i]);
}
Sistem.Cizgiler[2].Deger = KZList;
// yazılar
//Sistem.GradientYaziEkle(Sistem.Name, 1, 20, 30, Color.Gold, Color.Gold, "Tahoma", 30);
//Sistem.GradientYaziEkle(DateTime.Now.ToString("dd/MMM/yyyy"), 1, 20, 80, Color.Gold, Color.Gold, "Tahoma", 30);
//Sistem.GradientYaziEkle(KZList[KZList.Count - 1].ToString("0"), 1, 20, 130, Color.Gold, Color.Gold, "Tahoma", 30);
var Sure = (DateTime.Now - V[0].Date).TotalDays / 30.4;
// gün
var DateGun = DateTime.Now.AddDays(-1);
var DateGunBarNo = 0;
for (int i = V.Count - 1; i > 0; i--)
{
if (V[i].Date.Day <= DateGun.Day)
{
DateGunBarNo = i;
break;
}
}
var GetiriGun = Math.Round((KZList[KZList.Count - 1] - KZList[DateGunBarNo]) * 100, 1);
// 1 ay
var Date1Ay = DateTime.Now.AddDays(-30);
var Date1AyBarNo = 0;
for (int i = V.Count - 1; i > 0; i--)
{
if (V[i].Date <= Date1Ay)
{
Date1AyBarNo = i;
break;
}
}
var Getiri1Ay = KZList[KZList.Count - 1] - KZList[Date1AyBarNo];
// 2 ay
var Date2Ay = DateTime.Now.AddDays(-60);
var Date2AyBarNo = 0;
for (int i = V.Count - 1; i > 0; i--)
{
if (V[i].Date <= Date2Ay)
{
Date2AyBarNo = i;
break;
}
}
var Getiri2Ay = KZList[KZList.Count - 1] - KZList[Date2AyBarNo];
// 3 ay
var Date3Ay = DateTime.Now.AddDays(-90);
var Date3AyBarNo = 0;
for (int i = V.Count - 1; i > 0; i--)
{
if (V[i].Date <= Date3Ay)
{
Date3AyBarNo = i;
break;
}
}
var Getiri3Ay = KZList[KZList.Count - 1] - KZList[Date3AyBarNo];
// 6 ay
var Date6Ay = DateTime.Now.AddDays(-180);
var Date6AyBarNo = 0;
for (int i = V.Count - 1; i > 0; i--)
{
if (V[i].Date <= Date6Ay)
{
Date6AyBarNo = i;
break;
}
}
var Getiri6Ay = KZList[KZList.Count - 1] - KZList[Date6AyBarNo];
// 12 ay
var Date12Ay = DateTime.Now.AddDays(-365);
var Date12AyBarNo = 0;
for (int i = V.Count - 1; i > 0; i--)
{
if (V[i].Date <= Date12Ay)
{
Date12AyBarNo = i;
break;
}
}
var Getiri12Ay = KZList[KZList.Count - 1] - KZList[Date12AyBarNo];
Sistem.GradientYaziEkle(Sure.ToString("0.0") + " Ay", 3, 10, 20, Color.Silver, Color.Silver, "Tahoma", 18);
Sistem.GradientYaziEkle(KZList[KZList.Count - 1].ToString("0.000"), 3, 180, 20, Color.Gold, Color.Gold, "Tahoma", 18);
Sistem.GradientYaziEkle("30 Gün", 3, 10, 50, Color.Silver, Color.Silver, "Tahoma", 18);
Sistem.GradientYaziEkle(Getiri1Ay.ToString("0.000"), 3, 180, 50, Color.Gold, Color.Gold, "Tahoma", 18);
Sistem.GradientYaziEkle("60 Gün", 3, 10, 80, Color.Silver, Color.Silver, "Tahoma", 18);
Sistem.GradientYaziEkle(Getiri2Ay.ToString("0.000"), 3, 180, 80, Color.Gold, Color.Gold, "Tahoma", 18);
Sistem.GradientYaziEkle("90 Gün", 3, 10, 110, Color.Silver, Color.Silver, "Tahoma", 18);
Sistem.GradientYaziEkle(Getiri3Ay.ToString("0.000"), 3, 180, 110, Color.Gold, Color.Gold, "Tahoma", 18);
Sistem.GradientYaziEkle("180 Gün", 3, 10, 140, Color.Silver, Color.Silver, "Tahoma", 18);
Sistem.GradientYaziEkle(Getiri6Ay.ToString("0.000"), 3, 180, 140, Color.Gold, Color.Gold, "Tahoma", 18);
Sistem.GradientYaziEkle("Yıl", 3, 10, 170, Color.Silver, Color.Silver, "Tahoma", 18);
Sistem.GradientYaziEkle(Getiri12Ay.ToString("0.000"), 3, 180, 170, Color.Gold, Color.Gold, "Tahoma", 18);
var Renk = Color.Gold;
if (GetiriGun > 0)
Renk = Color.LimeGreen;
else if (GetiriGun < 0)
Renk = Color.Red;
Sistem.GradientYaziEkle("BU GÜN", 3, 10, 230, Renk, Renk, "Tahoma", 18);
Sistem.GradientYaziEkle(GetiriGun.ToString("0.00"), 3, 180, 230, Renk, Renk, "Tahoma", 18);
var SonPoz = PozList[PozList.Count - 1];
Renk = Color.Gold;
if (SonPoz > 0)
Renk = Color.LimeGreen;
else if (SonPoz < 0)
Renk = Color.Red;
Sistem.GradientYaziEkle("POZISYON", 3, 10, 260, Renk, Renk, "Tahoma", 18);
Sistem.GradientYaziEkle(SonPoz.ToString("0"), 3, 180, 260, Renk, Renk, "Tahoma", 18);
Yer İmleri