Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1446
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
1. Se a alça da base não for recebida, a base não precisará ser fechada.
2. Se INVALID_HANDLE for recebido, por que continuar a execução do programa? Acho que, nesse caso, é melhor interromper e retornar
Agora estou tentando abrir e fechar repetidamente um banco de dados inexistente e não consigo obter a impressão do erro. Acho que essa impressão ocorre no momento da criação de consultas à base, que não pôde ser aberta.
Criarei um Expert Advisor de teste mínimo que atualizará o registro no banco de dados a cada segundo. Execute-o em 10 pares e tudo ficará claro. Vou postá-lo aqui.
Interessante. Estarei aguardando...
Interessante. Estarei esperando...
Aqui está um especialista. Ele cria uma base (se ela ainda não existir) e grava a hora atual nela uma vez por segundo.
Não há Print() no código.
Executei-o em 10 pares e ele apresentou erros:
Para obter um erro, você precisa fechar e reiniciar o MT5 e, em seguida, todos os EAs começam a funcionar de forma síncrona.
Seria bom:
1. Entender como se livrar desse erro.
2. Inventar um mecanismo de modelo que fizesse fila no caso de a base não estar disponível.
Resolvi o ponto 2 adicionando Sleep() com tempo aleatório, mas parece uma muleta.
ATUALIZAÇÃO: Fiznovo upload do arquivo, pois o primeiro apresentou um erro.
Aqui está um especialista. Ele cria uma base (se ela ainda não existir) e grava a hora atual nela uma vez por segundo.
Não há Print() no código.
Executei-o em 10 pares e ocorreram erros:
Para obter um erro, você deve fechar e reiniciar o MT5 para que todos os Expert Advisors comecem a funcionar de forma sincronizada.
Seria bom:
1. Entender como se livrar desse erro.
2. Inventar um mecanismo de modelo que faça fila em caso de indisponibilidade da base.
Resolvi o ponto 2 adicionando Sleep() com tempo aleatório, mas parece uma muleta.
ATUALIZAÇÃO: Fiznovo upload do arquivo, pois o primeiro apresentou um erro.
Infelizmente, meu conhecimento não é suficiente. Apenas o suficiente para perceber que um erro está sendo impresso
DatabaseExecute(db, sql);
Não há possibilidade de verificar a disponibilidade antes de criar uma consulta.
O banco de dados é aberto, mas não é possível criar uma consulta.
Registro do terminal
registro do terminal
Acho que liguei os registros, mas não consigo calcular o lote. Não entendo por que ele não quer calcular em tempo real?
Suponho que liguei os registros, mas ele não consegue calcular o lote. Não entendo por que ele não quer calcular o real?
Não há registros, portanto, pode haver muitas vezes mais suposições.
Como opção, ao negociar cruzamentos, se na visão geral do mercado não for selecionado o par com a moeda do depósito, não haverá negociação.
Por exemplo, negociamos EURJPY, depositamos a moeda USD, na visão geral do mercado devem estar presentes EURUSD e USDJPY.
Não há registros, portanto, pode haver muitas vezes mais suposições.
Como opção, ao negociar cruzamentos, se o par com a moeda de depósito não estiver selecionado na visão geral do mercado, não será negociado.
Por exemplo, negociamos EURJPY, moeda de depósito USD, e na visão geral do mercado devem estar presentes EURUSD e USDJPY.
Conta em USD por centavo, negociando XAUUSD
Olá a todos. Não consigo desenhar uma seta na primeira barra usando buffers na MQL5.
Em MQL4, faço o seguinte:
Declaro uma variável global double XX[];
escrevo em init:
SetIndexBuffer(0,XX);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,108);
Em Oncalculate, escrevo:
XX[1]=High[1]; obtenho uma seta desenhada sobre o castiçal 1. e é isso
Faço o mesmo em MQL5:
Declarouma variável global double XX[];
escrevo em init:
SetIndexBuffer(0,XX,INDICATOR_DATA);
PlotIndexSetInteger(0,PLOT_ARROW,108);
Em Oncalculate, escrevo:
XX[1]=high[1]; - não desenha
XX[1]=iHigh(Symbol(),PERIOD_CURRENT,1); - também não desenha.
É claro que até mesmo no cabeçalho está especificado:
#property indicator_buffers 1
#property indicator_plots 1
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrGreen
#property indicator_width1 1
O que estou fazendo de errado, por favor, me diga !!!!