Alle Fragen von einem PROFI an einen SUPER PROFI - 1. - Seite 17

 
Bin ich richtig in der Annahme, dass ich die Zeichenfolgen in ein Integer-Array konvertieren müssen?
 
hrenfx:
Bin ich richtig in der Annahme, dass ich die Zeichenfolgen in ein Integer-Array konvertieren müssen?
Zu Unicode. Das Integer-Array muss nur durch die DLL ersetzt werden
 

Das hier?

#define SIZEOF_INT 4
#define BYTE_BITS 8
#define SIZEOF_ANSI 1
#define SIZEOF_UNICODE 2

void StringToINT( string Str, int& Buffer[], bool UniCode = FALSE )
{
  int Koef;
  
  if (UniCode)
    Koef = SIZEOF_UNICODE;
  else
    Koef = SIZEOF_ANSI;
    
  int i = 0, j, Len = StringLen(Str);
  int Pos = 0, Size =  Koef * Len / SIZEOF_INT;
    
  if ((Koef * Len) % SIZEOF_INT > 0)
    Size++;
    
  ArrayResize(Buffer, Size);
    
  while (i < Len)
  {
    Buffer[Pos] = 0;
    
    for (j = 0; j < SIZEOF_INT / Koef; j++)
    {
      if (i < Len)
        Buffer[Pos] |= StringGetChar(Str, i) << (Koef * j * BYTE_BITS);
        
      i++;
    }
    
    Pos++;
  }
  
  return;
}

string INTToString( int& Buffer[], bool UniCode = FALSE )
{
  string Str = "";
  int Tmp, Size = ArraySize(Buffer);
  int Koef;
  
  if (UniCode)
    Koef = SIZEOF_UNICODE;
  else
    Koef = SIZEOF_ANSI;
  
  for (int i = 0; i < Size; i++)
  {
    Tmp = Buffer[i];
    
    while (Tmp != 0)
    {
      Str = Str + CharToStr(Tmp & 0xFF);
      
      Tmp >>= Koef * BYTE_BITS;
    }
  }  
  
  return(Str);
}

void start()
{
  int Buffer[];
  string Str = "abcde";
  
  StringToINT(Str, Buffer, FALSE); // ANSI
  Str = INTToString(Buffer, FALSE); // ANSI
  Print(ArraySize(Buffer));

  Print(Str);

  StringToINT(Str, Buffer, TRUE); // UNICODE
  Str = INTToString(Buffer, TRUE); // UNICODE  

  Print(ArraySize(Buffer));
  Print(Str);
  
  return;
} 
 

Ich danke Ihnen allen für Ihre Hilfe und Teilnahme.

auf Seite 15 - Zhunko und TheXpert haben mich bereits auf den richtigen Weg gebracht und ich habe fast alles richtig gemacht :)


Aber aus Unerfahrenheit habe ich es vergessen und die Funktion MultiByteToWideChar anstelle von CP_ACP an CP_UTF8 gesendet

Gott sei Dank ist Ilnur gekommen und hat meinen Code korrigiert, sonst wollte ich diesen Roboter in MT4 aufgeben


Nochmals vielen Dank an alle für die Lösung, wir sind eine Bande zusammen!:)

 
Dateien:
 

Ich entwickle einen Indikator, der eine Normalverteilungsglocke enthält. Hier liegt also das zu lösende Problem.

Um die statistische Signifikanz der erhaltenen Ergebnisse abzuschätzen, müssen wir den Wert der Standardabweichung eines Zufallsprozesses zum Zeitpunkt der Prüfung N ermitteln. In diesem Fall ist der mathematische Erwartungswert im Voraus bekannt und gleich Null, während die Wahrscheinlichkeit eines positiven Ergebnisses (+1) bei jedem Versuch gleich der Wahrscheinlichkeit eines negativen Ergebnisses (-1) ist und dementsprechend 0,5 beträgt.

Beispiel 1. Zwei Spieler spielen eine Partie Eagle, bis sie 1000 Münzen geworfen haben. Bestimmen Sie die Grenzen des Bereichs, in dem einer von ihnen gewinnt und der andere mit einer Wahrscheinlichkeit von 99,7 % verliert.

Das heißt, man braucht nur eine Formel für eben diese Sigma-Kurve. Ich weiß, das Problem ist so alt wie die Welt, und ich selbst weiß, wie man diese Abweichungen auf der Grundlage der verfügbaren Sequenz (MNC) berechnet, aber ich muss es selbst berechnen, ohne BP selbst.

 
C-4:

Ich entwickle einen Indikator, der eine Normalverteilungsglocke enthält. Hier liegt also das zu lösende Problem.

Um die statistische Signifikanz der erhaltenen Ergebnisse abzuschätzen, müssen wir den Wert der Standardabweichung eines Zufallsprozesses zum Zeitpunkt der Prüfung N ermitteln. In diesem Fall ist der mathematische Erwartungswert im Voraus bekannt und gleich Null, während die Wahrscheinlichkeit eines positiven Ergebnisses (+1) bei jedem Versuch gleich der Wahrscheinlichkeit eines negativen Ergebnisses (-1) ist und dementsprechend 0,5 beträgt.

Beispiel 1. Zwei Spieler spielen eine Partie Eagle, bis sie 1000 Münzen geworfen haben. Bestimmen Sie die Grenzen des Bereichs, in dem einer von ihnen gewinnt und der andere mit einer Wahrscheinlichkeit von 99,7 % verliert.

Das heißt, man braucht nur eine Formel für eben diese Sigma-Kurve. Ich weiß, das Problem ist so alt wie die Welt, und ich selbst weiß, wie man diese Abweichungen auf der Grundlage der verfügbaren Sequenz (OLS) berechnet, aber ich muss es selbst berechnen, ohne BP.

C-4,

Für eine Binomialverteilung, wie sie hier vorliegt (und die sich einer Normalverteilung gut annähert, wenn N groß ist), ist die Standardabweichung (sigma) sqrt(N*p*q), wobei N die Anzahl der Versuche, p die Wahrscheinlichkeit eines einzelnen Gewinns und q = 1-p die Wahrscheinlichkeit eines einzelnen Verlusts ist.

die Wurzel hinzugefügt)))

 

Das heißt, sqrt(1000*0,5*0,5) = sqrt(250) = 15,81

Dementsprechend passen 99,7 % innerhalb von plus/minus drei Sigmas 3*15,81 = 47,434

 
Im Allgemeinen kann man zur näherungsweisen Bestimmung jedes Quantils des Binomialschemas den Satz des Mois-Laplace-Integrals verwenden (google). Die Werte der Funktion F(x) sind gut tabelliert, und es gibt Algorithmen, die eine numerische Integration durchführen. Das Problem ist ein Standardproblem, das bereits millionenfach gelöst wurde)
 
alsu:

Das heißt, sqrt(1000*0,5*0,5) = sqrt(250) = 15,81

Dementsprechend liegen 99,7 % von ihnen innerhalb von plus oder minus drei Sigmas 3*15,81 = 47,434


Danke für den Hinweis. Aber aus irgendeinem Grund scheint die Funktion ein bisschen eng zu sein:

Es wurden 500 SBs verwendet, und irgendwie scheint es nicht so, dass 99,7 % von ihnen innerhalb von drei Sigmas liegen.