Erros, bugs, perguntas - página 1904
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
Se existem múltiplas instâncias, porquê duplicar o mesmo cálculo em outras instâncias da mesma classe?
Porque precisa de outras instâncias se só existe um cálculo?
Andrey, poderia ser um pouco mais específico? Não compreendo bem.
Melhor dar uma descrição mais detalhada do problema, então a resposta será mais concreta.
O cálculo não é único - se há uma única instância da classe então o cálculo deve ser, se há múltiplas instâncias então porque duplicar o mesmo cálculo em outras instâncias da mesma classe? É preciso recursos.
Ao mesmo tempo, fazer outro ciclo longo na classe dos pais para calcular estes mesmos dados também não é óptimo (já temos dois ciclos longos), e a classe da criança não será então auto-suficiente.
Boa tarde!
Após 4 anos voltei a uma EA (comprei-a em 2013 e esqueci-me dela). Decidiu tentar novamente. Mas agora o sistema dá um erro numa das linhas de código. Acho que algo mudou em 4 anos com Metatrader, porque antes estava a funcionar bem. Não tenho ideia de como programar, foi por isso que comprei o Expert Advisor). Pode dizer-me qual pode ser o erro?
Aqui está uma parte do código
período de int exterior = 20; // período de média da linha indicadora principal.
Bdeviation int exterior = 2; // Desvio em relação à linha de base.
externamente int Bshift = 0; // Desvio do indicador em relação à tabela de preços.
Exterior int Baprice = 0; // FECHADO=0, OPEN=1, HIGH=2, LOW=3, MEDIAN=4, TYPICAL=5, WEIGHTED=6 .
cordão externo _6 = "========";
bool externo UseAutoDig = true; // If=true->external variables in points are multiplied by 10.
bool externo UseECN\NDD = true; // If=true->orders are set without stops, then modified.
O erro é apresentado na última linha do comando
UseECN\NDD, este comando é repetido muitas vezes na EA e ocorre um erro em cada linha com este comandoExemplos de
erros
'\' - sequência de fuga ilegal e_plat2.mq4 49 22
UseECN' - identificador não declarado e_plat2.mq4 144 6
'NDD' - identificador não declarado e_plat2.mq4 144 13
'4206' - valor do caso já utilizado e_plat2.mq4 643 8
Se não se importa, qual poderá ser a razão?
UseECN\NDD este comando é repetido muitas vezes no Expert Advisor e, em cada linha em que está presente, surge um erro
Substituir em todo o código "UseECN\NDD" por "UseECN_NDD" (Ctrl+H)
Substituir em todo o código "UseECN\NDD" por "UseECN_NDD" (Ctrl+H)
Muito obrigado! Parece que foi compilado!
Estarei a testar...
Porque existem outros casos se só existe um cálculo?
É melhor dar uma descrição mais detalhada do problema, então a resposta será mais concreta.
A classe tem um laço que recolhe dados sobre todas as encomendas e posições 1) na conta e 2) apenas aquelas que correspondem ao símbolo m_ e ao filtro m_magic.
Como resultado, uma vez concluído o ciclo, temos dados 1) sobre toda a conta e 2) apenas sobre ordens e posições pertencentes à EA.
Contudo, se uma EA utiliza vários símbolos ou mágicos, precisamos de criar instâncias da classe para recolher estatísticas para cada símbolo/mágico. É aqui que surge a questão: Porque precisamos de recolher estatísticas (1) nestas novas instâncias que já foram recolhidas logo na primeira instância da classe?
Daí a questão - como dentro da classe saber se a sua instância é a única, e portanto precisa de recolher estatísticas 1, ou, se a instância não for a única, não recolher estatísticas 1, e transmiti-la desde a primeira instância (aqui também não está claro como dentro da classe, se não for a única instância, redireccionar o pedido para a primeira instância da classe para transmitir estatísticas 1)
A classe tem um laço que recolhe dados sobre todas as encomendas e posições 1) na conta e 2) apenas aquelas que correspondem ao símbolo m_ e ao filtro m_magic.
Como resultado, uma vez concluído o ciclo, temos dados 1) sobre toda a conta e 2) apenas sobre ordens e posições pertencentes à EA.
Contudo, se uma EA utiliza vários símbolos ou mágicos, precisamos de criar instâncias da classe para recolher estatísticas para cada símbolo/mágico. Aqui surge uma questão: Porque precisamos de recolher estatísticas (1) nestas novas instâncias, que já foram recolhidas na primeira instância da classe?
Daí a questão - como dentro da classe saber que a sua instância é a única, e daí a necessidade de recolher estatísticas 1, ou, se a instância não é a única, então não recolher estatísticas 1, e emiti-la desde a primeira instância (também ainda não está claro como dentro da classe, se não é a única instância, redireccionar o pedido para a primeira instância da classe para a emissão de estatísticas 1)
1) Recolher estatísticas para todos os magos/ferramentas dentro de uma classe. A lista de magos deve ser especificada durante a inicialização e colocada numa matriz.
2) Como já aconselhado, faça os resultados das estatísticas #1 estáticas, e se elas estiverem disponíveis, não comece a recálculo.
A classe tem um laço que recolhe dados sobre todas as encomendas e posições 1) na conta e 2) apenas aquelas que correspondem ao símbolo m_ e ao filtro m_magic.
Como resultado, uma vez concluído o ciclo, temos dados 1) sobre toda a conta e 2) apenas sobre ordens e posições pertencentes à EA.
Contudo, se uma EA utiliza vários símbolos ou mágicos, precisamos de criar instâncias da classe para recolher estatísticas para cada símbolo/mágico. É aqui que se coloca a questão: Porque devemos recolher estatísticas (1) nestas novas instâncias, que já foram recolhidas na primeira instância da classe?
Daí a questão - como dentro da classe saber se a sua instância é a única, e portanto precisa de recolher estatísticas 1, ou, se a instância não for a única, não recolher estatísticas 1, e transmiti-la desde a primeira instância (aqui também não está claro como dentro da classe, se não for a única instância, redireccionar o pedido para a primeira instância da classe para transmitir estatísticas 1)
Daí a questão - como saber dentro da classe que a sua instância é a única, o que significa que precisa de recolher estatísticas 1, ou, se a instância não for a única, então não recolha estatísticas 1, e divulgue-a desde a primeira instância
Já vos foi dito:
Melhor ainda, todos os cálculos únicos devem ser colocados numa classe separada e torná-la num só botão.
Desenvolvedores, por favor expliquem porque é que o evento do tipoOnTesterPass, ao optimizar o número de variantes superiores a8.6e+18, só é chamado quando se cria uma nova geração?
E porque não há uma única palavra sobre esta característica no ficheiro de Ajuda?
Porque é que eu deveria procurar metade de um Expert Advisor para encontrar uma resposta, porque é que esta função funciona correctamente numa EA, enquanto na outra apenas escreve resultados de optimização no ficheiro de uma nova geração?
Como posso contornar esta limitação?