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
Compreendi que utilizei a nova descrição - as antigas
não estão na descrição, mas continuam a ser destacados pelo editorAo utilizar esta função há um erro "2012.11.28 09:58:32 4194304 bytes não disponíveis", ajuda a compreender, aumentou o ficheiro swap para 10GBt.
Yedelkin:
А лог-файл случайно алёртами не забивается?
Verificado, o registo é de 10 kBt, tem havido mais,
MemoryException 09:36:12 4194304 bytes não disponíveis" erro, repete-se frequentemente.
Notado (por código anterior):
// Selecção do período de matriz por índice (de PERIOD_M5 (índice - 5) a PERIOD_D1 (índice - 19))
Se menos períodos (por exemplo PERÍODO_M5 a PERÍODO_M6) forem tomados para a enumeração, não ocorrerá qualquer erro.
// Selecção de um período de um array por índice (de PERIOD_M5 (índice - 5) a PERIOD_D1 (índice - 19))
1. De que tipo de matriz estamos a falar?
2. Que valor está contido nesta matriz sob índice - por exemplo 19?
1. De que tipo de matriz estamos a falar?
2. Que valor está contido nesta matriz sob o índice, por exemplo 19?
Penso que é mais fácil fazer isto, escrevi a função como perito separado, pode executá-la e ver com os seus próprios olhos.
Se tiver tempo e desejar ajuda. (O erro é o mesmo).
Duplicar o código:
O ficheiro encontra-se em anexo. Parâmetros do provador (só por precaução)
EURUSD.e
H1
OHLC
2012.1.1 - 2012.4.1
Actualizando uma pergunta, estou interessado em dois erros:
1. 2012.11.28 11:45:18 4194304 bytes não disponíveis
Ainda não os posso resolver, mas se em vez de enumerar períodos m_period = PERÍODO_INDEX[iperiod], definido por exemploPERÍODO_H1, não haverá erro,
mas preciso de todos os períodos.
2. 2012.11.28 11:45:49 2012.01.01.01 00:00:00 Alerta: CopyBuffer de erro - número de erro: 4806
para resolver este erro, descomentareiSleep(1000); ele desaparecerá e os dados do buffer serão copiados normalmente.
pergunta: porquê? é possível evitarDormir(1000), para evitar o desperdício de tempo adicional?
Infelizmente, não tenho um testador à mão.
Um pouco de trivialidades. No lado esquerdo da linha que tem
há uma variável do tipo int à esquerda e um valor do tipo ENUM_TIMEFRAMES à direita. Porque não declara 'ENUM_TIMEFRAMES m_period;' mesmo na quinta linha?
2. tem um laço triplo onde um e o mesmo indicador é chamado num tempo bastante curto. Apenas para um símbolo ocorrem cerca de 1400 chamadas. Os indicadores usados simplesmente não têm tempo para libertar a memória. Pesquisar os tópicos do fórum sobre a função IndicatorRelease(). Uma vez foi dito que a utilização desta função em código já é um erro.
Uma rápida alteração dos indicadores no código explica também o aparecimento do erro 4806. O novo indicador simplesmente não tem tempo para carregar os dados necessários.
Pode dizer-me como se livrar de uma rescisão anormal?
A EA deixa de funcionar e isto só pode ser visto no tronco, está verde no gráfico.
Alterei o código tendo em conta os vossos comentários:
(m_period corrigido = PERÍODO_INDEX[iperiod];, o erro não é significativo neste caso - mas obrigado, eu corrigi-o)
problema com erro (Error CopyBuffer - número de erro: 4806) - removido, curei-o por Sleep(1000); - reduzi-o a não ter tempo suficiente para criar indicador.
A questão com o erro (4194304 bytes não disponíveis) permanece.
A observação sobre IndicatorRelease() - tomada em consideração no processamento.
Se alguém tiver ideias, por favor partilhe, obrigado.