Bu konuda yardımcı olabilecek kimse yok mudur? Bu hale getirdim en son çorba olduiyice. El attığım yer kuruyor foruma da kimse uğramaz olmuş.


var Short = new List<float>();
var Long = new List<float>();
//istediğiniz kadar destek ve direnç seviyeesi ekleyebilirsiniz.
//Seviyeler küçükten büyüğe doğru gitmeli.

Short.Add(121.300F);
Long.Add(123.450F);

var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");

for (int i = 0; i < Short.Count; i++)
{
Sistem.Cizgiler[i + 10].ActiveBool = true;
Sistem.Cizgiler[i + 10].Deger = Sistem.Liste(Short[i]);
Sistem.Cizgiler[i + 10].Panel = 1;
Sistem.Cizgiler[i + 10].Renk = Color.IndianRed;
Sistem.Cizgiler[i + 10].Stil = 2;
}

for (int i = 0; i < Long.Count; i++)
{
Sistem.Cizgiler[i + 11].ActiveBool = true;
Sistem.Cizgiler[i + 11].Deger = Sistem.Liste(Long[i]);
Sistem.Cizgiler[i + 11].Panel = 1;
Sistem.Cizgiler[i + 11].Renk = Color.IndianRed;
Sistem.Cizgiler[i + 11].Stil = 2;
}

var KesimYonu = 0;
var KesimSeviyesi = 0.0;
var Adim = 0.200f; //Çizgi kırıldıktan sonra 250 puan daha giderse AL (vey SAT)

var SonYon = "";
for (int i = 1; i < V.Count; i++)
{
for (int l = 0; l < Long.Count; l++)
{
if (C[i - 1] < Long[l] && C[i] >= Long[l])
{
KesimYonu = 1;
KesimSeviyesi= Long[l];
}
else if (C[i - 1] > Long[l] && C[i] <= Long[l])
{
KesimYonu = 0;
KesimSeviyesi = Long[l];
}
}

for (int s = 0; s < Short.Count; s++)
{
if (C[i - 1] < Short[s] && C[i] >= Short[s])
{
KesimYonu = -1;
KesimSeviyesi= Short[s];
}
else if (C[i - 1] > Short[s] && C[i] <= Short[s])
{
KesimYonu = 0;
KesimSeviyesi = Short[s];
}
}
//------------------------------------------------------------------------------
if (KesimYonu == 1 && C[i] >= KesimSeviyesi + Adim && SonYon != "A")
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}

if (KesimYonu == -1 && C[i] <= KesimSeviyesi + Adim && SonYon != "F")//eklenen
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}

if (KesimYonu == -1 && C[i] <= KesimSeviyesi - Adim && SonYon != "S")
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}

if (KesimYonu == 1 && C[i] >= KesimSeviyesi - Adim && SonYon != "F")//eklenen
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}
}

 Alıntı Originally Posted by vbhamza Yazıyı Oku
Merhabalar
İdealde var olan YataySeviyeler isimli kodu bahsedeceğim şekilde değiştirmek istiyorum, yardımcı olur musunuz?

2 tane seviye seçeceği olacak manuel olarak 2 rakam belirticem, rakamlar arası flat olucak onun haricinde üstünde long altında short şeklinde.

Yani Long seviyenin 100 puan üstünde long olcak, aynı seviyenin 100 puan altında flat olcak. aynı işlem short içinde geçerli..

var Seviyeler = new List<float>();
//istediğiniz kadar destek ve direnç seviyeesi ekleyebilirsiniz.
//Seviyeler küçükten büyüğe doğru gitmeli.
Seviyeler.Add(112.000F);
Seviyeler.Add(114.000F);
Seviyeler.Add(116.000F);
Seviyeler.Add(118.000F);
Seviyeler.Add(120.000F);
Seviyeler.Add(122.000F);
Seviyeler.Add(124.000F);

var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");

for (int i = 0; i < Seviyeler.Count; i++)
{
Sistem.Cizgiler[i + 10].ActiveBool = true;
Sistem.Cizgiler[i + 10].Deger = Sistem.Liste(Seviyeler[i]);
Sistem.Cizgiler[i + 10].Panel = 1;
Sistem.Cizgiler[i + 10].Renk = Color.IndianRed;
Sistem.Cizgiler[i + 10].Stil = 2;
}

var KesimYonu = 0;
var KesimSeviyesi = 0.0;
var Adim = 0.250f; //Çizgi kırıldıktan sonra 250 puan daha giderse AL (vey SAT)
var SonYon = "";
for (int i = 1; i < V.Count; i++)
{
for (int j = 0; j < Seviyeler.Count; j++)
{
if (C[i - 1] < Seviyeler[j] && C[i] >= Seviyeler[j])
{
KesimYonu = 1;
KesimSeviyesi= Seviyeler[j];
}
else if (C[i - 1] > Seviyeler[j] && C[i] <= Seviyeler[j])
{
KesimYonu = -1;
KesimSeviyesi = Seviyeler[j];
}
}
if (KesimYonu == 1 && C[i] >= KesimSeviyesi + Adim && SonYon != "A")
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}
if (KesimYonu == -1 && C[i] <= KesimSeviyesi - Adim && SonYon != "S")
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
KesimYonu = 0;
}
}