...Renat, segundo sei, a exibição doindicador no gráfico após a conclusão dos testes baseia-se nos cálculos efectuados durante o teste e no preenchimento da matriz de indicadores. Mas o que significa, que os resultados não são transferidos do testador para o gráfico indicador personalizado?
Naturalmente, os dados de cálculo do indicador do agente-avaliador não são transferidos para a carta terminal. Não passaremos centenas de megabytes de dados calculados para o terminal, e eles serão imediatamente (e no tick seguinte) recalculados pelo indicador (a chamada da função OnCalculate não foi cancelada).
sergey1294: Отвечу вам одно, пока не появиться режим визуализации решить вашу задачу не так просто. Есть одно решение, это записывать данные эквити в файл при тесте. потом данные из этого файла записать в буфер индикатора тем самым построить график эквити.
Mas onde escrevo exactamente os dados para o buffer?
Pensei que só podia ser escrito à OnCalculated e tentei implementá-lo dessa forma.
Rosh, a variante para online já foi publicada, mas como alguém que trabalha principalmente com História, preciso de uma variante que funcione com dados históricos. E ainda tenho dificuldade em compreender qual poderá ser a principal dificuldade aqui.
Escrever valores de equidade num ficheiro. Em seguida, traçar o indicador por estes valores. Contudo, o ficheiro de dados terá de ser movido manualmente porque durante os testes os ficheiros são escritos na pasta agent_name/MQL5/Files.
Mas onde escrevo exactamente os dados para o buffer?
Pensei que só podia ser escrito à OnCalculated e tentei implementá-lo dessa forma.
Utilizamos especialistas para escrever valores no ficheiro, depois no indicador escrevemos o código para leitura do ficheiro e escrevemos os dados no buffer. Ainda não vos posso mostrar o código, demorarei algum tempo a escrevê-lo.
Naturalmente, os valores indicadores calculados não podem ser transferidos do Agente-Testador para a carta terminal. Não passaremos centenas de megabytes de dados calculados para o terminal, e eles serão imediatamente (e no tick seguinte) recalculados pelo indicador (a chamada da função OnCalculate não foi cancelada).
Renat, o indicador deve ler-se a si mesmo
É por isso que inicializo os valores da matriz de indicadores com alguns valores no método OnCalculated.Mas porque é possível inicializar (construir) a linha indicadora desta forma, enquanto os valores de Equidadenão o fazem?
É por isso que inicializo os valores da matriz de indicadores com alguns valores no método OnCalculated.Mas porque é possível inicializar (construir) a linha indicadora desta forma, enquanto os valores deEquidadenão o fazem?
Porque os preços têm uma história mas a equidade não. Portanto, precisa de construir a sua própria história para a Equidade, escrevendo-a num ficheiro.
Rosh: Escrever os valores de equidade no ficheiro. Em seguida, construir o indicador com base nestes valores. No entanto, o ficheiro de dados tem de ser transferido manualmente, enquanto se testa, os ficheiros são escritos na pasta Agent_name/MQL5/Files.
Segundo sei, deve ser escrito no ficheiro no OnInit do Consultor Especialista com base na definição viaAccountInfoDouble(ACCOUNT_EQUITY) e lido a partir do ficheiro - no indicadorOnCalculated.
Mas porque é que os dados sobre a variável Equty através deAccountInfoDouble(ACCOUNT_EQUITY) estão disponíveis directamente em OnCalculated?
O código ficaria então demasiado pesado.....
Não consigo entender ...OnCalculatedin PrintAccountInfoDouble(ACCOUNT_EQUITY) produz algum valor .
O que é que o impede exactamente de ser imediatamente atribuído ao conjunto de valores indicadores?
Sempre pensei que a indicação de valores no testador sobre o histórico difere da indicação de valores actuais apenas no facto de o histórico já estar registado, enquanto os dados actuais estão apenas a chegar.
sergey1294: потому что цены имеют историю а эквити нет. По этому для эквити вам нужно строить собственную историю записав ее в файл.
Mas então como é que a dinâmica do Equty é exibida através de AccountInfoDouble(ACCOUNT_EQUITY) em OnCalculated Indicator (não apenas em OnTick Expert Advisor)?
Ou o Indicador OnCalculated funciona de forma diferente no modo de teste e no modo de visualização?
Segundo sei, deve ser escrito no ficheiro no OnInit do Consultor Especialista com base na definição viaAccountInfoDouble(ACCOUNT_EQUITY) e lido a partir do ficheiro - no indicadorOnCalculated.
Mas porque é que os dados sobre a variável Equty através deAccountInfoDouble(ACCOUNT_EQUITY) estão disponíveis directamente em OnCalculated?
O código ficaria então demasiado pesado.....
Não consigo entender ...OnCalculatedin PrintAccountInfoDouble(ACCOUNT_EQUITY) produz algum valor .
O que é que o impede exactamente de ser imediatamente atribuído ao conjunto de valores indicadores?
Sempre pensei que a indicação de valores no testador sobre o histórico difere da indicação de valores actuais apenas no facto de o histórico já estar registado, enquanto os dados actuais estão apenas a chegar.
Nem sequer sei como lhe explicar isto. AccountInfoDouble(ACCOUNT_EQUITY) armazena o último valor do capital próprio. Após os testes, como disse Renat, o indicador é reinicializado e recalculado. Assim, os dados de equidade acumulados no tampão indicador durante o teste são apagados.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
DV2010:
...Renat, segundo sei, a exibição do indicador no gráfico após a conclusão dos testes baseia-se nos cálculos efectuados durante o teste e no preenchimento da matriz de indicadores. Mas o que significa, que os resultados não são transferidos do testador para o gráfico indicador personalizado?
Naturalmente, os dados de cálculo do indicador do agente-avaliador não são transferidos para a carta terminal. Não passaremos centenas de megabytes de dados calculados para o terminal, e eles serão imediatamente (e no tick seguinte) recalculados pelo indicador (a chamada da função OnCalculate não foi cancelada).
O indicador deve calcular-se a si próprio.
sergey1294:
Отвечу вам одно, пока не появиться режим визуализации решить вашу задачу не так просто. Есть одно решение, это записывать данные эквити в файл при тесте. потом данные из этого файла записать в буфер индикатора тем самым построить график эквити.
Mas onde escrevo exactamente os dados para o buffer?
Pensei que só podia ser escrito à OnCalculated e tentei implementá-lo dessa forma.
Rosh, a variante para online já foi publicada, mas como alguém que trabalha principalmente com História, preciso de uma variante que funcione com dados históricos. E ainda tenho dificuldade em compreender qual poderá ser a principal dificuldade aqui.
Mas onde escrevo exactamente os dados para o buffer?
Pensei que só podia ser escrito à OnCalculated e tentei implementá-lo dessa forma.
Utilizamos especialistas para escrever valores no ficheiro, depois no indicador escrevemos o código para leitura do ficheiro e escrevemos os dados no buffer. Ainda não vos posso mostrar o código, demorarei algum tempo a escrevê-lo.
Naturalmente, os valores indicadores calculados não podem ser transferidos do Agente-Testador para a carta terminal. Não passaremos centenas de megabytes de dados calculados para o terminal, e eles serão imediatamente (e no tick seguinte) recalculados pelo indicador (a chamada da função OnCalculate não foi cancelada).
Renat, o indicador deve ler-se a si mesmo
É por isso que inicializo os valores da matriz de indicadores com alguns valores no método OnCalculated .Mas porque é possível inicializar (construir) a linha indicadora desta forma, enquanto os valores de Equidade não o fazem?
Renat, o indicador deve ler-se a si mesmo
É por isso que inicializo os valores da matriz de indicadores com alguns valores no método OnCalculated .Mas porque é possível inicializar (construir) a linha indicadora desta forma, enquanto os valores deEquidade não o fazem?
Segundo sei, deve ser escrito no ficheiro no OnInit do Consultor Especialista com base na definição via AccountInfoDouble(ACCOUNT_EQUITY) e lido a partir do ficheiro - no indicadorOnCalculated.
Mas porque é que os dados sobre a variável Equty através de AccountInfoDouble(ACCOUNT_EQUITY) estão disponíveis directamente em OnCalculated?
O código ficaria então demasiado pesado.....
Não consigo entender ...OnCalculated in Print AccountInfoDouble(ACCOUNT_EQUITY) produz algum valor .
O que é que o impede exactamente de ser imediatamente atribuído ao conjunto de valores indicadores?
Sempre pensei que a indicação de valores no testador sobre o histórico difere da indicação de valores actuais apenas no facto de o histórico já estar registado, enquanto os dados actuais estão apenas a chegar.
sergey1294:
потому что цены имеют историю а эквити нет. По этому для эквити вам нужно строить собственную историю записав ее в файл.
Mas então como é que a dinâmica do Equty é exibida através de AccountInfoDouble(ACCOUNT_EQUITY) em OnCalculated Indicator (não apenas em OnTick Expert Advisor)?
Ou o Indicador OnCalculated funciona de forma diferente no modo de teste e no modo de visualização?
Declarar duas arrays Equidade[] e Tempo[] a nível global na EA.
Escrever o valor da equidade e do tempo na matriz apropriada ao testar a EA.
Utilizar um guião para ler o ficheiro no final dos testes e traçar a equidade no gráfico requerido.
Esta é a melhor maneira para os seus objectivos, não compreendo porque precisa de um indicador.
Segundo sei, deve ser escrito no ficheiro no OnInit do Consultor Especialista com base na definição via AccountInfoDouble(ACCOUNT_EQUITY) e lido a partir do ficheiro - no indicadorOnCalculated.
Mas porque é que os dados sobre a variável Equty através de AccountInfoDouble(ACCOUNT_EQUITY) estão disponíveis directamente em OnCalculated?
O código ficaria então demasiado pesado.....
Não consigo entender ...OnCalculated in Print AccountInfoDouble(ACCOUNT_EQUITY) produz algum valor .
O que é que o impede exactamente de ser imediatamente atribuído ao conjunto de valores indicadores?
Sempre pensei que a indicação de valores no testador sobre o histórico difere da indicação de valores actuais apenas no facto de o histórico já estar registado, enquanto os dados actuais estão apenas a chegar.