
Originally Posted by
ozmen
Daha kolay bir yolu var mıdır acaba arkadaşlar.
PHP Code:
var Cycle = 10; // High Low istenen BAR aralığı için Cycle ile ölçüm yap
var Son = 65; // Close istenen bara uzaklık
var Veriler = Sistem.GrafikVerileriniOku(Sistem.Sembol, "30");
var sonbar = Veriler.Count-1;
var H3 = Sistem.HHV(Cycle, "Yuksek");
var L3 = Sistem.LLV(Cycle, "Dusuk");
var C = Sistem.Liste(0);
var H = Sistem.Liste(0);
var L = Sistem.Liste(0);
for (int i=1; i<Sistem.BarSayisi; i++)
{
C[i] = Veriler[sonbar-Son].Close;
H[i] = H3[sonbar-Son];
L[i] = L3[sonbar-Son];
}
Sistem.Cizgiler[0].Deger=H;
Sistem.Cizgiler[1].Deger=L;
Sistem.Cizgiler[2].Deger=C;
Teşekkürler Tiberius.
İki tarih arası OHLC değerlerini aşağıdaki formül gibi düzenledim. Formülün sade hali olabilir mi ve KZ eğrisinde nasıl kullanabiliriz.
Bol kazançlar.
PHP Code:
var V = Sistem.GrafikVerileri;
var Tarih1 = new DateTime(2019, 1, 2, 0, 0, 0);
var Tarih2 = new DateTime(2019, 5, 22, 0, 0, 0);
int BarSayac = 0;
for (int i = 0; i < V.Count; i++)
{
if (V[i].Date > Tarih2) break;
if (V[i].Date >= Tarih1) BarSayac++;
}
int SonBaraSay = 0;
for (int i = 0; i < V.Count; i++)
{
if (V[i].Date >= Tarih2) SonBaraSay++;
}
int ilkTarih= 0;
for (int i = 0; i < V.Count; i++)
{
if (V[i].Date >= Tarih1) ilkTarih++;
}
var O=Sistem.Liste(0);
var C=Sistem.Liste(0);
var H = Sistem.Liste(0);
var L = Sistem.Liste(0);
var HH = Sistem.HHV(BarSayac, "Yuksek");
var LL = Sistem.LLV(BarSayac, "Dusuk");
for (int i=888; i<V.Count; i++)
//for (int i = 0; i < V.Count; i++)
{
C[i] = V[i-SonBaraSay+1].Close;
O[i] = V[i-ilkTarih+1].Open;
H[i] = HH[i-SonBaraSay+1];
L[i] = LL[i-SonBaraSay+1];
}
Sistem.Cizgiler[0].Deger=O;
Sistem.Cizgiler[1].Deger=H;
Sistem.Cizgiler[2].Deger=L;
Sistem.Cizgiler[3].Deger=C;
Yer İmleri