Sayfa 11/32 İlkİlk ... 91011121321 ... SonSon
Arama sonucu : 255 madde; 81 - 88 arası.

Konu: Yeni İndikatörler

  1.  Alıntı Originally Posted by stradivarius Yazıyı Oku
    Orhan hocam bandpass faslinda gonderdiginiz listede "autocorrelation periodogram" yeni sayilir cevirirseniz makbule gecer.
    Listemde vardı, paylaşacağım zaten

    Question 2:
    What is the best way to measure market cycles?

    Answer 2:
    I originally developed the MESA algorithm to measure market cycles because I knew that FFTs, etc. were inappropriate because the cycles are ephemeral.
    MESA gives a high resolution answer using only a short amount of data, crucial because of the short term nature of market cycles.
    However, market data has the spectral shape of pink noise, requiring filter compensate to equalize the response.
    I now think the best way to measure market cycles is by using an autocorrelation periodogram because the correlation swings between -1 and +1 regardless of the cycle period.
    The complete code for an autocorrelation periodogram is contained in my Cycles Analytics for Traders book.


    https://www.mesasoftware.com/mesa_faq.htm

  2.  Alıntı Originally Posted by Orhan AKDOĞAN Yazıyı Oku
    Laguerre Filter

    Oldukça eski aslında fakat forumda ve sistemde göremedim.

    John Ehlers Article: 'Time Warp Without Space Travel'
    http://www.stockspotter.com/Files/timewarp.pdf

    PHP Code:
    //Laguerre Filter

    //Ayarlar
    var alpha 0.2f;

    //Veriler
    var Sistem.GrafikVerileri
    var 
    Price Sistem.GrafikFiyatOku(V"OrtaNokta");

    //Değişkenler
    var LaguerreSistem.Liste(0); 
    var 
    FIRSistem.Liste(0); 
    var 
    L0Sistem.Liste(0); 
    var 
    L1Sistem.Liste(0); 
    var 
    L2Sistem.Liste(0); 
    var 
    L3Sistem.Liste(0); 

    //Hesaplamalar
    for (int i 4Price.Counti++)

     
    L0[i] = ((1-alpha) * Price[i]) + alpha * (L0[i-1]);
     
    L1[i] = (-alpha L0[i])+ L0[i-1] + (alpha L1[i-1]);
     
    L2[i] = (-alpha L1[i])+ L1[i-1] + (alpha L2[i-1]);
     
    L3[i] = (-alpha L2[i])+ L2[i-1] + (alpha L3[i-1]);
     
    Laguerre[i] = (L0[i]+2*L1[i]+2*L2[i]+L3[i])/6;
     
    FIR[i] = (Price[i] + 2*Price[i-1] + 2*Price[i-2] + Price[i-3]) / 6;
    }

    //Çizgiler
    Sistem.Cizgiler[0].Deger Laguerre;
    Sistem.Cizgiler[1].Deger FIR

    https://prnt.sc/lpkejw
    Düzeltme:

    PHP Code:
    //Laguerre Filter

    //Ayarlar
    var alpha 0.8f;

    //Veriler
    var Sistem.GrafikVerileri
    var 
    Price Sistem.GrafikFiyatOku(V"OrtaNokta");

    //Değişkenler
    var LaguerreSistem.Liste(0); 
    var 
    FIRSistem.Liste(0); 
    var 
    L0Sistem.Liste(0); 
    var 
    L1Sistem.Liste(0); 
    var 
    L2Sistem.Liste(0); 
    var 
    L3Sistem.Liste(0); 

    //Hesaplamalar
    for (int i 4Price.Counti++)

     
    L0[i] = alpha*Price[i] + (alpha)*L0[i-1];  
     
    L1[i] = -(alpha)*L0[i] + L0[i-1] + (alpha)*L1[i-1];
     
    L2[i] = -(alpha)*L1[i] + L1[i-1] + (alpha)*L2[i-1];
     
    L3[i] = -(alpha)*L2[i] + L2[i-1] + (alpha)*L3[i-1];
     
    Laguerre[i] = (L0[i]+2*L1[i]+2*L2[i]+L3[i])/6
     
    FIR[i] = (Price[i] + 2*Price[i-1] + 2*Price[i-2] + Price[i-3]) / 6;
    }

    //Çizgiler
    Sistem.Cizgiler[0].Deger Laguerre;
    Sistem.Cizgiler[1].Deger FIR

  3. Laguerre Adaptive Filter

    Laguerre Adaptive Filter

    John Ehlers Article: 'Time Warp Without Space Travel'
    http://www.stockspotter.com/Files/timewarp.pdf

    PHP Code:
    //Laguerre Adaptive Filter

    //Ayarlar
    int Length 14;
    int Median 5;

    //Veriler
    var Sistem.GrafikVerileri
    var 
    Price Sistem.GrafikFiyatOku(V"OrtaNokta");

    //Değişkenler
    var LaguerreAdaptiveFilterSistem.Liste(0); 
    var 
    FIRSistem.Liste(0); 
    var 
    L0Sistem.Liste(0); 
    var 
    L1Sistem.Liste(0); 
    var 
    L2Sistem.Liste(0); 
    var 
    L3Sistem.Liste(0); 

    var 
    DiffSistem.Liste(0); 
    var 
    HHSistem.Liste(0); 
    var 
    LLSistem.Liste(0); 
    var 
    MedSistem.Liste(0); 
    var 
    DLHSistem.Liste(0); 

    //Hesaplamalar
    if(Median Length Median Length-1;
    for (
    int i Length+1Price.Counti++)

        
    Diff[i] = Math.Abs(Price[i] - LaguerreAdaptiveFilter[i-1]);
        
    HH[i] = Diff[i];LL[i] = Diff[i];


        for(
    int j 0Length j++) 
        {
          if (
    Diff[i-j] > HH[i]) HH[i] = Diff[i-j];
          if (
    Diff[i-j] < LL[i]) LL[i] = Diff[i-j];
        }

       if (
    Diff[i] - LL[i] != && HH[i] - LL[i] != 0)  DLH[i] = (Diff[i] - LL[i]) / (HH[i] - LL[i]); else DLH[i] = 0;
        
       for (
    int count 0count Mediancount++) Med[i-count] = DLH[i-count];

       
    bool swapped true;
       
    double temp;
       while (
    swapped)
       {
        
    swapped false;
        for (
    int count 0count Median count++)
        {    
            if (
    Med[i-count] > Med[i-count 1])
            { 
                
    temp Med[i-count];    
                
    Med[i-count] = Med[i-count -];
                
    Med[i-count -1] = (float)temp
                
    swapped true;
            }
        }
       }

     
    float alpha Med[i-2];

     
    L0[i] = alpha*Price[i] + (alpha)*L0[i-1];  
     
    L1[i] = -(alpha)*L0[i] + L0[i-1] + (alpha)*L1[i-1];
     
    L2[i] = -(alpha)*L1[i] + L1[i-1] + (alpha)*L2[i-1];
     
    L3[i] = -(alpha)*L2[i] + L2[i-1] + (alpha)*L3[i-1];
     
    LaguerreAdaptiveFilter[i] = (float)(L0[i]+2*L1[i]+2*L2[i]+L3[i])/6
    }

    //Çizgiler
    Sistem.Cizgiler[0].Deger LaguerreAdaptiveFilter

    https://prnt.sc/lpqa3f

  4.  Alıntı Originally Posted by Orhan AKDOĞAN Yazıyı Oku
    fiyatla birlikte giden çizgi için Sistem.MA(C, "Exp",2); kullanabilirsiniz.
    uygulama örneği de önceki mesajda yazdım zaten, score ile ortalamasının kesişimini strateji yapabilirsiniz.
    Hocam eğer mümkünse 30 dk lık grafik verilerini 5 dk çevirebilecek örnek bi kod yazabilir misiniz?
    Tesekkür ederim katkılarınız için

  5.  Alıntı Originally Posted by tuncahm Yazıyı Oku
    Hocam eğer mümkünse 30 dk lık grafik verilerini 5 dk çevirebilecek örnek bi kod yazabilir misiniz?
    Tesekkür ederim katkılarınız için
    Bu tip sorular diğer başlıkta olursa daha iyi olur.

    PHP Code:
    var V_30  Sistem.GrafikVerileriniOku(Sistem.Sembol"30");  
    var 
    C_30 Sistem.GrafikFiyatOku(V_30 "Kapanis");           

    var 
    Kapanislar30 Sistem.DonemCevir(Sistem.GrafikVerileriV_30C_30);   

    Sistem.Cizgiler[0].Deger Kapanislar30 ;   //Panel 1 

  6.  Alıntı Originally Posted by Orhan AKDOĞAN Yazıyı Oku
    Kod:
    var V_30  = Sistem.GrafikVerileriniOku(Sistem.Sembol, "30");  
    var C_30 = Sistem.GrafikFiyatOku(V_30 , "Kapanis");           
    
    
    var Kapanislar30 = Sistem.DonemCevir(Sistem.GrafikVerileri, V_30, C_30);   
    
    
    Sistem.Cizgiler[0].Deger = Kapanislar30 ;   //Panel 1
    hocam çok tesekkür ederim

  7. Autocorrelation Periodogram

     Alıntı Originally Posted by stradivarius Yazıyı Oku
    Orhan hocam bandpass faslinda gonderdiginiz listede "autocorrelation periodogram" yeni sayilir cevirirseniz makbule gecer.
    Hantal ve pratik de kullanması çok zordur.
    Mesa Phasor'un çevrimini buraya atsaydım daha iyi anlaşılırdı aslında

    Autocorrelation Periodogram

    The Autocorrelation Periodogram was published in the September 2016 Stocks and Commodities article titled Measuring Market Cycles by John F. Ehlers.
    PHP Code:
    //Autocorrelation Periodogram

    //Ayarlar
    int HPeriod =48;   //High-pass Period

    //Veriler
    var Sistem.GrafikVerileri ;
    var 
    Sistem.GrafikFiyatOku(V"Kapanis") ;
    var 
    Sistem.GrafikFiyatOku(V"Yuksek") ;
    var 
    Sistem.GrafikFiyatOku(V"Dusuk") ;
    var 
    Sistem.GrafikFiyatOku(V"Acilis") ;

    //Değişkenler
    var DominantCycleSistem.Liste(0); 
    List<
    doubleHP= new List<double>(new double[C.Count]);
    List<
    doubleFilt= new List<double>(new double[C.Count]);
    int AvgLength3;
    int M0;
    int N0;
    double X0;
    double Y0;
    double alpha10;
    double a10;
    double b10;
    double c10;
    double c20;
    double c30;
    int Lag0;
    int count0;
    double Sx0;
    double Sy0;
    double Sxx0;
    double Syy0;
    double Sxy0;
    int Period0;
    double Sp0;
    double Spx0;
    double MaxPwr0;
    double PeakPwr0;
    int Color10;
    int Color20;
    int Color30;
            
    double[] Corr = new double[700];
    double[] CosinePart = new double[700];
    double[] SinePart = new double[700];
    double[] SqSum = new double[700];
    double[,] = new double[700,3];
    double[] Pwr = new double[700];

    //Hesaplamalar
    for (int i 100C.Counti++)

      
    DominantCycle[i] = 0;
      
    PeakPwr 0;
      
    Spx     0;
      
    Sp     0;

        
    HP[i]        = Math.Round(0.94*(C[i] - C[i-1]) + 0.88*HP[i-1], 2);
        
    Filt[i]     = Math.Round(0.35*(HP[i] + HP[i-1]) / 0.98*Filt[i-1] + -0.33*Filt[i-2], 2);


        for (
    Lag 0Lag <= HPeriod Lag++)
        {
            
    M     AvgLength != AvgLength Lag;
            
            
    Sx     0Sy 0Sxx 0Syy 0Sxy 0;
            for (
    count 0count Mcount++)
            {
                
    X     Filt[i-count];
                
    Y     Filt[i-Lag count];
                
    Sx     Sx X;
                
    Sy     Sy Y;
                
    Sxx Sxx X*X;
                
    Sxy Sxy X*Y;
                
    Syy Syy Y*Y;
            }
            
            if ((
    M*Sxx Sx*Sx)*(M*Syy Sy*Sy) > 0)
            {
                
    Corr[Lag] = Math.Round((M*Sxy Sx*Sy)/Math.Sqrt((M*Sxx Sx*Sx)*(M*Syy Sy*Sy)), 2);
            }
        }

        for (
    Period 8Period <= HPeriod Period++)
        {
                
            
    CosinePart[Period]     = 0;
            
    SinePart[Period]     = 0;
            
            for (
    3<= HPeriod N++)
            {
                
    CosinePart[Period]     = Math.Round(CosinePart[Period] + Corr[N]*Math.Cos(((360*Period) * Math.PI) / 180), 2);
                
    SinePart[Period]     = Math.Round(SinePart[Period] + Corr[N]*Math.Sin(((360*Period) * Math.PI) / 180), 2);
            }
            
    SqSum[Period] = Math.Round(CosinePart[Period]*CosinePart[Period] + SinePart[Period]*SinePart[Period], 2);
        }
        for (
    Period 7Period HPeriod Period++)
        {
            
    R[Period1] = R[Period0];
            
    R[Period0] = Math.Round(0.2*SqSum[Period]*SqSum[Period] + .8*R[Period1], 2);
        }

        
    MaxPwr 0;
        for (
    Period 7Period HPeriod Period++)
        {
            if (
    R[Period0] > MaxPwr)
                
    MaxPwr R[Period0];
        }
        for (
    Period 7Period HPeriod Period++)
        {
            
    Pwr[Period] = R[Period0] / MaxPwr;
        }
            
        if (
    false)
        {
            for (
    Period 8Period HPeriod Period++)
            {
                
    Pwr[Period] = Math.Pow(Pwr[Period], 3);
            }
        }

        for (
    Period 7Period HPeriod Period++)
        {
            if (
    Pwr[Period] > PeakPwr)
                
    PeakPwr Pwr[Period];
        }
        
        for (
    Period 7Period HPeriod Period++)
        {                
            if (
    PeakPwr >= 0.25 && Pwr[Period] >= 0.25)
            {
                
    Spx Spx Period*Pwr[Period];
                
    Sp Sp Pwr[Period];
            }
        }
        
        if (
    Sp != 0)
            
    DominantCycle[i] = (float)( Spx Sp);
        if (
    Sp 0.25)
            
    DominantCycle[i] = (float)(DominantCycle[i-1]);
    }

    //Çizgiler
    Sistem.Cizgiler[0].Deger DominantCycle

    https://prnt.sc/lpuezc

  8. Merhabalar..

    Orhan bey filtre paylaşımlarınız fiyat bölgesinde olanlar bir ortalama çizgisi gibi çalışıyor.

    normal ortalamalara göre avantaj ve dezavantajları nedir ?

    tşk

Sayfa 11/32 İlkİlk ... 91011121321 ... SonSon

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
  •