マクロ経済指標に基づく市場予測 - ページ 5

 
gpwr:

一言で説明するのは難しいですね。まずはこちらをお読みください

https://ru.wikipedia.org/wiki/%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F

を、そしてここ(相互情報量の章で、計算式が示されている)。

http://www.jclinbioinformatics.com/content/2/1/16

相互情報量やエントロピーはどのように算出されるのですか?

ЗЫ А сори нашёл https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%8D%D0%BD%D1%82%D1%80%D0%BE%D0%BF%D0%B8%D1%8F

Информационная энтропия — Википедия
  • ru.wikipedia.org
Информацио́нная энтропи́я — мера неопределённости или непредсказуемости информации, неопределённость появления какого-либо символа первичного алфавита. При отсутствии информационных потерь численно равна количеству информации на символ передаваемого сообщения. Например, в последовательности букв, составляющих какое-либо предложение на русском...
 

以下はその例です。非農業部門雇用者数のデータを含むダウ・ジョーンズ指数。

矢印はピボットポイントを示し、データには20年以上の歴史が含まれています。

このパターンは一度起こったが、2000年から2001年の間にもう一つ見つけることが可能である。プログラムすることは可能ですが、20年間に2回の信号では、統計としては少なすぎます。

 
gpwr:
回帰だけでなく、ニューラルモデルやARMAなど、どんなモデルにも言えることです。入力と出力の間に関係がなければ、どんなモデルでも予測値を生成するが、それは不正確なものでしかない。

そうですね、ニューラルネットワークはさらに優れています。

回帰は、データを使って何かができるかどうかを素早くテストするのに便利です。

すなわち、経験的なモデルを迅速に構築し、確認することです。

が、その関係は「非存在」であったり、間接的な観察不能であったりします。

そんなモデルを作ったことがあります。

MICEX指数+5年物国債+3ヶ月物LIBOR+ブレント価格+EU ZVR+その他の何か

この組み合わせは、カナダでは比較的良い予測因子であることが判明しています。

なぜ、どんな関係があるのか、誰も知らない...。

 

私の計算した相互情報量

function I = KMI(x,y,h)
% Calculate Mutual Information between x and y based on Gaussian kernels
n=numel(y);
if nargin<3
    h=(4/3/n)^0.2;
end
q=1/(2*h^2);
I=0;
for i=1:n
    Mx=1;
    My=1;
    Jxy=1;
    for j=1:n
        if j>i
            Kx(i,j)=exp(-q*(x(i)-x(j))^2);
            Ky(i,j)=exp(-q*(y(i)-y(j))^2);
            Kx(j,i)=Kx(i,j);
            Ky(j,i)=Ky(i,j);
        end
        if i~=j
            Mx=Mx+Kx(i,j);
            My=My+Ky(i,j);
            Jxy=Jxy+Kx(i,j)*Ky(i,j);
        end
    end
    I=I+log(n*Jxy)-log(Mx)-log(My);
end
I=I/n;
 
forexman77:

以下はその例です。非農業部門雇用者数のデータを含むダウ・ジョーンズ指数。

矢印はピボットポイントを示し、データには20年以上の歴史が含まれています。

このパターンは一度起こったが、2000年から2001年の間にもう一つ見つけることが可能である。これをプログラムすることは可能だが、20年間2信号というのは、統計を取るには少なすぎる。

マクロ経済指標を高頻度取引に利用するためには、その発表日を基準に取引する必要があります。つまり、これらの指標をモデル化し、次の値を予測し、公表値と比較し、ニュース発表の直前にポジションを建てるのです。しかし、正直なところ、私はそのような取引には興味がない。それよりも、クラッシュを予測することに興味があります。上昇相場では誰でも利益を上げることができますが、暴落相場での損失を避けるには、暴落の始まりと修正を見分ける能力が必要な芸術なのです。

もっと面白い写真はこちらです。クラッシュ前は、PERMIT1住宅の建築許可件数が減少していた(グレーの縦線は過去の不況期を表す)。

それ以前の不況で、建設許可戸数が急激に減少しなかったのは、2002年から2003年にかけての不況だけである。2四半期連続でGDPがマイナスになったわけではないので、厳密にはその期間はリセッションではないと主張するエコノミストもいる。しかし、それでも市場価格はかなり急落した(ドットコムバブル)。私のモデルは、2002年から2003年の予測はかなり苦手です。必要なのは、この時期を予測することができる追加的な指標である。

もう一つ面白い例を挙げよう。債券のイールドカーブ=GS5-GS3Mは不況をよく予測する。

 
transcendreamer:

こんな模型を作ったことがあります。

MICEX指数+5年物国債+3ヶ月物LIBOR+ブレント価格+EU ZVR+その他の何か

この組み合わせは、カナダでは比較的良い予測因子であることが判明しています。

なぜ、どんな関係があるのか、誰も知らない...。

)))で、それでどうやってカナヅチを「予言」したんだ?

しかも、「どういうつながりなのか」まではわかるのですが、問題は、それでどうやって金田一を予測したのか、ということです。

カナヅチの実質レートと予測の乖離があり、このモデルが「機能」しているとしよう--次にどうするか。カナドゥーエンの為替レートがこの合成通貨のレートになるのか、合成通貨のレートがカナドゥーエンのレートになるのか、あるいは両方が反対になるのか、どのように予測しますか?どうやって?

 
gpwr:

マクロ経済指標を高頻度取引に利用するためには、その発表日までに取引する必要があります。つまり、これらの指標をモデル化し、次の値を予測し、公表された予想値と比較し、ニュースリリースの直前にポジションを建てるのである。しかし、正直なところ、私はそのような取引には興味がない。それよりも、クラッシュを予測することに興味があります。上昇相場では誰でも利益を上げることができますが、暴落相場での損失を避けるには、暴落の始まりと修正を見分ける能力が必要な芸術なのです。

もっと面白い写真はこちらです。クラッシュ前は、PERMIT1住宅の建築許可件数が減少していた(グレーの縦線は過去の不況期を表す)。

それ以前の不況で、建設許可戸数が急激に減少しなかったのは、2002年から2003年にかけての不況だけである。2四半期連続でGDPがマイナスになったわけではないので、厳密にはその期間はリセッションではないと主張するエコノミストもいる。しかし、それでも市場価格はかなり急落した(ドットコムバブル)。私のモデルは、2002年から2003年の予測はかなり苦手です。必要なのは、この時期を予測できる指標を追加することである。

もう一つ興味深い例を挙げよう。イールドカーブ、景気後退をよく予測する。

クラッシュについて。以下は、New homesalesとADP-EMPL-SEC データによるDow Jonesのチャートです。

ADPは 2007年の下落をよく予測していたというか、ダウ・ジョーンズと同期して下落した。

興味深いのは、2005年末に新築住宅販売がトレンドを崩し、その後も指数が上昇したことだが、そのときすでに、市場に万事休すのシグナルが出ていた。

戦略について。試してみるのもよいでしょう。

  1. 期待値と実際のデータに基づくもの。(問題は、今のところ実際のデータしか見つからず、予想、予測に基づく過去のデータがないことです)。
  2. 日中の実測値のみ。
  3. 事実に基づくデータのみを長期的に

P.S. 私はプログラミングの経験がほとんどありません。int init()でファイルからデータを読み込み、一度バッファを構築し、一致する日付でインジケータバッファを満たします。Expert Advisorでは、1日に1回インジケータのデータを取得します。この設計の最適化でスピードは悪くありません。

問題は、日中のデータがあれば、このデータを使ってローソク足を組み立てる場合です。この場合、ファイルからの読み込みは非常に長くなります。

与えられた関数の中で、どのような方程式を使うのでしょうか?

 

このスレッドを読んでいる人は、私の最初の投稿をチェックしてください、数日前に更新しました。

経済指標を使って手動で市場を予測しようとする人のために、指標のリストを紹介します。https://www.conference-board.org/data/bci/index.cfm?id=2160

その内容は以下の通りです。

1.BCI-01平均週労働時間、製造業0.2781
2.BCI-05平均週次初期失業保険申請件数0.0334
3.BCI-08製造業新規受注、消費財・素材0.0811
4.BCI-130ISM新規受注指数0.1651
5.BCI-33製造業新規受注、非国防資本財(航空機を除く)。0.0356
6.BCI-29建築許可、民間住宅新築戸数0.0272
7.BCI-19株価、普通株式500銘柄0.0381
8.BCI-107先行信用指数0.0794
9.BCI-129金利スプレッド、10年物国債から連邦基金を差し引いたもの0.1069
10.BCI-125Avg.景気・経済状況に対する消費者 エクスポージャー0.1551

連邦準備制度理事会がS&P500を先行指標とみなしているのは、まるでそれが経済を予測するかのように、むしろその逆であることが興味深い。この中で、私が考える唯一の先行指標は「建築許可」だが、他の指標の中で最も比重が低い。どうやらFRBは自分たちが何をしているのか分かっていないようで、したがって来るべき不況を予測することも、金融政策でそれを防ぐこともできないようだ。

Description of Components | The Conference Board
  • www.conference-board.org
The composite indexes of leading, coincident, and lagging indicators produced by The Conference Board are summary statistics for the U.S. economy. They are constructed by averaging their individual components in order to smooth out a good part of the volatility of the individual series.  Historically, the cyclical turning points in the leading...
 
gpwr:

私の計算した相互情報量

mqlでは次のようになる。

struct SDoubleArrayKMI{ double m[]; };
//+------------------------------------------------------------------+
double KMI(const double &x[],const double &y[])
  {
   return(KMI(x,y,pow(4./3./ArraySize(y),0.2)));
  }
//+------------------------------------------------------------------+
double KMI(const double &x[],const double &y[],double h)
  {
// Calculate Mutual Information between x and y based on Gaussian kernels
   int n=ArraySize(y);   

   SDoubleArrayKMI Kx[],Ky[]; ArrayResize(Kx,n); ArrayResize(Ky,n);
   for(int i=0;i<n;i++) { ArrayResize(Kx[i].m,n); ArrayResize(Ky[i].m,n); }
//---

   double q=1/(2*h*h);
   double I=0;
   for(int i=0;i<n;i++)
     {
      double Mx=1;
      double My=1;
      double Jxy=1;
      for(int j=0;j<n;j++)
        {
         if(j>i)
           {
            Kx[i].m[j]=exp(-q*pow(x[i]-x[j],2));
            Ky[i].m[j]=exp(-q*pow(y[i]-y[j],2));
            Kx[j].m[i]=Kx[i].m[j];
            Ky[j].m[i]=Ky[i].m[j];
           }
         if(i!=j)
           {
            Mx+=Kx[i].m[j];
            My+=Ky[i].m[j];
            Jxy+=Kx[i].m[j]*Ky[i].m[j];
           }
        }
      I+=log(n*Jxy)-log(Mx)-log(My);
     }
   return(I/n);
  }
ファイル:
 
gpwr:

私の計算した相互情報量

実施ありがとうございました。勉強させていただきます。

ウラン です。

mqlでは次のようになる。


ニコライさんに二重の感謝を! MQLは最高です。