Bear_Bull Hocam anlatmýþ sað olsun, ama kodun tamamýný açýklamalý þekilde incelerseniz daha iyi anlaþýlýr. Daha önce þurada
https://www.hisse.net/topluluk/showt...66#post3516466 paylaþtýðým kodu tamamen açýklamaya çalýþtým. Kitabýn açýklamasýna göre yazmýþtým hatalý olmadýysa.. Yalnýz burada sadece satýþ þartý var, alým þartý olmadýðýndan eski yüksek geçilene kadar takip etmez, dolayýsýyla sabit gider.. Sistem deðil de son x bar için iz süren stop indikatörü bu haliyle.. Bahsettiðiniz kod parçasý ise sadece alttaki kodda stop þartýný deðiþtirmek amacý taþýyor. Alttaki haliyle;
stop=Son yüksek barýn düþüðü - puan
iken, üstteki kod parçacýðýný ilgili bölüm ile deðiþtirirseniz þu hale döner:
stop = Eski stop + (yeni yüksek- bir önceki yüksek)
Bu arada deðiþtirecek olursanýz, yukarýdaki kodda b[i] =b[i-1]+( H[i-1]-a[i-1]); sondaki ; eksik kalmýþ..
PHP Code:
//Fiyat bölgesi indikatörü olarak son x bar için iz süren stop
//(stop= son x bardaki her yeni en yüksek barýn düþüðü -belirlenen puan)..
var bars = 100;//son kaç barý takip edecek
var puan = 0.10f;//stop=düþük-puan..10 kuruþ düþürerek takip edecek bu haliyle
var C = Sistem.GrafikFiyatSec("Kapanis");
var H = Sistem.GrafikFiyatSec("Yuksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var a = Sistem.Liste(0);//yüksek listesi
var b = Sistem.Liste(0);//stop
var SonYon = "";
for (int i = Sistem.BarSayisi-bars; i < Sistem.BarSayisi; i++)
{
//Sondan bir önceki barýn(i-1) yükseði, son yükseðimizden büyük mü? yani yeni yüksek var mý?
if (H[i-1]>a[i-1] ) { //yeni yüksek var mý
//varsa
a[i] =H[i-1];//sonraki barlarda kýyaslamak için a ya yeni yükseði atýyoruz
//son stop seviyemiz b, yeni yüksek barýmýzýn (düþüðü-puan) dan düþük mü? düþükse stobu yukarý taþýyacaðýz, deðilse eski stop devam..
if (b[i-1]<(L[i-1]-puan)) b[i] =L[i-1]-puan; //eski stop düþük kaldý, yeni stop b=son yükseðin düþüðü-puan
else b[i] =b[i-1] ; //eski stop daha yukarýda, o zaman eskimemiþ, ayný stopla devam
} else { //yeni yüksek yok, o zaman yüksek ve stop listemiz eskilerle devam ediyor
a[i] =a[i-1] ;
b[i] =b[i-1] ;
}
if (C[i]<b[i] && SonYon !="S") // Fiyat stop altý, SAT
{
SonYon = Sistem.Yon[i] = "S";
}
}
Sistem.Cizgiler[0].Deger = a;
Sistem.Cizgiler[1].Deger = b;
Yer Ýmleri