arkadaşlar bunu ideale çevirebilirmisiniz
ALT ÇIZGI
TLLL:=VALUEWHEN(1,L>REF(L,-1),REF(L,-1));
TLLL
ÜST ÇIZGI
THHH:=VALUEWHEN(1,H>REF(H,-1),REF(H,-1));
THHH
|
|
Hocam yazdım ama ben yeni kullanıcıyım. Daha önce matriks kullanmışlığım da yok; biraz Php kodlama bilgim ve hazır indikatörlere bakarak yazdığım için daha basit ve verimli bir yolu olabilir.
Yaşar Erdinç Hoca'nın paylaştığı formül, verilen periyotta bist 100 ve hissenin yüzdesel değişimlerini kıyaslıyor..
Aşağıda vestel grafiğinde multi grafikte ikisine bakmakla, indikatörün çizgilerini inceleyebilirsiniz..
PHP Code:
//verilen periyotta yüzdesel hisse fiyatı ile xu100 değişimi
int P = 240;
var C = Sistem.GrafikFiyatSec("Kapanis");
var Veriler1 = Sistem.GrafikVerileri;
//var i=Sistem.BarSayisi-1;
var Sembol2 = "IMKBX'XU100";
var Veriler2 = Sistem.GrafikVerileriniOku(Sembol2, Sistem.Periyot);
Veriler2 = Sistem.GrafikVerilerindeTarihHizala(Veriler1, Veriler2);
var X = Sistem.GrafikFiyatOku(Veriler2 , "Kapanis");
var rC = Sistem.Ref(C,-P);
var rX = Sistem.Ref(X,-P);
var a = Sistem.Liste(0);
var b = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++){
a[i] = ((C[i]-rC[i])/rC[i])*100;
b[i] = ((X[i]-rX[i])/rX[i])*100;
}
Sistem.Cizgiler[0].Deger = a;
Sistem.Cizgiler[1].Deger = b;
Sistem.Cizgiler[2].Deger = 0;
arkadaşlar bunu ideale çevirebilirmisiniz
ALT ÇIZGI
TLLL:=VALUEWHEN(1,L>REF(L,-1),REF(L,-1));
TLLL
ÜST ÇIZGI
THHH:=VALUEWHEN(1,H>REF(H,-1),REF(H,-1));
THHH
Matriksin valuewhen fonksiyonunun(bunun idealde karşılığı var mı bilmediğimden) mantığını anladığım kadarıyla acemi işi şöyle oldu hocam,
PHP Code:
//Fiyat bölgesinde göster seçilir, panelden ilk iki çizgi aktif edilir. Panel numaraları 1’dir
var Veriler = Sistem.GrafikVerileri;
var H = Sistem.GrafikFiyatOku(Veriler,"Yuksek");
var L = Sistem.GrafikFiyatOku(Veriler,"Dusuk");
var a = Sistem.Liste(0);
var b = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if (H[i]>H[i-1]) a[i]=H[i-1] ;
else a[i]=a[i-1] ;
if (L[i]>L[i-1]) b[i]=L[i-1] ;
else b[i]=b[i-1] ;
}
//ekranda çizgi olarak göster
Sistem.Cizgiler[0].Deger = a;
Sistem.Cizgiler[1].Deger = b;
waluewhen li bir örnek
// Sistem , Valuewhen(2,c=h,c)
var Bars = Sistem.GrafikVerileri;
var Listem = Sistem.Liste(0);
for (int i = 1; i < Bars.Count; i++)
{
var Sayac= 0;
for (int j = i-1; j > 0; j--)
{
if (Bars[j].Close == Bars[j].High)
Sayac++;
if (Sayac >=2)
{
Listem[i] = Bars[j].Close;
break;
}
}
}
Sistem.Cizgiler[0].Deger = Listem;
Bear_Bull
@BearBull26
özelden ideale çevrilmesini istemişler
n1 := input("Channel Length", 1, 50, 10);
n2 := input("Average Length", 1, 100, 21);
seviye1 := 53;
seviye2 := -53;
ap := (H+L+C)/3;
esa := MOV(ap, n1, E);
d := MOV(abs(ap - esa), n1, E);
ci := (ap - esa) / (0.015 * d);
tci := MOV(ci, n2, E);
wt1 := tci;
wt2 := MOV(wt1, 4, S);
wt1-wt2; wt1; wt2; seviye1; seviye2:-60:60
Bear_Bull
@BearBull26
thy /garan 5dk veri elinde olan arkadaşlar atabilirmisiniz
tk
|
|
Aşağıdaki, kullanıcı tanımlı indikatöre, farklı renklerde 2 adet hareketli ortalama eklemek istiyorum. Nasıl yapabilirim.
Menüden hareketli ortalama eklenmiyor. Kod ile yapmak lazım galiba.
var senetadi = Sistem.Sembol;
var Data1 = Sistem.GrafikVerileriniOku(senetadi , Sistem.Periyot);
var D2 = "IMKBX'XU030";
var D1 = Sistem.GrafikVerileriniOku(D2, Sistem.Periyot);
D1 = Sistem.GrafikVerilerindeTarihHizala(Data1, D1);
var Cizgi = Sistem.Liste(Data1.Count, 0);
for (int i = 0; i<D1.Count; i++)
Cizgi[i] = Data1[i].Close / D1[i].Close ;
Sistem.Cizgiler[0].Deger = Cizgi;
var Renk11 = Sistem.Renk(255,255, 0, 1);
Sistem.ZeminYazisiEkle(senetadi + " / " + D2, 2, 30, 50, Renk11, "Tahoma", 10);
Yer İmleri