Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 318
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
Boa tarde. Eu tenho um EA, funciona bem no testador de estratégia (abre pedidos e tudo). Mas quando acabo de colocá-lo em um gráfico, nada acontece. A EA não funciona. Também notei uma cruz ao lado do nome da EA no gráfico. Como consertá-lo?
Quando você coloca a EA no gráfico uma janela se abre com parâmetros, há diferentes separadores - na primeira "Geral" você tem que colocar um tique na frente de "Permitir que a EA negocie".
Se a EA já estiver na tabela e for exibida com uma cruz - na barra de ferramentas, clique no botão "EAs" (cubo amarelo em um chapéu com um círculo vermelho e um quadrado branco dentro do círculo).
Boa tarde. Ajude-me a lidar com um problema estranho.
A questão é: estou escrevendo um indicador múltiplo, ou seja, um indicador, que, estando aberto a qualquer momento, calculará e dará sinais para todos os outros momentos também.
A base do indicador é o RSI.
No init() ao mudar o período de tempo, uma matriz separada é colocada em correspondência da linha indicadora. Para cada um deles a linha é exibida, quando você está neste ou naquele momento, mas os cálculos para outros momentos não estão acontecendo (a função iRSI está estupidamente perseguindo zeros no cálculo). Isto é, a hora atual é calculada, mas outras vezes não são.
Estou colando o código:
O que é interessante, se deixarmos apenas uma matriz para a linha indicadora e calcularmos apenas W1 a qualquer momento, tudo é calculado e desenhado corretamente a qualquer momento(!).
Qual é o truque? É impossível tomar diferentes matrizes para a linha indicadora durante a inicialização, dependendo do tempo?
Boa tarde. Ajude-me a lidar com um problema estranho.
A questão é: estou escrevendo um indicador múltiplo, ou seja, um indicador, que, estando aberto a qualquer momento, calculará e dará sinais para todos os outros momentos também.
A base do indicador é o RSI.
No init() ao mudar o período de tempo, uma matriz separada é colocada em correspondência da linha indicadora. Para cada um deles a linha é exibida, quando você está neste ou naquele momento, mas os cálculos para outros momentos não estão acontecendo (a função iRSI está estupidamente perseguindo zeros no cálculo). Isto é, a hora atual é calculada, mas outras vezes não são.
Estou colando o código:
O que é interessante, se deixarmos apenas uma matriz para a linha indicadora e calcularmos apenas W1 a qualquer momento, tudo é calculado e desenhado corretamente a qualquer momento(!).
Qual é o truque? É impossível tomar diferentes matrizes para a linha indicadora durante a inicialização, dependendo do tempo?
Somente W1 e D1 são lidos! O que você quer? Acabe com isso para os outros!
Não é essa a questão. Eu dei cálculos apenas para D1 e W1, de modo que o código não seja muito longo. Nota: em cada tick em cada período de tempo, os valores calculados de W1 são impressos. Portanto, se qualquer hora for aberta, exceto W1, os zeros são impressos. Se funcionar para a W1, funcionará para outros.
Não é essa a questão. Eu dei cálculos apenas para D1 e W1, para não tornar o código muito longo. Favor observar: em cada tick em qualquer período de tempo, os valores calculados de W1 são impressos. Portanto, se qualquer hora for aberta, exceto W1, os zeros são impressos. Se funcionar para W1, funcionará para todos os outros.
Correto! Para mostrar em outros gráficos, você tem que abrir o gráfico semanal também!
Para ser honesto, eu não entendi esta declaração.
E não há necessidade de mostrar mais nada. Se você executar o código, verá que ele já mostra o que eu quero: em D1 ele mostra o gráfico RSI D1 e em W1 - gráfico RSI W1, mas ao mesmo tempo, se D1 está aberto, então RSI para W1 são todos zero, e se W1 está aberto, então os cálculos para D1 são zero. A questão é por que este é o caso e como corrigi-lo.
O problema é que a matriz de índices se inicializa e se redimensiona para o tamanho correto.
Eu mudei o interruptor no init() desta forma:Assim, quando abro D1 - RSI_D1[] torna-se indexado, e tudo está bem com ele, mas outras matrizes permanecem em estado embrionário.
Eu tentei desta maneira: declarei todas as matrizes desta maneira:
Entretanto, no ArrayResize GetLastError dá um erro:
EURUSD,Daily: não pode redimensionar a matriz
EURUSD,Daily: algum erro de matriz
De qualquer forma, quem pode me dizer como resolver este problema?
O problema é que a matriz índice se inicializa e se redimensiona para o tamanho correto.
Eu mudei o interruptor no init() desta forma:Assim, quando abro D1 - RSI_D1[] torna-se indexado, e tudo está bem com ele, mas outras matrizes permanecem em estado embrionário.
Eu tentei desta maneira: declarei todas as matrizes desta maneira:
Entretanto, no ArrayResize GetLastError dá um erro:
EURUSD,Daily: não pode redimensionar a matriz
EURUSD,Daily: algum erro de matriz
De qualquer forma, quem pode me dizer como resolver este problema?
Se a matriz for dinâmica, certifique-se de aumentar o tamanho da matriz para acomodar os novos dados ao escrever valores para ela. ArrayResize()
Mas ArrayResize GetLastError dá um erro:
EURUSD,Daily: não é possível redimensionar a matriz
EURUSD,Daily: algum erro na matriz
Foi sobre isto que escrevi acima:
Entretanto, no ArrayResize GetLastError dá um erro:
EURUSD,Daily: não pode redimensionar a matriz
EURUSD,Daily: algum erro de matriz
Para ser honesto, eu não entendi essa afirmação.
E não há necessidade de mostrar mais nada. Se você executar meu código, verá que tudo já é mostrado: RSI D1 é mostrado em D1 e RSI W1 em W1, mas ao mesmo tempo, se D1 está aberto, então RSI para W1 são todos nulos, e se W1 está aberto, então RSI para D1 são todos nulos. A questão é por que este é o caso e como corrigi-lo.
Porque o buffer está sozinho e mostra um a um em sua chamada!