Erros, bugs, perguntas - página 940

 

Boa tarde.

Pode dizer-me o que pode ser feito ...

Em vez de C:\Fichas de programas\MT 5 ......... tudovai em C:UtentesIamAppDataRoamingMetaQuotesTerminal

Desinstalado e instalado o MT 5 várias vezes - o mesmo resultado. Tudo isto aconteceu após a instalação do Windows 8.

Cumprimentos, E.Kovalev

 
erkov:

Boa tarde.

Pode dizer-me o que pode ser feito ...

Em vez de C:\Fichas de programas\MT 5 ......... tudovai em C:UtentesIamAppDataRoamingMetaQuotesTerminal

Desinstalado e instalado o MT 5 várias vezes - o mesmo resultado. Tudo isto aconteceu após a instalação do Windows 8.

Atenciosamente, E. Kovalev

Tenho o mesmo no meu desktop 7 e todos os Expert Advisors, induções, etc. estão instalados no mesmo.

Aparentemente, é "por defeito".

também gostaria de o alterar? não é conveniente chegar à pasta....

 
Violação de acesso escreva para 0x000000001535C1D8


isto é o que o guião dá, o guião chama o mesmo indicador num loop, apenas os parâmetros mudam, após cerca de 300 chamadas esta mensagem

no início do laço, crio uma pega

chamar o indicador

no final de cada ciclo colocar IndicatorRelease(...);

talvez algo mais precise de remover o indicador

 
vgeny:

Eu tenho o mesmo nos meus 7, todos os EAs, induções, etc. são colocados lá

este deve ser o "padrão".

também gostaria de o mudar? não é conveniente chegar à pasta....

Veja na ajuda integrada do terminal - MetaTrader 5 AjudaStart Menu → Run Terminal:

Modo convidado

A distinção do modo convidado do lançamento do terminal do cliente é a localização dos seus ficheiros editáveis separadamente dos ficheiros imutáveis. Este modo é activado quando o terminal é instalado na pasta do sistema (pasta OS, Ficheiros de Programas) e os direitos do utilizador para nele escrever são limitados.

O modo convidado também está activado nas seguintes situações:

  • Se o UAC (User Account Control) estiver activado.
  • Se ligar a um computador à distância (Remote Desktop Protocol, RDP).

Nas situações acima referidas, todos os ficheiros terminais modificáveis, dependendo do sistema operativo utilizado, são armazenados nos seguintes directórios:

Microsoft Windows XP:

  • C:Documentos e Definições Nome de Utilizador Dados deAplicação Citações de Meta

Microsoft Windows Vista e mais tarde:

  • C:Nome de utilizador Dados de aplicação de itinerário C:Cotas deeta

Aqui "C" é a letra de uma unidade lógica onde o sistema operativo está instalado, "username" é o nome da conta no sistema operativo, sob o qual o terminal foi instalado, e "instance_id" é um identificador único gerado com base no caminho para um directório, onde o terminal está instalado.

Para um acesso rápido a estas pastas, o terminal fornece um comando especial - "Abrir o directório de dados Abrir directório de dados" localizado no menu "Ficheiro".

  • No modo convidado, cada conta Windows terá um directório diferente para armazenar ficheiros terminais alterados.
  • Para forçar o terminal a arrancar no modo principal, inicie-o a partir da linha de comando com / comutador portátil.
  • A descrição detalhada da estrutura do ficheiro do terminal do cliente e dos seus objectivos é dada na secção correspondente.

Se não quiser ter problemas com o sistema de segurança - não instale o terminal em/Program Files/ folder.

Leia também o artigo A Quick Dive into MQL5


 
vgeny: antes da impressão

k2 = NormalizeDouble(k2, 2);

No diário de bordo, é assim

0.07000000000000001

e apenas quando o coeficiente é 0,07

tipo k2 duplo k2;

o que pode ser?

Aparentemente, é exactamente assim que este número se parece após a normalização. Veja na referência à nota que descreve a função NormalizeDouble(): o que irá imprimir a seguinte linha?

Print("DoubleToString(a,8)=",DoubleToString(a,8)); // выведем с заданной точностью

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
vgeny: Violação de acesso escreva para 0x000000001535C1D8

isto é o que o guião dá, o guião chama o mesmo indicador num loop, apenas os parâmetros mudam, após cerca de 300 chamadas esta mensagem

Eu formulo a pega no início do laço, indicador de chamada, no fim de cada laço coloco IndicatorRelease(...);

talvez algo mais precise de remover o indicador

Chamada de indicador contínua em loop? É uma forma muito difícil. Aqui, encontre o início e leia todo o tópico cuidadosamente: De facto, em 99% dos casos, a chamada IndicatorRelease é um erro lógico do programador
 
vgeny:

Por favor, informe porque é que isto acontece com a linha de laço

for(k2 = 0,01; k2 < 0,1; k2 += 0,01)

Envio o coeficiente k2 para impressão

Imprimir(k2);

antes da impressão

k2 = NormalizeDouble(k2, 2);

é o que parece na revista

0.07000000000000001

e apenas quando o coeficiente é 0,07

tipo k2 duplo k2;

o que pode ser?

Esta questão já foi discutida muitas vezes.

Leia-o aqui.

 
Yedelkin:
Chamar continuamente o indicador em loop? É uma forma muito difícil de o fazer. Aqui, encontre o início e leia todo o tópico cuidadosamente: De facto, em 99% dos casos, a chamada IndicatorRelease é um erro lógico do programador

ok 900 páginas))

Aconselhar outra forma de inspeccionar a linha indicadora, 10000 variantes diferentes de parâmetro indicador, resultado de cada inspecção para propagação, etc., guardar resultado, tomar o parâmetro seguinte, etc.

por exemplo, se considerasse o MA, 10.000 períodos, como implementaria isto?

 
alexvd:

A questão já foi discutida muitas vezes.

Leia-o aqui.

OK, obrigado pela sua paciência e compreensão)))))))
 

vgeny:

Yedelkin:
Chamando continuamente o indicador num loop? É uma forma muito difícil. Aqui, encontre o início e leia atentamente todo o tópico: De facto, em 99% dos casos, a chamada IndicatorRelease é um erro lógico do programador

ok 900 páginas))

Não, não 900 páginas. O tópico sobre o uso ineficiente do IndicatorRelease() dificilmente obterá mais de 10 páginas nas proximidades desta ligação. É por isso que o aconselhei a "encontrar o início" do assunto. Não é necessário reler o ramo geral "Erros, insectos, perguntas" para isso.

vgeny : Aconselhar-vos-ei outra forma de examinar a linha indicadora, examinarei o resultado de cada parâmetro, guardarei o resultado e tomarei o próximo e assim por diante.

Isto é, precisa de 10 mil indicadores para análise (10 mil versões de um indicador com parâmetros diferentes)? Penso que a resposta a esta pergunta já foi dada - tente pesquisar os tópicos do fórum com a palavra-chave IndicatorRelease.

vgeny : por exemplo, se estivesse a considerar MA, 10.000 períodos, como o implementaria?

É difícil responder quando não se compreende o significado de utilizar um número tão grande de períodos/parâmetros. Mas teoricamente, renunciaria à ideia de utilizar 10 mil indicadores padrão (10 mil versões de um indicador padrão com parâmetros diferentes) e escreveria o meu próprio indicador (um) que recalcula 10 mil valores em cada tick e outros parâmetros derivados. E minimiza o número de amortecedores indicadores - precisa dos dados calculados, não da sua reflexão no gráfico. E deve ser verificado se um tal híbrido faz todos os cálculos dentro de um só tick. Ou num minuto, se a sua análise permitir fazer um recálculo minuto a minuto em vez de tick-by-teak.

Aqui está um exemplo simples - Bandas de Bollinger. Pode utilizar três indicadores separados - para a linha média, superior e inferior. Ou pode combiná-los todos elegantemente num único programa indicador.