Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 282
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
void OnTick() { int period = 15; int timeis = returntick(period, 1).curtime; Print("timeis= ", TimeToStr(timeis,TIME_SECONDS)); É aqui que eu tento destruir o ponteiro }
Não está muito claro o que exatamente pode ser destruído aqui. Não é de se admirar que a memória vaze. O que é um ponteiro? Um ponteiro é uma referência ao endereço da memória onde a variável dinâmica criada é armazenada. Na verdade, você chama o procedimento de obter um ponteiro para a variável de classe, neste procedimento o objeto de classe é criado, colocado na memória, depois o ponteiro é devolvido à função de obter os carrapatos e.... é destruída quando se sai da função. Note que o ponteiro é destruído, mas a memória não é apagada! E a cada novo tique mais e mais memória é consumida! Para evitar este ponto em seu código, você deve primeiro remover a abreviatura e colocar o ponteiro em outra variável:TickReturn* temptick =returntick(período, 1);// pegar o ponteiro e colocá-lo em um tempo int variável é = temptick.curtime; // Obter o valor requerido do objeto pelo ponteiro ...... apagar o temptick; // Destruir o ponteiro e limpar a memória
E antes de destruir o ponteiro, é melhor verificar se ele está correto para evitar o erro de exclusão.
No geral, eu não me preocuparia com as indicações e a classe em particular, pois a tarefa é muito mais fácil na verdade e não há necessidade de usar a classe. Crie uma estrutura com campos necessários, declare uma variável global com o tipo desta estrutura, faça uma função para atualizar informações nesta estrutura a cada tick e use-a para coletar o que você precisa, pois a variável será global, você não precisará usá-la em funções e não precisará de ponteiros.
Obrigado, lembrei-me porque mudei para estenografia, a variável não é atualizada em loops (obviamente a função não é chamada) e preciso fazer um novo para cada espirro, e depois matá-lo. Em geral, é mais fácil trocar a vareta de retorno pela vareta de retorno.
Enviar um pós-pedido ao servidor com o número de conta
No servidor, verifique o número de entrada em relação a todas as linhas do arquivo CSV e, se houver uma correspondência, então a partir desta linha no arquivo, envie uma resposta para o terminal. Resta apenas ler a resposta do servidor no terminal e exibi-la no gráfico.
Em geral, é mais fácil implementar tais coisas no MySQL do que em arquivo.
Obrigado pela resposta, Vitaly!
Estou tentando entender isso por três dias, mas nada sai (sou um iniciante - no início de minha carreira)...
Você pode descrevê-lo com mais detalhes? Com qualquer exemplo...
Desculpe pela minha falta de compreensão...
E mais uma pergunta...
Eu queria que o feixe traçasse uma linha do preço atual - até o final do dia até o final do nível (23:59) (branco2), mas traça até o final do dia (conforme necessário), mas não no nível (branco2), e vai até o fundo do gráfico de fronteira.
E eu lhe dou qualquer um dos níveis (vermelho1, vermelho2, etc.), mas ele ainda brilha para cima ou para baixo até o infinito. Eu o escrevi corretamente para sempre iniciar o Beam deHigh[0], ou seja, com um novo castiçal ele muda para um novo castiçal (ou seja, segue o preço) ou ele desenha o Beam apenas uma vez? Os níveis estão sendo obtidos a partir do CSV. Por favor, ajude...
E mais uma pergunta...
Eu queria que o feixe traçasse uma linha do preço atual - até o final do dia até o final do nível (23:59) (branco2), mas traça até o final do dia (conforme necessário), mas não no nível (branco2), e vai até o fundo do gráfico de fronteira.
E eu o aconchego em qualquer um dos níveis (vermelho1, vermelho2, etc.), mas ele ainda brilha para cima ou para baixo até o infinito. Os níveis são obtidos a partir do CSV. Ajude a plz...
Verifique o valor do branco2 usando Alert ou Print.
Eu tentei verificar usando Alert e imediatamente escrevi "EURUSD Error FileOpen() para escrever" e todos os níveis do dia atual desapareceram... Os níveis de ontem e todos os anteriores permanecem... Então... A viga no local começa onde deveria e vai até o nível do branco2 de ontem, mas não no final do dia, e hoje verticalmente para baixo pode-se ver visualmente que ela pára no nível do branco2 de ontem.
Por que você precisa acessar o arquivo? Você tem o valor white2 e o emite com Alert("white2 = ", white2) antes de usá-lo;
Por que você precisa se referir ao arquivo? Você tem o valor de white2 e o emite com Alert("white2 = ", white2) antes de usá-lo;
Obrigado pelo esclarecimento.... Aqui está o que diz: branco2 = 0,0
p.s. Eu é que sou estúpido... White2 = 0,0 é para outros pares de moedas que não têm níveis em CSV. Mas há níveis para EURUSD em CSV e Alert mostra-os ontem (white2 1.1720) e hoje (white2 1.1810).
O raio começa onde deveria, mas vai até o nível do branco2 de ontem em 1.1720, ao invés do branco2 de hoje em 1.1810 e não vai ao final do dia 23:59, mas hoje pára no branco2 de ontem, ou seja, 1.1720.
algo incompreensível
descreveu uma função
int IsBelow
//>>>>>>>>>>>>>>>>>>>>>
{
Alerta("beg IsBelow");
Alerta("NextTick=",NextTick=",NextTick);
//---------------------------
//---------------------------
Alerta("NextTick=",NextTick=",NextTick);
Alerta("fim IsBelow");
}
//>>>>>>>>>>>>>>>>>>>>>>>
recebeu uma mensagem antes do corpo do ponto-e-vírgula expexto {
Pergunta qual ponto-e-vírgula é esperado ?
Por favor, explique ...
algo incompreensível
descreveu uma função
int IsBelow
//>>>>>>>>>>>>>>>>>>>>>
{
Alerta("beg IsBelow");
Alerta("NextTick=",NextTick=",NextTick);
//---------------------------
//---------------------------
Alerta("NextTick=",NextTick=",NextTick);
Alerta("fim IsBelow");
}
//>>>>>>>>>>>>>>>>>>>>>>>
recebeu uma mensagem antes do corpo do ponto-e-vírgula expexto {
Pergunta qual ponto-e-vírgula é esperado ?
Por favor, explique...
vazio IsBelow()
algo incompreensível
descreveu uma função
int IsBelow
//>>>>>>>>>>>>>>>>>>>>>
{
Alerta("beg IsBelow");
Alerta("NextTick=",NextTick=",NextTick);
//---------------------------
//---------------------------
Alerta("NextTick=",NextTick=",NextTick);
Alerta("fim IsBelow");
}
//>>>>>>>>>>>>>>>>>>>>>>>
recebeu uma mensagem antes do corpo do ponto-e-vírgula expexto {
Pergunta qual ponto-e-vírgula é esperado ?
Por favor, explique ...