Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 577
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
Bem, eu formaria tudo isto numa função, e chamá-la-ia quando precisasse - mesmo a cada toque (se for razoável e necessário), ou à abertura de uma vela nova - por exemplo, uma vez por hora, se trabalharmos no H1.
Com a função, é claro, é útil. Já tenho o código definido. Agora está claro. Pensarei, como levá-lo a esses propósitos que quero e compreendo, quando e em que fase tomar os dados necessários.
Se fosse absolutamente "o cúmulo da imprudência", seria banido.
WinAPI alarga grandemente as capacidades da MQL. E pode fazer algo estúpido mesmo sem dll.
E aqui está um exemplo de corda passando para a prancheta:
Bem feito, e também com comentários.
Obrigado.
Aqui está outra questão.
Seria possível emular um clique do rato em determinadas coordenadas?
Óptimo, e também com comentários.
Obrigado.
Mais uma pergunta.
É possível fazer uma emulação de um clique do rato nas coordenadas dadas?
Óptimo, e também com comentários.
Obrigado.
Mais uma pergunta.
É possível emular um clique do rato em determinadas coordenadas?
Sim, nós podemos.
Bem, eu formaria tudo numa função e chamá-la-ia quando precisasse - a cada toque (se necessário e razoável) ou à abertura de uma vela nova - por exemplo, uma vez por hora, se trabalharmos com H1.
Artem, entendo correctamente, se tivermos um laço:for(int i=0; i<copy_bars; i++) e houver um laço para(int j=0; j<copy_bars; j++) onde if(j===i) continua; ,
significará que a contagem é paralela e se tivermos cerca de 5 candelabros, a comparação continuará:
1 com 1 - descarte.
1 com 2, 1 com 3, 1 com 4, 1 com 5.
Então, um ciclo começará onde estará:
2 com 1, 2 com 3, 2 com 4, 2 com 5.
e assim por diante.
Será assim que vai ser?
Artem, entendo correctamente, que se tivermos um laço:for(int i=0; i<copy_bars; i++) e houver um laço para(int j=0; j<copy_bars; j++) onde if(j===i) continue; ,
significará que a contagem é paralela e se tivermos cerca de 5 candelabros, a comparação continuará:
1 com 1 - descarte.
1 com 2, 1 com 3, 1 com 4, 1 com 5.
Então, um ciclo começará onde estará:
2 com 1, 2 com 3, 2 com 4, 2 com 5.
e assim por diante.
Será o mesmo?
Sim.
Outra questão: se não precisamos de comparar a vela actual, então não precisamos de começar a contagem a partir de 1 e não de zero?
Ou devemos entender que aqui 0 é vela 1, 1 é vela 2, etc.?
Outra questão: se não precisamos de comparar a vela actual, então não precisamos de começar a contagem a partir de 1 e não de zero?
ou devemos entender que aqui 0 é vela 1, 1 é vela 2, etc.?
Aqui o zero é o início da matriz. E na matriz escrevemos os castiçais desde o primeiro até ..., não "até", mas no número que precisamos:
1 é o número de castiçais a copiar, e copy_bars é o número de candelabros a copiar.
Portanto, array[] contém o castiçal necessário na célula com índice 0 - 1 ou 1+copy_bars-1. Dependendo da direcção de indexação do array[] (ArraySetAsSeries() define a direcção de indexação, que pode ser verificada usando ArrayGetAsSeries(), ArrayIsSeries())
Aqui o zero é o início da matriz. E na matriz escrevemos castiçais de primeiro a ..., não "até", mas em número de castiçais de que precisamos:
1 é o número de castiçais a copiar, e copy_bars é o número de candelabros a copiar.
Portanto, array[] contém a vela necessária na célula com índice 0 - 1 ou 1+copy_bars-1. Dependendo da direcção de indexação do array[] (ArraySetAsSeries() define a direcção de indexação, que pode ser verificada com ArrayGetAsSeries(), ArrayIsSeries())
Esta programação. Mais para dentro da floresta....
Primeiro acabei de verificar o que mostra através de Alert. Parece ser vice-versa, ou seja, a vela mais próxima da actual tem o número máximo.
Depois verifiquei-o via:
série bool=ArrayIsSeries(dataCandle);
Alerta (série);
e o guião mostra "falso".
Pela minha lógica, se o falso está no lado errado, então o verdadeiro estará no lado certo.
Eu prescrevi:
ArraySetAsSeries (dataCandle, true); // mudar de direcção
bool series=ArrayIsSeries(dataCandle); //check again
Alerta (série); //escrever o resultado no ecrã.
Mas ainda fico "falso" depois disso.
Qual é o meu problema?
Oh, esta programação. Mais para dentro da floresta....
Verifiquei pela primeira vez apenas através de Alerta o que estava a dar. Acontece o contrário, ou seja, a vela mais próxima da vela actual tem o número máximo.
Depois verifiquei-o via:
série bool=ArrayIsSeries(dataCandle);
Alerta (série);
e o guião mostra "falso".
Pela minha lógica, se o falso está no lado errado, então o verdadeiro estará no lado certo.
Eu prescrevi:
ArraySetAsSeries (dataCandle, true); // mudar de direcção
bool series=ArrayIsSeries(dataCandle); //check again
Alerta (série); //escrever o resultado no ecrã.
Mas ainda fico "falso" depois disso.
Qual é o meu problema?
O DataCandles é uma estrutura. A matriz onde escrevemos as velas da história - matriz[]. E precisamos de a fazer como uma série cronológica para que a sua indexação coincida com a indexação de castiçais no gráfico. Ou seja, a célula zero da matriz[] corresponderá aos castiçais mais próximos da data actual.
Isto é, 1. copiar castiçais em array[], 2. fazer uma série cronológica, depois ler valores a partir dela para a estrutura.
Pode fazer sem array[] - basta escrever dados directamente do gráfico na estrutura, mas eu sugeri isto para compatibilidade com Cinco - permite copiar directamente apenas no indicador usando alto[i], baixo[i] e outros dados, mas no script ou Expert Advisor, temos primeiro de copiar o intervalo de história necessário para o array, o que eu fiz.