Qualquer pergunta de um PROFI para um SUPER PROFI - 1. - página 20
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Dado:
Na função init() do EA, um gerador MQL PSP é inicializado: MathSrand(...). Quando o terminal inicia, várias (para maior clareza, digamos três) cópias do Expert Advisor são carregadas a partir do modelo. O carregamento é rápido, portanto é muito provável (e quase sempre é) que as funções TimeLocal() e TimeCurrent() retornem os mesmos valores em todas as cópias.
Pergunta:
Que truques existem para conseguir que a PRNG rubrique números diferentes em cópias diferentes da EA? Em outras palavras, onde (com o mínimo esforço de programação) obter o elemento de aleatoriedade?
Dado:
Na função init() do EA, um gerador MQL PSP é inicializado: MathSrand(...). Quando o terminal inicia, várias (para maior clareza, digamos três) cópias do Expert Advisor são carregadas a partir do modelo. O carregamento é rápido, portanto é muito provável (e quase sempre é) que as funções TimeLocal() e TimeCurrent() retornem os mesmos valores em todas as cópias.
Pergunta:
Que truques existem para conseguir que a PRNG rubrique números diferentes em cópias diferentes da EA? Em outras palavras, onde (com o mínimo esforço de programação) obter o elemento de aleatoriedade?
GetTickCount ?
pode funcionar, mas não com certeza...
Um milissegundo para um programa pode ser uma eternidade).
pode funcionar, mas não com certeza...
opção 2 - usar variáveis globais para criar "semáforos" para rubricar os especialistas em seqüência.
Pergunta sobre a busca de filas da dll em mql.
função mysql_fetch_row da libmysql.dll retorna tipo MYSQL_ROW
Este tipo é definido como: typedef char** MYSQL_ROW
Como chegar a este conjunto de fios devolvidos?
As dimensões da matriz são conhecidas?
mas o comprimento de cada fila não é.
Há outra coisa nesse exemplo de link - obter um ponteiro de *comprimento.
, linha[i] ? linha[i] : "NULL"); }Acontece que também é uma matriz... Mas como chegar a ele...
aqui está o que você recebe na MQL quando apenas passa o resultado de mysql_fetch_row para string
p0ƒu0ƒ;1;a
onde
p0ƒu0ƒ é o endereço (8 bytes) da cadeia
;1;a são seus dados utilizáveis
mas se você definir para int, então ao invés de p0ƒ o endereço é 42152040
Se o ponteiro para a corda não mudar enquanto o programa estiver em execução, você pode retornar o ponteiro para a corda sem copiá-lo para o buffer.
Então não há como fazer isso na MQL? Nem mesmo na MQL5?
Se o ponteiro para a corda não mudar enquanto o programa estiver em execução, você pode retornar o ponteiro para a corda sem copiá-lo para o buffer.
Simplesmente