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
Olá a todos!
Por favor, ajude um principiante a compreender a utilização de matrizes nas aulas. Cortar o código chave numa pequena peça para representar o problema:
Ao executar recebe um erro Array fora de alcance na cadeia da classe herdada, na classe pai recebo o 0 esperado.
2012.02.13 00:41:25 2011.01.01.01 00:00:00 array fora do alcance em 'test1.mq5' (29,36)
2012.02.13 00:41:25 2011.01.01.01 00:00:00 array[0]= 0.0
Compreendo que estou a passar (ou a endereçar) incorrectamente um array a uma classe herdeira, embora com variáveis normais não haja erro com tal manipulação.
O que é que estou a fazer mal?
Tenho visto esta mensagem com muita frequência ultimamente quando corro ficheiros *.mq5:
Qual poderá ser o problema?
Olá a todos!
O que é que estou a fazer mal?
Olhe, quando declara "segundo Csecond;" na segunda linha, o método InitArray() não é chamado, certo? Ao mesmo tempo, o próprio objecto Csecond já foi criado. Assim, acontece que quando se chama o "Csecond".Printer();", refere-se à matriz não inicializada e undimensional Stf_ZZ_Val[].
Por favor, diga-me se o limite de 1000 barras históricas disponíveis desde a data de início foi removido (como em MT4) durante os testes?
Explique o que quer dizer com isso?
Em Cinco, os dados são carregados do ano anterior, desde o início dos testes. Assim, se estiver a testar a partir de 2012.02.01, os dados serão carregados a partir de 2011.01.01.
A única excepção são os testes em Dias, Semanas e Meses - o início dos dados lá é calculado com base na necessidade de ter 100 barras antes do início dos testes.
Explique o que quer dizer com isso.
Ao correr, por exemplo a partir de 2011.01.01 sobre dados diários, precisamos de um histórico com pelo menos 3000 barras. Por outras palavras, temos de estabelecer um período intencionalmente mais longo, do que o necessário para os testes, e de seguir programticamente o "ponto de partida". Qual é a dificuldade de fornecer todo o historial (ou a pedido) durante os testes?
Não há qualquer dificuldade. Não quisemos introduzir uma caixa de verificação extra nas definições de teste, que teria sido incompreensível para a maioria dos utilizadores e que teria sido mal utilizada num grande número de casos.
É uma solução normal especificar um período intencionalmente mais longo.
Outra solução - encomendar testes numa base mensal, e utilizar indicadores diários e dados de preços (ou seja, em vez do conjunto PERÍODO_CURRENTE PERIOD_D1 explicitamente).
Há também a questão da disponibilidade da história, não em testes, mas em verdadeiras auto-comercializações. O que devemos fazer neste caso? O testador pode ser ludibriado...
Obrigado pelo esclarecimento!
Numa nota lateral: Estou a testar com agentes remotos através da Internet. Porque é que os agentes recebem o histórico completo dos minutos se estou a testar a preços de abertura do dia? O tempo de preparação antes do início dos testes é simplesmente obsceno - uma hora, por exemplo. Bom para quem tem um tubo de 10-100 megabit, mas aqui está sentado num mísero megabit...