Hurst üssü - sayfa 22

 
faa1947 >> :

bilmiyorum. Öncelikle VR modelini tanımlamanız gerekir. Eğilimler, döngüler, gürültü ve çalışanlardan modelin çalışmadığı parametrelere kadar farklı parametreler içerebilir. Box, farklı parametre setlerine sahip birkaç modeli dikkate alır. En azından Box'ın tanımladığı şeyi alıp onlar için Hurst'u hesaplarsak, farklı değerler veya algoritmalarla aynı Hurst olacak veya farklı olacaktır.
Hurst'u çeşitli forumlarda ve literatürde sayma girişimlerini gördüm. Tek bir uygulanabilir değil. Bu, yukarıdaki düşüncelere yol açtı.

"İşe yarayacak tek bir tane bile yok" cümlenizden utandım. "... ve edebiyatta" kelimelerinden sonra. Literatürde birbirinden biraz farklı sonuçlar veren birçok farklı yaklaşım var ki bu şaşırtıcı değil. bunların hepsi tahmindir. Ancak, örneklem ne kadar büyük olursa, bu tahminlerin o kadar doğru olması gerektiği ve birbirlerine o kadar “eşit” oldukları da doğrudur. Sadece forumlarda uygulanabilir bir Hurst algoritması bulmanın zor olduğu gerçeğine katılıyorum.

Algoritmanın girdisine ne gönderileceğine gelince, algoritma umursamıyor. Bir fiyat gönderin - bir civarında bir şey alın. Yine de, algoritmanın özü için fiyatın güçlü bir uzun vadeli hafızası vardır, çünkü orijinal değerlerden oldukça uzaktır. Fiyat artışlarını gönderin - yine haklı olan 0,5 gibi bir şey elde edersiniz, çünkü. karşılaştırmalı değişiklikleri büyük ve neredeyse rastgele. Trendleri ve/veya döngüleri eşleştirin - kalıcılık kazanın. Gürültü genellikle üssü azaltır. Sorunun şu olduğunu görüyorum: "fiyatımız gürültülü mü yoksa dürüst bir piyasa fiyatı mı?" - bu Hurst algoritmasının konusu değil, bu başka bir alem.

 
Max_21 >> :

Lütfen bana RS analizinde analiz edilen VR'nin uzunluğunun nasıl seçildiğini söyleyin.

Genel olarak, ne kadar çok o kadar iyi. Peters'ın kitabındaki algoritmaya göre, en fazla tamsayı bölenine sahip uzunluk daha iyidir.

 
Max_21 >> :

Lütfen bana RS analizinde analiz edilen VR'nin uzunluğunun nasıl seçildiğini söyleyin.

İki model var:

1. İşlemin "kararlı" bir Hurst üssü vardır. Onlar. gösterge sabittir ve zaman içinde (tüm sürecin varlığı boyunca) hiçbir şekilde değişmez. Bu durumda, bunu belirlemek için en azından istatistiksel olarak anlamlı bir alan alınır, yani. sürecin dağılımının güvenli bir şekilde değerlendirilmesine izin veren böyle bir bölüm. Veya rahatsız etmeden - mümkün olduğunca.

2. Gösterge, muhtemelen çok karmaşık, muhtemelen rastgele bir fonksiyondur. Bu durumda, VR'nin uzunluğunu seçmek için nesnel bir kriter yoktur. Bir psişik değilseniz, genel durum için göstergenin değerlendirilmesi ne zaman ne de frekans alanlarında imkansızdır.

Daha da önemlisi, RS analizi en kaba yöntemlerden biridir, tahmini her zaman taraflıdır ve örnek boyutu hiçbir şekilde yardımcı olmaz. Hurst üssünün doğru hesaplanmasını elde etmek için dalgacık tabanlı tahmini kullanın (algoritma, örneğin matematik laboratuvarında bulunabilir).

 
_Forex19_ >> :
Добрый день!С большим вниманием читала данную ветку, так как интересуюсь данной тематикой, хотя в этих вопросах я еще новичок. В ходе своего исследования показателя Херста интересует реализация следующей задачи: необходимо определить эффективность индикатора iVAR, _hurst_classik для финансового ряда.
Мое видение реализации данной задачи следующее: необходимо сделать индикатор, который бы на основе данных индикатора ZigZag, рассчитал расстояние d1 (количество баров) между двумя соседними точками (минимумам и максимумам), а также получить расстояние d2 (количество точек за соответствующий интервал), который дает индикатор iVAR(множество значений меньше 0,5 в случаи индекса вариации) и индикатор _hurst_classik (множество значений больше 0,5 в случаи показателя Херста ). В конечном итоге получить массив отношений d2/d1. Конечный результат представить в виде гистограммы.
Надеюсь на этом сайте есть джентльмен - программисты на MQL4,которые помогут девушке в ее исследовании, буду рада любой помощи!За ранее огромное спасибо!
PS: хотя индикатор ZigZag является трендовым, возможно какое-то программное решение с флэтом. Если существуют какие-то готовые инструменты для решение данной задачи, прошу их указать. Кроме того повторно выкладываю коды индикаторов iVAR и _hurst_classik.

Fiyat için acele edin ~ 1, ama bu nedir?

Bu durumda yardımcı olabileceğim tek şey, _hurst_classik dosyasında Hurst veya R/S analizi olmadığını belirtmektir. Serinin yeniden ölçeklendirilmesinde "R / S" adının özü. _RS_Analiz'e hak iddia eden _hurst_classik metninde yeniden ölçeklendirme yapılmaz, ancak örneğin maksimum ve minimum fiyat arasındaki fark basmakalıptır.

Ayrıca, R/S analizi Hurst'e ulaşmak için eğrinin eğimini hesaplar ve bunun için her çubukta log(R/S) - log(n) düzleminde birçok noktaya ihtiyaç duyar, bir değil . Aynı mucizede _RS_Analiz'e de böyle bir şey yok.

 
Vita писал(а) >>

Gönderimin ana noktası "VR modelini tanımla" idi, ancak bu dikkatinizi çekmedi.
 
faa1947 >> :

ARFIMA sınıfının modellerinden (parametreler) veya bunun gibi bir şeyden bahsediyorsak, o zaman gerçekten bu benim için ilginç değil çünkü. Bu modeller, amacı yatırım fonları için para toplamak olan "nakui" yetiştiriyor. Bu tür "bilimlere" kabine bilimleri denir, çünkü bunlar yalnızca, kural olarak, fiyat tahmini olan açıkça istenen sonuç için bilimsel temeli ayarlamak amacıyla yaratılırlar.

 
Vita писал(а) >>

ARFIMA sınıfının modellerinden (parametreler) veya bunun gibi bir şeyden bahsediyorsak, o zaman gerçekten bu benim için ilginç değil çünkü. Bu modeller, amacı yatırım fonları için para toplamak olan "nakui" yetiştiriyor. Bu tür "bilimlere" kabine bilimleri denir, çünkü sadece bilimsel temeli, kural olarak, fiyat tahmini olan açıkça istenen sonuca göre ayarlamak için yaratılırlar.


değerlendirmeyeceğiz. Şimdi VR modelini kullanan ve hiç kullanmayan yaklaşımlardan bahsediyoruz.
 

HURST GÖSTERGESİNİ HESAPLAMAMA YARDIM ET!!!*

*küçük not: Peters gibi

Tüm konuyu baştan sona okudum: evet, saygın uzmanlardan sıradan izleyicilere kadar herkesin Hirst'ün ne olduğu ve nasıl ele alınması ve yorumlanması gerektiği konusunda kendi fikirleri olmasını beklemiyordum. Orijinaline en yakın olanı makalesinde ve kitabında Eric Nyman'dı. Ama... biz (elbette Rusya'da) Peters'ın kitabında sunulan grafikler oluşturmak için yeterli bir araca sahip değiliz.

Bu yüzden, Peters'ın, S&P 500 için R/S istatistiklerini hesaplamak için ilk kitabı olan " Chaos and Order in the World of Capital "'da açıklanan eylem dizisini olabildiğince yakından taklit etmeye çalıştım.

1. 01/01/1950 ile 07/01/1988 arasında aylık S&P 500 hisse senedi grafikleri alıyoruz.

2. Teknik analiz programına yüklüyoruz (WealthLab ve C# kullanıyorum bundan sonra WL/C# kodunu vereceğim)

3. Peters'ın kitabında sunulan formüle göre fiyatları verimlere çevirelim:

4. Peters, getiriler hesaplandıktan sonra tekrar birikmiş seriye dönüştürüldüğünden bahsetmiyor: . Ancak bu, sahip olduğu R/S aralığının bu değerlerinden hareketle aşikar, ayrıca kaynak da açıkça şunu söylüyor, alıntı yapıyorum: "Her doğal n için değerleri oluşturacağız (yukarıdaki formüle bakın) ve elde edilen alt dizilerin aşağıdaki sayısal özelliklerini hesaplayın".

5. Elde edilen seriyi k periyoda bölün, her periyodun uzunluğu 6 ila 231 ay veya gözlemler arasında N'dir.

6. Şimdi önemli nokta. Tam sayıda periyot elde edilmezse (kullanılmayan veriler kalır), bunlar atılır. Ancak kalan çok büyük ise (örneğin 462 / 232 = 233 ve kalanda 230) yanlış bir değer elde edilir. Anladığım kadarıyla Peters shift kullanıyor ama bu programlama açısından oldukça zahmetli bir seçenek ve kalan 6'dan büyükse periyodu atıyorum. Bitişik periyotlar hemen hemen aynı R/S değerine sahip olduğu için bu doğru seçenek.

7. Ardından, R şu formülle hesaplanır:

8. R, standart sapmaya bölünür (WL göstergesi ile hesaplanır) ve logaritmikleştirilir: log10(R/S).

9. Mevcut dönem logaritmiktir: log10(N);

10. Log10(R/S) ile log10(N) arasındaki sonuç oranı bir dosyaya girilir.

Optimize edici N'yi 6'dan (Peters gibi) 231'e (minimum deney sayısı 2'dir) sıralarsa, çift logaritmik ölçekte iki sütunlu bir tablo elde ederiz: 1. periyot 2. R / S değeri.

Şimdi eğlence başlıyor. Bu tabloyu Excel'de derlerseniz, aşağıdakiler çıkacaktır:

Orijinal sağda gösterilir. Gördüğünüz gibi, bazı benzerlikler var, ancak yine de aynı değil. Özellikle, ilk göstergenin biraz fazla tahmin edildiği ortaya çıkıyor (0,33'e karşı yaklaşık 0,31) ve ikincisi, nihai değerler aniden keskin bir şekilde düşmeye başlıyor, ki bu prensipte olmamalı. Programına göre, sıra sonunda sadece eğim açısı değişmelidir, bu da bize hafıza etkisinin sınırlı olduğunu söylüyor.

Orada durana kadar. Orijinaliyle yalnızca kısmi bir eşleşme göz önüne alındığında, U / V istatistiklerini uygulamaya henüz karar vermedim.

R/S puanlarını Hurst'a dönüştürmek de biraz fazla tahmin edilen sonuçlar verir. Hurst üssü ise: , ardından excel formülüyle LOG(POWER(10;B1);C1*0.5) elde ederiz, burada B1 mevcut R/S puanıdır.

R/S istatistiklerinin hesaplanmasını uygulayan WL/C# kodu aşağıdadır:

 using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.IO;
using WealthLab;
using WealthLab.Indicators;

namespace WealthLab.Strategies
{
         public class PetersHerst : WealthScript
        {
                 public StrategyParameter Period;
                 public string path = @"c:\Users\Василий\Documents\Wealth-Lab\Reports\Strategys\Herst\herst.csv" ;
                 public PetersHerst()
                {
                         //StreamWriter sw = new System.IO.StreamWriter(path);
                        Period = CreateParameter( "Period" , 6 , 6 , 240 , 1 );
                         if (File.Exists(path))File.Delete(path);
                }
                
                 protected override void Execute()
                {
                         int N = Period.ValueInt;
                         // Так как мы преобразуем исходный ряд в доходности, то количество наблюдений у нас будет на 1 меньше, чем баров на графике.
                         // Отслеживаем, что бы количество отброшенных данных не превышало 6 наблюдений.
                         // Если отбрашиваемых данных слишком много,то период выбран неудачно, и расчет R/S статистики для него не производится.
                         int ost = Bars.Count - 1 - ( int )Math.Floor(( double )(Bars.Count- 1 )/N)*N;
                        
                         if (ost > 6 )
                        {
                                PrintDebug( "Слишком много пропущенных данных (" + ost + "). Необходимо выбрать другой период." );
                                 return ;
                        }
                         //PrintDebug("Пропущенных данных для рассчета");
                        DataSeries Returns = new DataSeries( "Returns" );
                        DataSeries ret2price = new DataSeries( "ret2proce" );
                         // Расcчитываем логарифмические доходности
                         // и собираем из них накопленный ряд.
                        Returns.Add( 0.0 , Date[ 0 ]);
                         double acum = 0.0 ;
                         for ( int i = 1 ; i < Bars.Count; i++)
                        {
                                acum += Math.Log(Close[i]/Close[i- 1 ]);
                                Returns.Add(Math.Log(Close[i]/Close[i- 1 ]), Date[i]);
                                ret2price.Add(acum, Date[i]);
                        }
                         //ret2price.
                        PrintDebug(ret2price.Count);
                         if (Returns.Count < 1 ) return ;
                         if (N > ret2price.Count)N = ret2price.Count;
                         double logRS = 0.0 ;
                         int count= 0 ;     //количество периодов
                        PrintDebug(Bars.Count);
                         for ( int i = 0 ; i < ret2price.Count; i++)
                        {
                                 //Делим ряд на K групп по N доходностей в каждой
                                 if ((i+ 1 )%N == 0 )
                                {
                                        count++;
                                         if (i - N < 0 ) continue ;
                                         //Находим среднее значение sma или математическое ожидание доходностей за период k
                                         double sma = SMA.Value(i, ret2price, N);
                                         //Находим стандартное отклонение за период k
                                         double S = StdDev.Value(i, ret2price, N, WealthLab.Indicators.StdDevCalculation.Sample);
                                         //Находим накопленную разницу между текущим значением и средним.
                                         double s = 0.0 ;
                                        DataSeries acum_div = new DataSeries( "" );
                                         for ( int k = i - N+ 1 ; k <= i; k++)
                                        {
                                                s += (ret2price[k] - sma);
                                                 //Не учитываем последнее значение, т.к. оно всегда будет равно нулю.
                                                 //if(k!=i)
                                                acum_div.Add(s);
                                                 //PrintDebug(Returns.Date[k].ToShortDateString() +"\tret: "+ Returns[k].ToString("F6") + "\tStd: " + S.ToString("F6") + "\t" + s.ToString("F6"));
                                        }
                                         double R = acum_div.MaxValue - acum_div.MinValue;
                                         //Конечная оценка log(R/S)
                                        logRS += Math.Log(R/S, 10 );
                                         //PrintDebug(Returns.Date[i].ToShortDateString() + "\t" + "SMA: " + sma.ToString("F6")
                                         //      + "\tStd: " + S.ToString("F6") + "\tMaxV: " + acum_div.MaxValue.ToString("F6") +
                                         //      "\tMinV: " + acum_div.MinValue.ToString("F6")
                                         //      + "\tR: "  + R.ToString("F6") + "\tlog(R/S): " + logRS.ToString("F6"));
                                }
                        }
                        logRS /= count;
                         double logPeriod = Math.Log(N, 10 );
                        PrintDebug(logPeriod + "\t" + logRS + "\tCount:" + count);
                         if (count >= 2 )
                                File.AppendAllText( @"c:\Users\Василий\Documents\Wealth-Lab\Reports\Strategys\Herst\herst.csv" , logPeriod + "\t" + logRS + "\n" );
                }
        }
}
ps Komik, MQL4'te overide ve anahtar kelimeler kullanma yok, ancak sözdizimi yine de onları vurguluyor :)
 
Prival :

matkad'da Hurst üssünün bir hesaplaması var mı (ayrık biçimde formüllere ihtiyacımız var)?

şimdilik sadece bunu buldum

Zaman serisi analizine yaklaşımları içeren dosya ektedir. Bu formülleri oradan aldım.

Üzgünüm, elbette.

Ve ilginç olan nedir? Formüllere baktığımda, onları Forex'e uygulamanın hiçbir anlamı görmüyorum.

Forex'i tanımlayacak bir satırı kendiniz atmak daha kolaydır. Evet, o zaten var ki, insanlar onun için Nobel Ödülü'nü aldı. Ama sonuç çok, çok ortalama. İlk önce her zaman ortalamayı tahmin etmelisiniz - yani bir hata, sonra hatalar nedeniyle eksileri olasılıktan çıkarmaya çalışın ve sonra uğraşın.

 
new-rena :

Üzgünüm, elbette.

Ve ilginç olan nedir? Formüllere baktığımda, onları Forex'e uygulamanın hiçbir anlamı görmüyorum.

Forex'i tanımlayacak bir satırı kendiniz atmak daha kolaydır. Evet, o zaten var ki, insanlar onun için Nobel Ödülü'nü aldı. Ama sonuç çok, çok ortalama. İlk önce her zaman ortalamayı tahmin etmelisiniz - yani bir hata, sonra hatalar nedeniyle eksileri olasılıktan çıkarmaya çalışın ve sonra uğraşın.


Üzgünüm. Ama ilerisi için bu başlıkta boş düşüncelere yer vermemek konusunda anlaşalım . Birisi "Forex serisi" ile ilgileniyor, biri Hurst'un istatistikleriyle ilgileniyor. Herkesin kendi şubesi olsun.

Çift logaritmik ölçekte bir CSV tipi tablo gönderiyorum: Döneme göre R / S tahmini.

Dosyalar:
herst.zip  1 kb
Neden: