Qualquer pergunta de um PROFI para um SUPER PROFI - 1. - página 17

 
Estou correto ao assumir que preciso converter as cordas para uma matriz inteira?
 
hrenfx:
Estou correto ao assumir que preciso converter as cordas para uma matriz inteira?
Para Unicode. A matriz inteira é apenas para ser substituída pela DLL
 

Isto?

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

Obrigado a todos por sua ajuda e participação.

na página 15 - Zhunko e TheXpert já me apontaram na direção certa e eu fiz quase tudo certo :)


Mas por inexperiência, esqueci e enviei a função MultiByteToWideChar em vez de CP_ACP para CP_UTF8

Graças a Deus Ilnur apareceu e corrigiu meu código, senão eu queria desistir deste robô no MT4


Mais uma vez obrigado a todos pela solução, somos uma gangue juntos!:)

 
Arquivos anexados:
 

Estou desenvolvendo um indicador que incorpora uma campainha de distribuição normal. Assim sendo, aqui está o problema a ser resolvido.

Para estimar a significância estatística dos resultados obtidos, precisamos encontrar o valor do desvio padrão de um processo aleatório no momento do teste de N. Neste caso, a expectativa matemática é conhecida antecipadamente e igual a zero, enquanto a probabilidade de resultado positivo (+1) de cada ensaio é igual à probabilidade de resultado negativo (-1) e igual a 0,5 correspondentemente.

Exemplo 1. Dois jogadores jogarão um jogo de yarmulkes até fazer 1000 lançamentos de moedas. Determinar os limites da faixa, na qual um deles ganhará e o outro perderá com probabilidade 99,7%.

Ou seja, tudo o que é necessário é uma fórmula para esta mesma curva sigma. Eu sei, o problema é tão antigo quanto o mundo e eu mesmo sei calcular esses desvios com base na seqüência disponível (MNC), mas preciso calculá-lo por si só, sem a própria BP.

 
C-4:

Estou desenvolvendo um indicador que incorpora uma campainha de distribuição normal. Assim sendo, aqui está o problema a ser resolvido.

Para estimar a significância estatística dos resultados obtidos, precisamos encontrar o valor do desvio padrão de um processo aleatório no momento do teste de N. Neste caso, a expectativa matemática é conhecida antecipadamente e igual a zero, enquanto a probabilidade de resultado positivo (+1) de cada ensaio é igual à probabilidade de resultado negativo (-1) e igual a 0,5 correspondentemente.

Exemplo 1. Dois jogadores jogarão um jogo de águia até fazer 1000 lançamentos de moedas. Determinar os limites da faixa, na qual um deles ganhará e o outro perderá com probabilidade 99,7%.

Ou seja, tudo o que é necessário é uma fórmula para esta mesma curva sigma. Sei que o problema é tão antigo quanto o mundo, e eu mesmo sei como calcular esses desvios com base na seqüência disponível (OLS), mas preciso calculá-lo por si só, sem a BP.

C-4,

Para uma distribuição binomial, que é o caso aqui (e que se aproxima bem de uma distribuição normal quando N é grande), o desvio padrão (sigma) é sqrt(N*p*q), onde N é o número de tentativas, p é a probabilidade de uma única vitória, q = 1-p é a probabilidade de uma única perda.

a raiz adicionada))))

 

I.e. sqrt(1000*0,5*0,5) = sqrt(250) = 15,81

Portanto, 99,7% cabe dentro de mais ou menos três sigmas 3*15,81 = 47,434

 
Em geral, para determinar aproximadamente qualquer quantidade do esquema binomial, pode-se usar o teorema integral Mois-Laplace (google). Os valores da função F(x) são bem tabulados, e existem algoritmos que realizam a integração numérica. O problema é padrão, por isso já foi resolvido um milhão de vezes)
 
alsu:

Isto é, sqrt(1000*0,5*0,5) = sqrt(250) = 15,81

Portanto, 99,7% deles estão dentro de mais ou menos três sigmas 3*15,81 = 47,434


Obrigado pela dica. Mas por alguma razão, a função parece um pouco estreita:

Foram utilizadas 500 SBs e, de alguma forma, não parece que 99,7% delas se encaixem em três sigmas.