Diskussion zum Artikel "Was ist ein Trend und basiert die Marktstruktur auf einem Trend oder einer Seitwärtsbewegung?" - Seite 8

 
Maxim Dmitrievsky:

Für eine solche zweimonatige Ausbildung würde ich ins Büro des stellvertretenden Ministers gehen.

Dafür würde ich Präsident werden.) Um zu lernen, wie man praktisch ohne Risiko Geld verdienen kann.

 

Können Sie mir bitte sagen, welche Varianz Sie für das Referenzdiagramm annehmen? Die mathematische Erwartung ist eindeutig - 0.

 
Alexey Klenov:

Können Sie mir bitte sagen, welche Varianz Sie für das Referenzdiagramm annehmen? Die mathematische Erwartung ist eindeutig 0.

Ich habe die Varianz für den Benchmark nicht berechnet. Ich habe den Benchmark anhand der Tabelle erstellt, von der ein Teil in Abbildung 4 zu sehen ist. Ich habe dem Artikel eine Excel-Datei beigefügt, die ein Beispiel für die Berechnung der Tabelle enthält.
Der Benchmark wird mit Hilfe der Kombinatorik erstellt. Das heißt, es werden die Anzahl der Kombinationen und die Wahrscheinlichkeit, dass jede Kombination ausfällt, berechnet.
 

Ich kann die Form der theoretischen Kurve nicht wiederholen

Nehme ich sigma 3,2, falle ich ungefähr in der Höhe, aber ich treffe nicht die Einbrüche (in diesem Fall +-12).

Nehme ich sigma 5,8, falle ich in den Bereich (+-20), aber ich falle nicht in der Höhe

Die Summe aller Y ist in beiden Fällen gleich 100000.

Um eine Zufallsvariable nach dem Normalgesetz zu erzeugen, habe ich eine Funktion aus der Standardbibliothek genommen.

MathRandomNormal

Offensichtlich erzeugt die Methode der Kombinatorik keine Variante der Standardabweichung nach dem Normalgesetz.

....Ich wollte es in MQL ohne Faktorisierung wiederholen.

 
Alexey Klenov:

Die Form der theoretischen Kurve wird nicht nachgebildet

Wenn ich sigma 3,2 nehme, falle ich ungefähr in die Höhe, aber ich treffe nicht die Einbrüche (in diesem Fall +-12).

Nehme ich sigma 5,8, falle ich in den Bereich von (+-20), aber ich falle nicht in die Höhe

Die Summe aller Y ist in beiden Fällen gleich 100000.

Um eine Zufallsvariable nach dem Normalgesetz zu erzeugen, habe ich eine Funktion aus der Standardbibliothek genommen.

MathRandomNormal

Offensichtlich erzeugt die Kombinatorik-Methode keine Variante der Standardabweichung nach dem Normalgesetz.

....Ich wollte es in MQL ohne Faktorisierung wiederholen.

In Abbildung 6 habe ich die Form der Verteilung für Random Walk gemessen, ich glaube für 100.000 Stichproben. Die weißen Histogramme sind Random Walk. Ich glaube, ich habe dem Artikel eine Datei beigefügt, sie sollte 50% oder so ähnlich heißen. Dort habe ich zufällig 0 und 1 erzeugt. Wenn es 0 war, dann der vorherige Wert minus 1, wenn es 1 war, dann der vorherige Wert plus 1. So wird das Zufalls-Wanderungsdiagramm aufgebaut. Messen Sie einfach die Sigma-Parameter daran und verwenden Sie sie.
 
Alexey Klenov:

Um eine Zufallsvariable nach dem Normalgesetz zu erzeugen , habe ich eine Funktion aus der Standardbibliothek genommen.

MathRandomNormal

Offensichtlich erzeugt die Kombinatorik-Methode keine Variante der Standardabweichung nach dem Normalgesetz.

....I wollte es in MQL ohne Faktoren wiederholen.

Beispiel für den Abschnitt Normalverteilung?

Документация по MQL5: Стандартная библиотека / Математика / Статистика / Нормальное распределение
Документация по MQL5: Стандартная библиотека / Математика / Статистика / Нормальное распределение
  • www.mql5.com
//| Script program start function                                    | //|  Calculate frequencies for data set                              |                               //|  Calculates values for sequence generation                       |
 
Rashid Umarov:

Beispiel für den Abschnitt Normalverteilung?

Die Grundlage wurde genau diesem Beispiel entnommen.

 
Maxim Romanov:
In Abbildung 6 habe ich für Random Walk die Form der Verteilung gemessen, sozusagen für 100.000 Stichproben. Die weißen Histogramme sind Random Walk. Ich glaube, ich habe dem Artikel eine Datei beigefügt, sie sollte 50% oder so ähnlich heißen. Dort habe ich nach dem Zufallsprinzip 0 und 1 erzeugt. Wenn es 0 war, dann der vorherige Wert minus 1, wenn es 1 war, dann der vorherige Wert plus 1. So wird das Zufalls-Wanderungsdiagramm aufgebaut. Messen Sie einfach die Sigma-Parameter daran und verwenden Sie sie.

Soweit ich weiß, wird die Reihe doppelt quantisiert.

Beim ersten Mal quantisieren Sie mit +1 -1 und beim zweiten Mal quantisieren Sie diese "Renko-Balken" in Plots mit 40 Balken.

Vielleicht erhalten Sie diese Form der "Normalverteilung".

Wäre es nicht logischer, das erste Mal, wie Sie es getan haben, in Renko-Balken zu schneiden und dann dem Prinzip der Richtungsumkehr zu folgen?

Zum Beispiel Ihre Abbildung 1

+3 -1 -1 +2 -2 -2 +1 -4 +2 -2 -2 +4 und so weiter.

Das hat zur Folge, dass es keine Werte am Nullpunkt von X gibt (obwohl man die Umkehrung als +1 in x0 betrachten kann).

und bereits mit dieser Reihe Kombinatorik betreiben.

dann können wir die Normalverteilung von MO 0 und sigma 1 als Referenz nehmen.

obwohl ich noch darüber nachdenke...

 
Alexey Klenov:

Die Grundlage dafür wurde aus eben diesem Beispiel genommen.

Zeigen Sie mir also den Code

 
//+------------------------------------------------------------------+
//|testNormal.mq5 |
//|AlexKl |
//|https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "AlexKl"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| Skript-Programmstartfunktion|
//+------------------------------------------------------------------+
#include <Graphics\Graphic.mqh>
#include <Math\Stat\Normal.mqh>
#include <Math\Stat\Math.mqh>
input double mean_value=0;  // Mathematische Erwartung (Mittelwert)
input double std_dev=1;     // Standardabweichung (Standardabweichung)
void OnStart()
  {
   long chart=0;
   string name="GraphicNormal";
   double  dNormalRandom[];   // Zufällige Gleitkommazahlen
   int iNormalRandom[];       // gerundete Zahlen aus dem Array dNormalRandom
   int n=100000;       // Anzahl der Werte in der Stichprobe
   double x[];          // Histogramm-Intervallzentren
   double y[];          // Anzahl der Werte aus der Stichprobe, die in das Intervall fallen
   double max,min;      // Höchst- und Mindestwerte in der Stichprobe
// Erzeugung einer Reihe von Zufallsvariablen nach dem Normalgesetz
   MathRandomNormal(mean_value,std_dev,n,dNormalRandom);

   ArrayResize(iNormalRandom,ArraySize(dNormalRandom));
// Füllen des Arrays der gerundeten Zahlen aus dem Array der Zufallszahlen vom Typ double
   for(int i=0; i<ArraySize(dNormalRandom); i++)
     {
      iNormalRandom[i]=(int)round(dNormalRandom[i]);
     }
   CalculateHistogramArrayItsMy(iNormalRandom,x,y);


//Zeichnung
   CGraphic graphic;
   if(ObjectFind(chart,name)<0)
      graphic.Create(chart,name,0,0,0,780,580);
   else
      graphic.Attach(chart,name);
   graphic.BackgroundMain(StringFormat("Normal distribution mu=%G sigma=%G",mean_value,std_dev));
   graphic.BackgroundMainSize(16);
//--- alle Kurven zeichnen
//--- und nun zeichnen wir die theoretische Verteilungsdichtekurve
   graphic.CurveAdd(x,y,CURVE_LINES,"Theory");

//--- alle Kurven zeichnen
   graphic.CurvePlotAll();
   graphic.Update();
   int summ=0;
   for(int i=0; i<ArraySize(y); i++)
     {
      summ+=y[i];
     }
   Print("Gesamtbetrag bis Y" + summ);
  }
//+------------------------------------------------------------------+
bool CalculateHistogramArrayItsMy(const int &data[],double &intervals[],double &frequency[])
  {

   double minv=data[ArrayMinimum(data)];
   double maxv=data[ArrayMaximum(data)];
   int range=maxv-minv;
   ArrayResize(intervals,range+1);
   ArrayResize(frequency,range+1);
   for(int i=0; i<range+1; i++)
     {
      intervals[i]=minv+i;
     }
   for(int i=0; i<ArraySize(data); i++)
     {
      int ii=(MathAbs(minv)+data[i]);
      frequency[ii]+=1.0;
     }
   return (true);
  }
//+------------------------------------------------------------------+