Cualquier pregunta de un PROFI a un SUPER PROFI - 1. - página 17

 
¿Estoy en lo cierto al suponer que tengo que convertir las cadenas en una matriz de enteros?
 
hrenfx:
¿Estoy en lo cierto al suponer que tengo que convertir las cadenas en una matriz de enteros?
A Unicode. La matriz de enteros sólo debe ser sustituida por la DLL
 

¿Esto?

#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;
} 
 

Gracias a todos por su ayuda y participación.

en la página 15 - Zhunko y TheXpert ya me han indicado la dirección correcta y he hecho casi todo bien :)


Pero por inexperiencia, me olvidé y envié la función MultiByteToWideChar en lugar de CP_ACP a CP_UTF8

Gracias a Dios que Ilnur ha aparecido y ha corregido mi código, de lo contrario quería abandonar este robot en MT4


Gracias de nuevo a todos por la solución, ¡somos una pandilla juntos!:)

 
Archivos adjuntos:
 

Estoy desarrollando un indicador que incorpora una campana de distribución normal. En consecuencia, este es el problema que hay que resolver.

Para estimar la significación estadística de los resultados obtenidos necesitamos encontrar el valor de la desviación estándar de un proceso aleatorio en el momento de la prueba N. En este caso la expectativa matemática se conoce de antemano y es igual a cero, mientras que la probabilidad de resultado positivo (+1) de cada ensayo es igual a la probabilidad de resultado negativo (-1) y es igual a 0,5 correspondientemente.

Ejemplo 1. Dos jugadores jugarán una partida de águila hasta que hagan 1000 lanzamientos de moneda. Determine los límites del rango, en el que uno de ellos ganará y el otro perderá con una probabilidad del 99,7%.

Es decir, todo lo que se necesita es una fórmula para esta misma curva sigma. Lo sé, el problema es tan viejo como el mundo y yo mismo sé cómo calcular estas desviaciones sobre la base de la secuencia disponible (MNC), pero tengo que calcular por sí mismo, sin BP sí mismo.

 
C-4:

Estoy desarrollando un indicador que incorpora una campana de distribución normal. En consecuencia, este es el problema que hay que resolver.

Para estimar la significación estadística de los resultados obtenidos necesitamos encontrar el valor de la desviación estándar de un proceso aleatorio en el momento de la prueba N. En este caso la expectativa matemática se conoce de antemano y es igual a cero, mientras que la probabilidad de resultado positivo (+1) de cada ensayo es igual a la probabilidad de resultado negativo (-1) y es igual a 0,5 correspondientemente.

Ejemplo 1. Dos jugadores jugarán una partida de águila hasta que hagan 1000 lanzamientos de moneda. Determine los límites del rango, en el que uno de ellos ganará y el otro perderá con una probabilidad del 99,7%.

Es decir, todo lo que se necesita es una fórmula para esta misma curva sigma. Lo sé, el problema es tan antiguo como el mundo, y yo mismo sé cómo calcular estas desviaciones en base a la secuencia disponible (OLS), pero necesito calcularlo por sí mismo, sin BP.

C-4,

Para una distribución binomial, que es el caso que nos ocupa (y que se aproxima bien a una distribución normal cuando N es grande), la desviación estándar (sigma) es sqrt(N*p*q), donde N es el número de ensayos, p es la probabilidad de una sola victoria, q = 1-p es la probabilidad de una sola pérdida.

la raíz añadida)))

 

Es decir, sqrt(1000*0,5*0,5) = sqrt(250) = 15,81

En consecuencia, el 99,7% se ajusta a más o menos tres sigmas 3*15,81 = 47,434

 
En general, para aproximar cualquier cuantil del esquema binomial, se puede utilizar el teorema integral de Mois-Laplace (google). Los valores de la función F(x) están bien tabulados, y existen algoritmos que realizan la integración numérica. El problema es estándar, por lo que ya se ha resuelto un millón de veces)
 
alsu:

Es decir, sqrt(1000*0,5*0,5) = sqrt(250) = 15,81

Por lo tanto, el 99,7% de ellos están dentro de más o menos tres sigmas 3*15,81 = 47,434


Gracias por el consejo. Pero por alguna razón la función parece un poco estrecha:

Se utilizaron 500 SBs y, de alguna manera, no parece que el 99,7% de ellas se ajusten a tres sigmas.

Razón de la queja: