Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1236
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
Saudações. Você poderia me dizer algo?
É possível obter o nome de uma variável em vez de seu valor? Por exemplo, imprima um nome variável.
#define PRINTVAR(x) Print(" " ##x); Print(x)
void OnStart()
{
long anyvar=(long)TimeLocal();
PRINTVAR(anyvar);
}
resultado:
2020.08.24 14:46:05.394 test (USDCHF,H1) anyvar
2020.08.24 14:46:05.394 test (USDCHF,H1) 1598280365
Possivelmente uma característica de inédito :-) semelhante ao "C", mas ainda não utilizável
Você precisa obter o nome da própria variável.
Sem conhecer o nome, e sem nenhuma característica distintiva, isto não pode ser feito. Você pode, por exemplo, obter os nomes de todas as variáveis iguais a 5 e imprimir seus nomes, encontrados, impressos. Ou nomes de todas as variáveis das cordas. Mas em qualquer caso, é uma enumeração variável.
Maxim Kuznetsov Obrigado
Sim, é também uma questão de selecionar uma variável pelo nome.
Por exemplo, existem variáveis a1, a2, a3, a4, a5, etc. Você tem que pesquisar também através destas variáveis, escolher qual delas tem "a" e 5, e usá-la.
então quase não há como. Os nomes variáveis só são acessíveis a partir do pré-processador (#macros).
Devemos mudar a lógica interna, por exemplo, usar uma matriz de nomes de hash de objeto em vez de variáveis. Então, tanto a chave como o valor estão disponíveis de uma só vez. Ou use SQLite em caso de armazenamento a longo prazo. Ou combiná-los :-)
Mas é assim, sem conhecimento de algoritmo, conselhos em vão.
Sim, é também uma questão de selecionar uma variável pelo nome.
Por exemplo, existem variáveis a1, a2, a3, a4, a5, etc. Precisamos enumerar também estas variáveis, escolher qual delas tem "a" e 5, e usá-la.
Escreva os nomes em uma matriz e passe através da matriz.
Bom dia a todos! Minha pergunta é sobre o testador MT4, linguagem mql4
Por favor, me diga qual é o meu erro ao inicializar uma matriz. Eu criei uma matriz unidimensional com 750 elementos. Inicializei todos os 750 elementos com valor 50,0.
Isso significa que no primeiro e seguintes ticks, o primeiro item de matriz com índice 0 deve ter valor 50,0 e o último item de matriz com índice 749 deve ter valor 50,0.
De fato, acontece que o último item da matriz tem valor 0. E a primeira, como deveria ser, é 50,0.
A pergunta. Como fazer com que todos os valores da matriz (incluindo o último) tenham valor 50,0 após a inicialização
Aqui está meu código
Print("========================= 749======= ",S_L[749]," =0= ",S_L[0]);
}
Na parte inferior do valor de impressão() do diário
2020.08.24 17:43:55.427 GBPUSD,M1: 52255 tick events (1440 bars, 53256 bar states) processados em 0:00:00.047 (tempo total 0:00:02.422)
2020.08.24 17:43:55.407 2010.01.04 00:00:00:53 TESTER(B.ORG) GBPUSD,M1: ========================= 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:52 TESTER(B.ORD) GBPUSD,M1: ======= 749========================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:50 TESTER(B.ORD) GBPUSD,M1: ======= 749========================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:47 TESTER(B.ORD) GBPUSD,M1: ======= 749 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:45 TESTER(B.ORD) GBPUSD,M1: ========================= 749 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:43 TESTER(B.ORD) GBPUSD,M1: ========================= 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:41 TESTER(B.ORD) GBPUSD,M1: ======= 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:40 TESTER(B.ORD) GBPUSD,M1: ======= 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:37 TESTER(B.ORD) GBPUSD,M1: 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:35 TESTER(B.ORD) GBPUSD,M1: ======= 749 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:32 TESTER(B.ORD) GBPUSD,M1: 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:30 TESTER(B.ORD) GBPUSD,M1: ======= 749 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:28 TESTER(B.ORDENS) GBPUSD,M1: ======= 749 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:26 TESTER(B.ORD) GBPUSD,M1: ========================= 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:25 TESTER(B.ORD) GBPUSD,M1: ======= 749 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:22 TESTER(B.ORD) GBPUSD,M1: ========================= 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:20 TESTER(B.ORD) GBPUSD,M1: ======= 749========================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:17 TESTER(B.ORD) GBPUSD,M1: ======= 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:15 TESTER(B.ORD) GBPUSD,M1: ========================= 749 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:13 TESTER(B.ORD) GBPUSD,M1: 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:11 TESTER(B.ORD) GBPUSD,M1: ========================= 749 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:10 TESTER(B.ORD) GBPUSD,M1: ======= 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:07 TESTER(B.ORD) GBPUSD,M1: ======= 749 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00:05 TESTER(B.ORD) GBPUSD,M1: ========================= 749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:02 TESTER(B.ORD) GBPUSD,M1: ========================= 749========================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00 TESTER(B.ORDENS) GBPUSD,M1: 749======= 0 = 0= 50
2020.08.24 17:43:55.385 2010.01.01.01 00:00:00 Teste(B.ORD.) iniciado
Obrigado pela ajuda
Aqui está o meu.
Onde?))
Onde?)))
Na parte superior do meu posto editado. Obrigado pela resposta.
ANDREY:
Pergunta. Como posso fazer com que todos os valores da minha matriz (incluindo o último) tenham um valor de 50,0 após a inicialização?
Obrigado pela dica. A propósito, eu queria esclarecer..... No tutorial de Kovalev ele diz que a matriz pode ser inicializada simultaneamente com sua declaração (como eu fiz), sem nenhuma função especial. Eu sei que o tutorial de Kovalev está um pouco ultrapassado. P. Eu entendo corretamente que agora em mql4, os arrays devem ser inicializados apenas usando uma função?
Obrigado.