La théorie des flux aléatoires et le FOREX - page 59

 
AlexEro >> :


>> TU DOIS CHANGER TON AVATAR.

 
begemot61 >> :

+10 !!!

C'est mieux de conduire un chariot. C'est plus sain et il n'y a pas besoin de routes normales.

Il s'avère qu'il n'utilise pas non plus les téléphones, car le canal de fréquence de tonalité est mauvais pour lui (bien qu'il n'y ait probablement aucun endroit où appeler depuis Kanatchikovskaya Dacha).

 

Les experts s'inquiètent des effets néfastes des lecteurs MP3 sur l'audition

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

 
Eh bien, il fallait trouver non pas quelque chose de bon et d'utile, mais déterrer un tel ...

Je vous suggère de lire Malakhov. Il y a beaucoup de choses intéressantes pour vous, allez-y...

 

timbo писал(а) >>

Une stratégie rentable sur un processus aléatoire stationnaire est créée sur le compte de un.

Vous dites ça une fois pour toutes.
S'il vous plaît, ne soyez pas paresseux et écrivez un script en mql qui simulerait une stratégie gagnante sur un processus avec une distribution normale.
Depuis que je travaille dans ce domaine, j'ai toujours constaté que ce n'est pas une tâche banale. En règle générale, lorsqu'on essaie d'obtenir un gain par un processus stationnaire, on obtient l'un des deux résultats suivants : soit l'espérance mathématique = 0, soit les bénéfices sont si faibles que je ferais mieux de garder mon argent à la banque. Je pense que le problème peut être résolu pour que les gains soient au moins un peu perceptibles, mais ce n'est pas facile.

En même temps, je voudrais m'adresser aux gens : quelqu'un a-t-il une fonction qui renvoie une valeur avec une distribution normale dans un intervalle (0,1) ? J'ai tué toute la journée d'hier, mais je n'ai toujours pas trouvé comment l'implémenter dans mql.

 
benik писал(а) >>

J'aimerais également demander aux gens : quelqu'un a-t-il une fonction qui renvoie une valeur avec une distribution normale dans l'intervalle (0,1) ? J'ai tué toute la journée d'hier, mais je n'ai toujours pas trouvé comment l'implémenter dans mql.

Il est assez facile de l'implémenter soi-même, en utilisant la fonction MQL MahtRand(). Comme vous le savez, il renvoie un nombre entier pseudo-aléatoire avec une distribution uniforme dans la plage de 0 à 32767. Et le F.D.P. de la distribution normale fait correspondre l'axe numérique [0, inf.] à l'intervalle [0, 1]. Ainsi, pour obtenir une valeur normalement distribuée, il suffit d'effectuer une cartographie inverse de l'intervalle [0, 1] sur l'axe des ordonnées. La seule question est que l'argument est choisi au hasard. C'est à cela que sert MahtRand().

C'est-à-dire que vous chargez d'abord une table de valeurs de F.D.P. de la distribution normale dans le programme sous forme numérique [x, F(x)].

Ensuite, vous définissez une fonction qui applique uniformément [1, 32767] à (0, 1), f(x) = x/32768. Comme vous pouvez le voir, les valeurs 0 et 1 sont exclues de l'intervalle. Par conséquent, la valeur x=0 doit également être ignorée. Ces effets marginaux peuvent être pris en compte de différentes manières, mais ils sont de peu d'importance.

Maintenant, générez une série pseudo-aléatoire avec MahtRand(), faites correspondre chacune des valeurs résultantes à un intervalle unitaire, et en utilisant ce point comme valeur P.D.F. de la distribution normale F(x), trouvez l'argument x correspondant. C'est tout. C'est une valeur normalement distribuée.

 

Yurixx писал(а) >>


Oui, c'est une option. Mais j'aimerais quand même faire une fonction autonome dans mql. Sans charger des valeurs aléatoires de l'extérieur.
Pour autant que je sache, la distribution normale peut facilement être obtenue à partir de la distribution uniforme en prenant la fonction inverse de Laplace à partir de la valeur uniforme dans l'intervalle (0,1).
Riez tant que vous voulez, mais j'ai un problème avec le fait de prendre la fonction inverse de Laplace de MathRand()/32768.

Voici donc un script qui, par idée, devrait produire dans le fichier "RandN(0-1).csv" la valeur normale dans l'intervalle (0,1).

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);
   }
Certes, il sort des absurdités, mais je n'ai déjà pas les forces pour l'améliorer. Si quelqu'un a le temps et le désir, vous pouvez l'améliorer. L'erreur ici est que la fonction RandN() calcule la densité de la distribution au lieu de la fonction Laplace. Si quelqu'un n'a aucun mal à calculer l'intégrale de cette fonction, merci de la partager avec le public. C'est une tâche difficile pour moi maintenant de penser comment calculer l'intégrale dans mql.
 

benik, il y a quelque chose ici. Pouvez-vous le découvrir par vous-même ?

 
Merci, je vais jeter un coup d'oeil. Je n'y arriverai pas aujourd'hui :) Ma tête est déjà pleine. Je vais essayer demain. <br / translate="no">
 
Ah, il y a une fonction toute faite pour une distribution normale. Oui, merci pour ça.
Raison: