Arama sonucu : 4951 madde; 1 - 8 arası.

Konu: İDEAL veri terminalinde /Sistem/İndikatör/Robot

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1.  Alıntı Originally Posted by sonli Yazıyı Oku
    m büyük ihtimalle hareketli ortalama değişkeni. Ama kodun bütününü görmek lazım, bu sadece kod parçacığı..

    Geldik, gidiyoruz..
    Kod:
    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)

  2.  Alıntı Originally Posted by anonimm Yazıyı Oku
    Kod:
    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)
    Uğraştım biraz ama beceremedim, sıkıntı m değil, onunla fonksiyon tanımlıyor gibi birşey.. x ile neyi ifade ettiğini tam anlayamadım..
    m(a,b) yapısına şunu uygula diyor: morph * a + (1-morph) * b
    x ve y(kapanış normalde) rastgele tanımlayıp çizsin gerisine sonra bakarım dedim ama yemedi
    m çiziyor ama m1 olamadı..


    var C = Sistem.GrafikFiyatSec("Kapanis");
    int i=Sistem.BarSayisi-1;
    int length=14;
    float morph=0.9f;
    int mult=1;
    int flatten=1;
    var x=Sistem.GrafikFiyatSec("Yuksek"); //muhtemelen anlık fiyat ya da bar no
    var y=Sistem.Ref(C,-1);

    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= (x[j]-x[j-length])/( x[j-length*2]-x[j-length])*(m2-m)/flatten ;

    //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


    k[j] = m + m1;

    }

    Sistem.Cizgiler[0].Deger = k;
    Biçare gönüller! Ne giden son gemidir bu!
    Hicranlı hayatın ne de son matemidir bu.

  3.  Alıntı Originally Posted by sonli Yazıyı Oku
    Uğraştım biraz ama beceremedim, sıkıntı m değil, onunla fonksiyon tanımlıyor gibi birşey.. x ile neyi ifade ettiğini tam anlayamadım..
    m(a,b) yapısına şunu uygula diyor: morph * a + (1-morph) * b
    x ve y(kapanış normalde) rastgele tanımlayıp çizsin gerisine sonra bakarım dedim ama yemedi
    m çiziyor ama m1 olamadı..


    var C = Sistem.GrafikFiyatSec("Kapanis");
    int i=Sistem.BarSayisi-1;
    int length=14;
    float morph=0.9f;
    int mult=1;
    int flatten=1;
    var x=Sistem.GrafikFiyatSec("Yuksek"); //muhtemelen anlık fiyat ya da bar no
    var y=Sistem.Ref(C,-1);

    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= (x[j]-x[j-length])/( x[j-length*2]-x[j-length])*(m2-m)/flatten ;

    //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


    k[j] = m + m1;

    }

    Sistem.Cizgiler[0].Deger = k;
    Şöyle birşey olabilir

    Kod:
     // Pseudo Polynomial Channel
    
    var length = 14 ; //
    var lengthh = 2 * length ; 
    var morph = 0.9f ; 
    var mult = 1.0f ;
    var flatten = 1.0f ;
    
    var V = Sistem.GrafikVerileri ;
    var C = Sistem.GrafikFiyatOku(V, "Kapanis" ) ;
    var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ;
    var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ;
    var O = Sistem.GrafikFiyatOku(V, "Acilis" ) ;
    
    var x = Sistem.BarSayisi ;
    
    var xx =  -1 *  ( x - x + length )/( x - lengthh - x + length )  ;
    
     
    //var xx =  -1 * ( x -  length )/( x - lengthh - x + length )  ;
    
    var k= Sistem.Liste(0);
     
    
    
    for (int i = 50; i < V.Count; i++)
    
    k[i] = 
    
    morph * k[i-length]+ (1-morph) * C[i]  + 
    
    xx * (  morph * k[i-lengthh]+ (1-morph) * C[i] )  -  
    
     ( morph * k[i-length]+ (1-morph) * C[i] ) / flatten  ;
    
    
     
     
    
    
    
    
    
     
    
    var k1 = Sistem.MA(k, "Simple", length )  ;
    
    
    
    
    var k2= Sistem.Liste(0);
     
    
    
    for (int i = 50; i < V.Count; i++)
    {
    
    k2[i] = Math.Abs(C[i] - k1[i] ) ;
    
     
    
    }
    
    
    
    
    var er = Sistem.Sum(k2) / x * mult ;
    
     
    var a = Sistem.Liste(0);
    
    var b = Sistem.Liste(0);
    
    
    
    for (int i = 50; i < V.Count; i++)
    {
    
     
    
    a[i] = k1[i] + er  ;
    b[i] = k1[i] - er ;
     
    
    }
    
     
    
    
    Sistem.Cizgiler[0].Deger= a  ; //panel1
    Sistem.Cizgiler[1].Deger= b  ; //panel1

  4.  Alıntı Originally Posted by anonimm Yazıyı Oku
    Şöyle birşey olabilir

    Kod:
     // Pseudo Polynomial Channel
    
    var length = 14 ; //
    var lengthh = 2 * length ; 
    var morph = 0.9f ; 
    var mult = 1.0f ;
    var flatten = 1.0f ;
    
    var V = Sistem.GrafikVerileri ;
    var C = Sistem.GrafikFiyatOku(V, "Kapanis" ) ;
    var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ;
    var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ;
    var O = Sistem.GrafikFiyatOku(V, "Acilis" ) ;
    
    var x = Sistem.BarSayisi ;
    
    var xx =  -1 *  ( x - x + length )/( x - lengthh - x + length )  ;
    
     
    //var xx =  -1 * ( x -  length )/( x - lengthh - x + length )  ;
    
    var k= Sistem.Liste(0);
     
    
    
    for (int i = 50; i < V.Count; i++)
    
    k[i] = 
    
    morph * k[i-length]+ (1-morph) * C[i]  + 
    
    xx * (  morph * k[i-lengthh]+ (1-morph) * C[i] )  -  
    
     ( morph * k[i-length]+ (1-morph) * C[i] ) / flatten  ;
    
    
     
     
    
    
    
    
    
     
    
    var k1 = Sistem.MA(k, "Simple", length )  ;
    
    
    
    
    var k2= Sistem.Liste(0);
     
    
    
    for (int i = 50; i < V.Count; i++)
    {
    
    k2[i] = Math.Abs(C[i] - k1[i] ) ;
    
     
    
    }
    
    
    
    
    var er = Sistem.Sum(k2) / x * mult ;
    
     
    var a = Sistem.Liste(0);
    
    var b = Sistem.Liste(0);
    
    
    
    for (int i = 50; i < V.Count; i++)
    {
    
     
    
    a[i] = k1[i] + er  ;
    b[i] = k1[i] - er ;
     
    
    }
    
     
    
    
    Sistem.Cizgiler[0].Deger= a  ; //panel1
    Sistem.Cizgiler[1].Deger= b  ; //panel1
    Savitzky-Golay kullanarak yumuşatmış eleman ama sizinki sanki sert olmuş gibi.
    şöyle olursa en azından mid sapmaz gibi. sanırım sum olduğundan up ve down çizgileri farklı periyotlarda bar sayısı ve duyarlılık gibi nedenlerle farklılaşabilir. paramla ayarlanır gerçi onlarda.

    bence framanın TTI ını alıp kanal yapmaktan daha iyi gibi, hemde bedava

    PHP Code:
    /* https://www.tradingview.com/script/qusoEeMf-Pseudo-Polynomial-Channel/ */

    var Sistem.GrafikVerileri ;
    var 
    Sistem.GrafikFiyatOku(V"Kapanis");

    var    
    length  14;
    var    
    morph   0.9f;  
    float  mult    1f;
    var    
    flatten 1f;

    var 
    Up Sistem.Liste(0);
    var 
    Down Sistem.Liste(0);
    var 
    Sistem.Liste(0);
    var 
    kcum=0f;

    for (
    int i length*C.Counti++)
    {
       
    k[i] =    (morph k[i-length] + (1-morph) * C[i] )
               + (
    - (i+length) )
               / ( (
    i+length*2f)  - (i+length)  )
               * (
                    (
    morph k[i-length*2] + (1f-morph) * C[i] )
                  - (
    morph k[i-length]   + (1f-morph) * C[i] )
                 )
               / 
    flatten;
    }

    var 
    k1 Sistem.MA(k"Simple"length  );

    for (
    int i length*C.Counti++)
    {
      
    kcum += Math.Abs(C[i] - k1[i] );  
      
    float er kcum mult
      
    Up[i]    = ( k1[i] + er);
      
    Down[i]  = ( k1[i] - er);
    }

    Sistem.Cizgiler[0].Deger Up;
    Sistem.Cizgiler[1].Deger k1;
    Sistem.Cizgiler[2].Deger Down

  5.  Alıntı Originally Posted by anonimm Yazıyı Oku
    Şöyle birşey olabilir

    Kod:
     // Pseudo Polynomial Channel
    
    var length = 14 ; //
    var lengthh = 2 * length ; 
    var morph = 0.9f ; 
    var mult = 1.0f ;
    var flatten = 1.0f ;
    
    var V = Sistem.GrafikVerileri ;
    var C = Sistem.GrafikFiyatOku(V, "Kapanis" ) ;
    var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ;
    var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ;
    var O = Sistem.GrafikFiyatOku(V, "Acilis" ) ;
    
    var x = Sistem.BarSayisi ;
    
    var xx =  -1 *  ( x - x + length )/( x - lengthh - x + length )  ;
    
     
    //var xx =  -1 * ( x -  length )/( x - lengthh - x + length )  ;
    
    var k= Sistem.Liste(0);
     
    
    
    for (int i = 50; i < V.Count; i++)
    
    k[i] = 
    
    morph * k[i-length]+ (1-morph) * C[i]  + 
    
    xx * (  morph * k[i-lengthh]+ (1-morph) * C[i] )  -  
    
     ( morph * k[i-length]+ (1-morph) * C[i] ) / flatten  ;
    
    
     
     
    
    
    
    
    
     
    
    var k1 = Sistem.MA(k, "Simple", length )  ;
    
    
    
    
    var k2= Sistem.Liste(0);
     
    
    
    for (int i = 50; i < V.Count; i++)
    {
    
    k2[i] = Math.Abs(C[i] - k1[i] ) ;
    
     
    
    }
    
    
    
    
    var er = Sistem.Sum(k2) / x * mult ;
    
     
    var a = Sistem.Liste(0);
    
    var b = Sistem.Liste(0);
    
    
    
    for (int i = 50; i < V.Count; i++)
    {
    
     
    
    a[i] = k1[i] + er  ;
    b[i] = k1[i] - er ;
     
    
    }
    
     
    
    
    Sistem.Cizgiler[0].Deger= a  ; //panel1
    Sistem.Cizgiler[1].Deger= b  ; //panel1
    Hocam x i böyle tanımlarsak x ve length ler sadeleşip geriye xx=1/length kalıyor. Adam böyle kodlamazdı herhalde, o sebeple bar sayısı değil diye düşünmüştüm..

    var xx = -1 * ( x - x + length )/( x - lengthh - x + length ) ;
    Biçare gönüller! Ne giden son gemidir bu!
    Hicranlı hayatın ne de son matemidir bu.

  6.  Alıntı Originally Posted by sonli Yazıyı Oku
    Hocam x i böyle tanımlarsak x ve length ler sadeleşip geriye xx=1/length kalıyor. Adam böyle kodlamazdı herhalde, o sebeple bar sayısı değil diye düşünmüştüm..

    var xx = -1 * ( x - x + length )/( x - lengthh - x + length ) ;
    düşünmenize gerek yokki tradingview de orjinal koda bir plot daha atıp bilmediğiniz değişkenin değerine bakabilirsiniz 2 sn de

  7.  Alıntı Originally Posted by Hector Salamanca Yazıyı Oku
    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 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 100Sistem.BarSayisij++)

    var 
    morph*k[j-length] + (1-morph)*y[j] ;
    if(
    m==0m=y[j];
    var 
    m2 morph*k[j-length*2] + (1-morph)*y[j] ;
    if(
    m2==0m2=y[j];
    var 
    m1= (-1)*(m2-m)/flatten  ;
    k[j] =  m+m1 ;
    }
    var 
    k1=Sistem.MA(k"Simple"length);

    var 
    k2Sistem.Liste(0);
    for (
    int j 100Sistem.BarSayisij++)
    k2[j] = Math.Abs(y[j] - k1[j] ) ;

    var 
    er Sistem.Sum(k2)/i*mult ;
    for (
    int j 100Sistem.BarSayisij++)

    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
    Biçare gönüller! Ne giden son gemidir bu!
    Hicranlı hayatın ne de son matemidir bu.

Yer İmleri

Yer İmleri

Gönderi Kuralları

  • Yeni konu açamazsınız
  • Konulara cevap yazamazsınız
  • Yazılara ek gönderemezsiniz
  • Yazılarınızı değiştiremezsiniz
  •