Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 645
![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
Taras, é possível fazer tal normalização gráfica para mudança de quadros por clique do mouse?
Às vezes, por hábito, clico quando o cursor está perto do botão, mas não gosto do resultado.
Não encontrei nada adequado na lista de tratamento de eventos, há apenasCHARTEVENT_CHART_CHANGE sem nenhuma descrição específica. Posso tentar amarrar um clique do mouse, mas até onde entendo o usuário não pode trabalhar com o menu do sistema, somente se ele criar seus próprios botões. Existe alguma solução simples?
Taras, é possível fazer tal normalização gráfica para mudança de quadros por clique do mouse?
Às vezes, por hábito, clico quando o cursor está perto do botão, mas não gosto do resultado.
Não encontrei nada adequado na lista de tratamento de eventos, há apenasCHARTEVENT_CHART_CHANGE sem nenhuma descrição específica. Posso tentar ligar o clique do botão do mouse, mas até onde entendo o usuário não pode trabalhar com o menu do sistema, somente se ele criar seus próprios botões. Existe alguma solução simples?
Ou seja, para clicar em algumas "zonas de sapateado" no gráfico?
Você pode, você precisa manter o controle das coordenadas do cursor e dos cliques do botão do mouse.
CHARTEVENT_MOUSE_MOVE
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Qualquer pergunta para iniciantes sobre MQL4, ajuda e discussão sobre algoritmos e códigos
Taras Slobodyanik, 2018.10.04 09:37
Você pretende clicar com o mouse em algumas "zonas de sapateado" na tabela?
Você pode, você precisa manter o controle das coordenadas do cursor e dos cliques do botão do mouse.
lembre-se do período atual de caracteres e em"CHARTEVENT_CHART_CHANGE" verifique as mudanças e faça o que você precisa fazer
Por favor, me diga por que a mesma função do corpo da EA OnTick() não funciona (ou melhor, funciona, mas falha em todos os gráficos corretamente)
Mas a partir do procedimento OnInit() funciona bem e a partir de um roteiro comum também. O Expert Advisor está instalado em 80 gráficos ao mesmo tempo (20 moedas, cada uma com 4 janelas W1 D1 H4 H1) pode apenas meu computador não aguentar? Por favor, informe. O objetivo do robô é emitir as mensagens MessageBox na tela, se for detectado um sinal em um dos gráficos. Talvez o computador esteja lento no momento do início destas mensagens?Estou tendo problemas para lembrar o período antes de um evento ser tratado, onde faço isso?
Decidido a rastrear por mensagem, acontece que CHARTEVENT_CHART_CHANGE é processado 2 vezes em um clique, a variável ctime é reinicializada.
#propriedade rigorosa
#janela_do_cartão_indicador de propriedade
int ctime;
nulo OnInit()
{
Print(" OnInit------------ 1 ", ChartPeriod(0));
Imprimir("OnInit ctime = ", ctime);
// ctime=ChartPeriod(0);
}
int OnCalculate(const int taxas_total,
const int prev_calculado,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
ctime=ChartPeriod(0);
retorno(taxas_total);
}
nulo OnChartEvent(const int int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if(id===CHARTEVENT_CHART_CHANGE)
{
Imprimir("CHARTEVENT_CHART_CHANGE é iniciado ctime=", ctime);
if(ctime!=PeriodoCartão(0))
{
Print(ChartPeriod(0), " CHANGED!!!!!!!!!!!!!!! ctime", ctime);
}
}
}
Adicionando indicador de hora em hora, depois mudando para diário
2018.10.05 01:04:45.171 _t1 CADJPY,Diário: CHARTEVENT_CHART_CHART_CHANGE é iniciado ctime=1440
2018.10.05 01:04:45.156 _t1 CADJPY,Daily: 1440 CHANGED 0
2018.10.05 01:04:45.156 _t1 CADJPY,Diário: CHARTEVENT_CHART_CHART_CHANGE é iniciado ctime=0
2018.10.05 01:04:45.156 _t1 CADJPY,Daily: inicializado
2018.10.05 01:04:45.156 _t1 CADJPY,Daily: OnInit ctime=0
2018.10.05 01:04:45.156 _t1 CADJPY,Daily: OnInit 1 1440
2018.10.05 01:04:45.156 _t1 CADJPY,H1: razão uninit 3
2018.10.05 01:02:02.000 _t1 CADJPY,H1: CHARTEVENT_CHART_CHART_CHANGE é iniciado ctime=60
2018.10.05 01:02:02.000 _t1 CADJPY,H1: 60 CHANGED 0
2018.10.05 01:02:02.000 _t1 CADJPY,H1: CHARTEVENT_CHART_CHART_CHANGE é iniciado ctime=0
2018.10.05 01:02:02.000 _t1 CADJPY,H1: inicializado
2018.10.05 01:02:02.000 _t1 CADJPY,H1: OnInit ctime=0
2018.10.05 01:02:02.000 _t1 CADJPY,H1: OnInit 1 60
2018.10.05 01:02:01.078 Indicador personalizado _t1 CADJPY,H1: carregado com sucesso
Estou tendo problemas para lembrar o período antes do evento ser processado, onde isso precisa ser feito?
Decidido a rastrear por mensagem, acontece que CHARTEVENT_CHART_CHANGE é processado 2 vezes em um clique, a variável ctime é reinicializada.
Coloque o código na mensagem corretamente! É muito difícil de ler nesta forma. Deve ser parecido com isto.
Quando você muda os parâmetros de um gráfico, o indicador é forçado a ser recarregado, leia o documento para o motivo da desinicialização e sua variável de motivo.
Você pode usar variáveis terminais globais para salvar os parâmetros necessários.
Insira o código corretamente na mensagem! É muito difícil lê-lo desta maneira. Deveria ser assim.
O indicador é forçado a reiniciar quando você muda os parâmetros do gráfico lê o documento pelo motivo da desinicialização e sua variável razão.
Você pode usar variáveis globais do terminal para salvar os parâmetros necessários.
Sim, você precisa salvar os valores na GlobalVariable, e então, na partida, verificar sua existência.
Ou seja, o número do gráfico, símbolo, período deve ser salvo.
E depois apagar variáveis desnecessárias, ou torná-las inicialmente como variáveis globais temporárias.
ps. você também pode armazenar informações em objetos no gráfico - desde que o gráfico exista, os objetos existem
Eu pensei que seria muito mais fácil :-)
Então uma pergunta bem infantil - meu código não envolve qualquer negociação ou gráfico, que tipo de programa devo usar?
Os roteiros são únicos, mas eles podem ser executados em loop? Eu declarei um indicador personalizado puramente por inércia, porque nunca usei Expert Advisors. Nunca os usei antes, mas eles reiniciam automaticamente, o que não preciso. precisarei de seu conselho.
ps
Os objetos podem ser de tamanho zero, para que visualmente não atrapalhem?