Ерунда какая то с этим херстом. Добиться 0.5 не получилось (хотя давал на вход rnd()). Единицы тоже не получилось добиться, хотя подавал x(i)=i (ряд все время растет)
Urain>>: Долго преобразовывал чтоб ускорить расчёт, в результате получил вот такую упрощённую формулу для показателя Херста : логически вроде бы всё верно, хотя без логарифмов.
Это не упрощенная формула для показателя Херста. Вы заблуждаетесь. Способов расчета показателя Херста много и все они трудоемки. Вы какую упрощали? И ваша формула по ходу может быть меньше нуля, что совсем не кстати.
インジケーターの1カ所を間違えただけです。
重み付け係数は何も与えず、千分の一の差になる。
まあ、弾むということは、そうなんですけどね。
2つ目の機能は試されましたか?
写真があると嬉しいのですが・・・。指標ではなく、結果線そのものを表しています。
2つ目の機能は試されましたか?
写真も見たいし...。指標ではなく、結果線。
2作目は試していない。
どんな写真が見たいのかよくわからない。
インジケーターを表示させれば、写真が表示されるかも?)
Ерунда какая то с этим херстом. Добиться 0.5 не получилось (хотя давал на вход rnd()). Единицы тоже не получилось добиться, хотя подавал x(i)=i (ряд все время растет)
Файл прилагаю, версия маткада 14
1から10までではなく、少なくとも3000までなら、すべてがうまくいく。
2つ目のバージョンの計算も正しい - もう一度、より多くのデータを供給してください...
1から10までではなく、少なくとも3000までなら、すべてがうまくいく。
2つ目のバージョンの計算も正しい - もう一度、より多くのデータを供給してください...
次はどうする?Pinned、商との関連はないのか、それとも何か見逃しているのか?
こんにちは)全ページを部分的に読みましたが、残念ながらすべてのアルゴリズムが理解できません。ここでもすでに似たような質問が飛んでいる。私が理解した限りでは、MQL4とCの構文はほぼ同じですが、構造は異なっており、異なる統計関数を持つ「ライブラリ」がより多く存在するようです。
C言語でアルゴリズムを書きましたので、ちょっとだけコードを紹介します。
double Herst( double *S, int n)
{
double *h1 = (double *) malloc(sizeof(double ) * n),
*h2 = (double *) malloc(sizeof(double ) * n),
*h = (double *) malloc(sizeof(double ) * n)。
*Hn = (double *) malloc(sizeof(double ) * n)。
h_ = 0, Rn = 0, Sn = 0, RSn = 0。
h[0] = 0, h[1] = 0, Hn[0] = 0, Hn[1] = 0となる。
if( h == NULL || Hn == NULL || h1 == NULL || h2 == NULL )
{
printf("メモリが足りません!!💢");
を返す -1;
}
for( int i = 1; i < n ; i++ ) h[i-1] = log( S[i] / S[i-1] );
for(int i = 1; i < n; i++ ) Hn[i] = Hn[i-1] + h[i-1];
if( (n - 1) != 0) h_ = Hn[n - 1] / ( n - 1 );
h2[0] = (h[0] - h_) * (h[0] - h_)
h1[0] = (h[0] - h_) とする。
for( int i = 1; i < n - 1; i++ )
{
h1[i] = h1[i-1] + (h[i] - h_) とする。
h2[i] = h2[i-1] + (h[i] - h_) * (h[i] - h_) となります。
}
qsort( (double *)h1, n-1, sizeof(T), Comp );
Rn = h1[n - 2] - h1[0]である。
if( (n - 1) != 0 ) Sn = h2[n-2] / ( n - 1 );
if( (n - 1) == 0 ) Sn = h2[n-2];
RSn = Rn / Sn。
free(h)です。
free(hn)です。
free(h1)です。
free(h2)です。
RSnを返します。
}
そして、アレイに突っ込まれる。
for( int i = n_min; i < n; i++ )
{
x1[i - n_min] = log( double( i * 0.5) )
y1[i - n_min] = log( Herst( S1, i );
}
で、ANCで直線を描きます。
質問 - たまに1より大きい値に遭遇することがありますが、非常に稀です。何がエラーなのか理解できない。単純な直線(y=ax+b, a={0,0.5,1,2,3}, b={-1,0,1,2} )でANCを確認しました。
最初の3~5個のサンプル値について、標準偏差が0であった場合はどうでしょうか。RSは無限大に等しく、これらの点を考慮しないだけなのですね。
それとも、nのセグメントをいくつか等分して、それぞれをカウントすればいいのでしょうか?
自分で考えてみたが、2週間後には諦めてしまった。このアルゴリズムは、Peters著「Fractal Analysis of Financial Markets」、Shiryaev著「The Fundamentals of Financial Mathematics」という書籍に基づいている。
День добрый) Прочитал частично все страницы, но к сожалению не все алгоритмы понял.
答えになってないので失礼ですが、便利かもしれませんね。
テストケース付きですが。
ピータース「金融市場のフラクタル分析」に厳密に従っている。
Пардон, что не по вопросу ответ, но возможно пригодится.
С тестовым примером зато.
テストファイルそのもの。H~0.72
、ハースト指数の簡略式は次のようになりました:
。 論理的には正しいようで、
、対数なしですが。
Долго преобразовывал чтоб ускорить расчёт,
в результате получил вот такую упрощённую формулу для показателя Херста :
логически вроде бы всё верно,
хотя без логарифмов.
これはハースト指数の簡略化した計算式ではありません。あなたは勘違いしています。
ハーストの数字を計算する方法はいろいろありますが、どれも手間がかかります。どれを簡略化したのですか?
そして、計算式が0以下になってしまうこともあり、全く参考になりません。
Это не упрощенная формула для показателя Херста. Вы заблуждаетесь.
Способов расчета показателя Херста много и все они трудоемки. Вы какую упрощали?
И ваша формула по ходу может быть меньше нуля, что совсем не кстати.
絶対的な数字ではなく、発想が大切です。
この式は、回帰率(角度)と標準偏差の比を示すもので、ハーストの精神を受け継いでいると思います。