
Originally Posted by
Hector Salamanca
düþünmenize gerek yokki tradingview de orjinal koda bir plot daha atýp bilmediðiniz deðiþkenin deðerine bakabilirsiniz 2 sn de

Saðolasýn hocam, bazen jeton düþmüyor
) Ama bar numarasýymýþ, ilk koda bakarken öyle gibi gelmesine raðmen mantýksýz gelmiþti, not yazmýþtým sadece.. Bölgeyi sadeleþtirdiðinde -1 çýkýyor, kafa mý karýþtýrmak istemiþ, onun mu kafa karýþýkmýþ anlamadým
Son bölümü de anonim arkadaþýn koduyla düzenledim..
Soran arkadaþ için kodun son hali ve görüntüler aþaðýda, flatten ve mult la oynamak lazým.. Þahsi fikrim Bollinger ve normal ortalamalara kasmak daha faydalý olur..
PHP Code:
/*
//@version=2
study("Pseudo Polynomial Channel",overlay=true)
length = input(14),morph = input(0.9,minval=0,maxval=1),mult = input(1.),flatten = input(1.)
//----
x = n
y = close
m(a,b) =>
p = morph * a + (1-morph) * b
k = nz(m(k[length],y),y) + (x-x[length])/(x[length*2]-x[length]) * (nz(m(k[length*2],y),y) - nz(m(k[length],y),y))/flatten
k1 = sma(k,length)
er = cum(abs(y-k1))/n * mult
//----
a = k1 + er
b = k1 - er
//----
A = plot(a,color=#2196f3,linewidth=2,transp=0)
plot(k1,color=#e65100,linewidth=2,transp=0)
B = plot(b,color=#ff1100,linewidth=2,transp=0)
fill(A,B,#2196f3,transp=95)
*/
var y = Sistem.GrafikFiyatSec("Kapanis");
int i=Sistem.BarSayisi-1;
int length=14;
float morph=0.9f;
int mult=1;
int flatten=1;
var a=Sistem.Liste(0);
var b=Sistem.Liste(0);
var k=Sistem.Liste(0);
for (int j = 100; j < Sistem.BarSayisi; j++)
{
var m = morph*k[j-length] + (1-morph)*y[j] ;
if(m==0) m=y[j];
var m2 = morph*k[j-length*2] + (1-morph)*y[j] ;
if(m2==0) m2=y[j];
var m1= (-1)*(m2-m)/flatten ;
k[j] = m+m1 ;
}
var k1=Sistem.MA(k, "Simple", length);
var k2= Sistem.Liste(0);
for (int j = 100; j < Sistem.BarSayisi; j++)
k2[j] = Math.Abs(y[j] - k1[j] ) ;
var er = Sistem.Sum(k2)/i*mult ;
for (int j = 100; j < Sistem.BarSayisi; j++)
{
a[j] = k1[j] + er ;
b[j] = k1[j] - er ;
}
Sistem.Cizgiler[0].Deger = k1;
Sistem.Cizgiler[1].Deger = a;
Sistem.Cizgiler[2].Deger = b;
Yer Ýmleri