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

 
Mostrou como. O cargo foi corrigido.
 
Estou vendo, obrigado.
Acho que posso esquecer o trabalho completo com MySQL em MQL (sem as minhas dlls)... pena...
 

O que não deve ser gostado na biblioteca?

No caso de um retorno de ponteiro, ele precisa ser estático e no mesmo processo.

 
Zhunko:

O que não deve ser gostado na biblioteca?

Se você fizer sua própria dll, não faz sentido quebrar parte do código na MQL e parte na libe. todo o MySQL irá para dentro desta dll.

 
Olá a todos. Algum conselho? VPS Windows Web Server 2008 32 bit - não R2 (RAM 256) - funcionará para MT4 ?
 
sergeev:

Se você fizer sua própria dll, não faz sentido quebrar parte do código em MQL e parte em lib. todo o MySQL irá para dentro desta dll.

É claro! Você não precisa escrever em MQL de forma alguma, se puder. Quase tudo está na DLL. Começando a transferir tudo para minha aplicação. Eu vou gerenciar o terminal remotamente.
 

Algoritmo de enumeração das frações

I). É necessário encontrar um algoritmo para enumerar as frações, para que isso aconteça:

A + B + C + n + ... = 100%

Cada elemento do conjunto {A, B, C, n} deve ter critérios padrão: restrições laterais máximas e mínimas e passo incremental do tipo: início, parada, íngreme;

Um exemplo do problema:

Dado um conjunto

Y{A,B,C,n};

Cada elemento desse conjunto pode variar de -100% a +100%, em etapas de 10%. A soma de todos os elementos modulo deve ser igual a 100%: A+B+C+n=100%.

Encontre uma matriz D(x,número_de_elementos_múltiplos_Y) que descreve a distribuição de todas as frações possíveis entre A, B, C, n, por exemplo

A B C

100 0 0

90 10 0

90 0 10

80 10 10

80 0 20

...

Exemplos de achados incorretos:

A B C

-50 30 120 - o elemento C é maior que o limite de 100%.

35 30 35 - a etapa não é igual a 10%

70 30 10 - soma não igual a 100%

-50 60 90 - soma de todos os elementos modulo não é igual a 100% (50+60+90=200)

II*). Encontrar solução de busca de frações para o conjunto N com otimizador MT5/MT4 para que as restrições de cada elemento do conjunto possam ser definidas com restrições padrão Start, Step, Stop.

 


Como nota introdutória, aqui está um algoritmo que implementa um caso especial do problema:

//+------------------------------------------------------------------+
//|                                                  Optimizator.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int A, B, C;
   int handle = FileOpen("test.csv",FILE_WRITE,'\t');
   for(A=0; A<=100;A+=10)
   {
      for(B=0;B<=100-A;B+=10){
         C=100-(A+B);
         FileWrite(handle,A,B,C);      
      }
   }
   FileClose(handle);
  }
//+------------------------------------------------------------------+

Como você pode ver, cada elemento do conjunto, exceto o último, requer um adicional para o loop. Esta não é uma boa solução, pois ao alterar o número de elementos do conjunto, você tem que inserir ou apagar loops extras.

 
C-4:


Como nota introdutória, aqui está um algoritmo que implementa um caso especial do problema:

Como você pode ver, cada elemento do conjunto, exceto o último, requer um adicional para o loop. Esta não é uma boa solução, pois ao alterar o número de elementos do conjunto, é necessário inserir ou apagar loops adicionais.


Faça apenas um loop para um de A ou B ou C.

Dentro dela, analisar se há lacunas

 
sergeev:

fazer apenas um loop em um de A ou B ou C.

Dentro dela, analisar se para que as lacunas sejam alcançadas


A questão é que ainda B e C serão combinados um com o outro, e você precisa de um novo laço para isso. Talvez este problema possa ser resolvido recursivamente, embora possa haver algoritmos mais simples.