ランダムフロー理論とFOREX - ページ 59

 
AlexEro >> :


>>アバター変えた方がいいよ。

 
begemot61 >> :

+10!!!

カートを走らせたほうがいいんです。健康にもいいし、普通の道路も必要ない。

結局、電話も使わない。トーン周波数チャンネルが悪いからだ(カナチコフスカヤ・ダチャからは電話する場所がないのだろうけど)。

 

MP3プレーヤーによる聴覚への害を心配する専門家たち

http://www.smh.com.au/news/digital-music/turn-it-down/2007/01/04/1167777193761.html?from=rss

 
まあ、何か良いもの、便利なものを見つけるのではなく、このようなものを掘り起こす必要があったのですが......。

マラーホフを 読むことをお勧めします。あなたにとって興味深いものがたくさんありますよ、どうぞ...。

 

timbo писал(а) >>

定常的なランダム過程における収益性の高いストラテジーは、1カウントで作成されます。

1回単位で言うんですね。
怠けずに正規分布のプロセスで必勝法をシミュレートするようなスクリプトをmqlで書いてくださいよ。
この仕事をする限り--いつも思うのですが、これはまったく些細なことではないのです。原則として、定常過程によって勝ちを得ようとすると、次の2つの結果のどちらかが得られます:トレードの数学的期待値=0か、利益が非常に小さいので銀行にお金を預けておいた方が良いかのどちらかです。せめて賞金だけでも実感できるように問題を解決することは可能だと思いますが、簡単なことではありません。

同時に、私は人々に訴えています:誰か、範囲 (0,1) に正規分布を持つ値を返す関数をもっていますか?昨日一日潰したけど、まだmqlで実装する方法が分からない。

 
benik писал(а)>>

また、人に聞きたいのですが、誰か範囲(0,1)の正規分布を持つ値を返す関数をお持ちではないでしょうか?昨日一日潰したけど、まだmqlで実装する方法が分からない。

MQLの関数MahtRand()を使えば、簡単にそれができる。ご存知のように、0から32767までの範囲で一様分布の疑似乱数整数を返します。また、正規分布のP.D.F.は、数値軸[0, inf.]を区間[0, 1]に写像しています。つまり、正規分布の値を得るには、区間[0, 1]をOh軸に逆写像すればいいのです。問題は、引数がランダムに選ばれていることだけです。そのためにMahtRand()が使われているのです。

すなわち、まず正規分布のP.D.F.値の表を[x, F(x)]として数値的にプログラムにロードします。

次に、[1, 32767] を (0, 1) に一様に写す関数 f(x) = x/32768 を設定します。見てわかるように、値0と1は区間から除外されている。したがって、値x=0もスキップする必要があります。これらの限界効果は、さまざまな方法で説明することができますが、ほとんど重要ではありません。

ここで、MahtRand()で擬似乱数系列を生成し、得られた各値を単位区間に対応させ、その点を正規分布F(x)のP.D.F.値として、対応する引数xを求めてください。それだけです。これは正規分布の値です。

 

Yurixx писал(а) >>


はい、これはオプションです。でも、やっぱりmqlでスタンドアローンな関数を作りたい。外部からランダムな値を読み込むことなく
私の知る限り、正規分布は、区間(0,1)の一様値から逆ラプラス関数をとることによって、一様分布から容易に求めることができます。
笑うのは勝手だが、MathRand()/32768から逆ラプラス関数を取るのは問題がある。

そこで、区間(0,1)の正常値をファイル "RandN(0-1).csv "に出力するスクリプトを考えてみた。

int start()
  {
//----
      string FileName = "RandN(0-1).csv";
      int handle = FileOpen ( FileName, FILE_CSV| FILE_WRITE);
      MathSrand(GetTickCount());
      for (int i=1; i<=32768; i++)
      {
         double val = RandN(0,1);
         FileWrite( handle, val);
      }
//----
   return(0);
  }
//+------------------------------------------------------------------+

   double RandN(int a, int sigma)
   {
      double pi = 3.14159265;
      double exp = 2.71828183;
      double x = MathRand()/32768.0;
      double pow = -(MathPow( x- a,2.0)/(2*MathPow( sigma,2.0)));
      double f = (1/( sigma*MathSqrt(2* pi)))*MathPow(exp,pow);
      return ( f);
   }
確かに無意味なものを出力していますが、それを改善する力はすでにありません。もし、時間と希望があれば、改良していただいても結構です。ここでの誤りは、RandN()関数がラプラス関数ではなく、分布の密度を計算していることです。この関数の積分の計算が苦にならない方がいらっしゃいましたら、ぜひ教えてください。mqlでどうやって積分を計算するのか、今の私には難しい課題です。
 

ベニックここに 何かある。自分で解決できるのか?

 
ありがとうございます、見てみます。ただ、今日はうまくいきませんね :)もう頭がいっぱいです。明日やってみます。<br /> translate="no">。
 
あ、正規分布の関数が用意されていますね。はい、ありがとうございました。