[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 656
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
O que pode causar o transbordamento da pilha? Quando você abre uma posição com grande take (o take é calculado a partir da volatilidade e multiplicado por 100, o tamanho é 41*100), então um transbordo de pilha é escrito no registro e... ... basta pegá-lo. Nenhuma outra posição é aberta até que esta feche, e esta, é claro, não fechará por causa do enorme TP... E a EA não funciona corretamente, pois deve fechar todas as posições quando o lucro total pré-definido das posições abertas for alcançado... Mas isso não acontece, ainda que esta posição tenha tido lucros enormes por muito tempo, cerca de dois mil pontos... Como posso lutar contra isso? Não é possível garantir a situação quando todas as posições abertas transbordam a pilha e tudo vai de cabeça para baixo...
a pilha não pode transbordar apenas com um número que esteja fora da faixa de tipo - haverá outro erro
dados passados para uma função ou uma chamada recursiva para uma função sem desistir podem transbordar a pilha.
start() também é uma função - talvez você tenha muitas variáveis lá.
a pilha é uma região de memória onde valores intermediários (variáveis locais) de uma função são armazenados; você mesmo pode estar quebrando a pilha se estiver usando matrizes dinâmicas e não tiver verificado corretamente o escopo da matriz, ou seja, você está escrevendo dados não em uma matriz, mas em uma região de memória que vem logo após a matriz
tentar mover algumas das matrizes para variáveis globais - colocá-las na parte superior do quadro
ZS: pelo menos é o mesmo em todas as linguagens de programação - eu acho que é o mesmo em mql
a pilha não pode transbordar apenas com um número que está fora da faixa de tipo - haverá outro erro
dados passados para uma função ou uma chamada recursiva para uma função sem desistir podem transbordar a pilha.
start() também é uma função - talvez você tenha muitas variáveis lá.
a pilha é uma região de memória onde valores intermediários (variáveis locais) de uma função são armazenados; você mesmo pode estar quebrando a pilha se estiver usando arrays dinâmicos e não tiver verificado corretamente o escopo da matriz, ou seja, você está escrevendo dados não em uma matriz, mas em uma região de memória que vem logo após a matriz
tentar mover algumas das matrizes para variáveis globais - colocá-las na parte superior do quadro
ZS: pelo menos é o mesmo em todas as linguagens de programação - eu acho que é o mesmo em mql
Igor, você sabe que evitei até agora o uso de matrizes... Tenho apenas alguns conjuntos em meu código - um conjunto de ordens antes do tick e um conjunto de ordens após o tick. Tenho-os definidos na área variável global. O engraçado é que eu movi o código para abrir essas posições em outro lugar na EA e o erro desapareceu. Parece que houve uma chamada recorrente para abrir pedidos, embora eu realmente não me tenha incomodado com isso. Decidi simplesmente que não seria apropriado colocar a abertura imediatamente após o fechamento de todas as posições no código para verificar se o lucro total foi alcançado e todas as posições foram fechadas... Eu fiz uma bagunça... :)
Eu fiz um modelo para criar um EA - quando um pedido é feito, a bandeira de tal pedido é imediatamente colocada e depois, antes de abrir um novo pedido desse tipo, eu sempre verifico a bandeira - se o pedido existe, mas eu estou escrevendo EAs com apenas um pedido
Fiz há muito tempo um modelo para criar uma EA - quando faço um pedido, imediatamente coloco um sinal (bandeira) de que tal pedido existe e, antes de abrir um novo pedido desse tipo, sempre verifico a bandeira - se tal pedido existe, mas escrevo EAs com apenas um pedido
Sim, recebi "0", mas o que devo fazer? Não posso fazer as duas coisas (tentei até períodos iguais), tentei as duas Imprimir ("NormalizeDouble(c1b_1..."), mas recebi zeros (apenas c1b[i] mostra o valor, todos os outros incluindo c1s[i] são zeros), pode me ajudar a trazer um deles para uma condição de trabalho ou compartilhar uma dica, se você notar algum defeito?
Novo:
Antigo:
Inteiro:
Yuri, no futuro, se o código for repetido pelo menos duas vezes, ele deverá ser alocado a um método, e você não precisará de pilhas de arrays desordenando o código.
Aqui está um método para você:
Acho que tudo está claro com parâmetros, insira dados e, variando o parâmetro ma_shift, obtenha o turno necessário. Note que este método pode ser usado como modelo, basta alterar os métodos de acesso aos indicadores i...(...) ou iCustom(...). Agora seu bloco de decisões comerciais parece como deveria ser:
Assim, não há necessidade agora de variantes "antigas" e "novas", as negociações são abertas de acordo com determinados critérios (tanto quanto eu entendi, você tem um padrão de três barras de iCC alisado). Há uma variante corrigida no arquivo.
Olá.
Pode me dar o código para escrever os preços desde que o pedido foi aberto na matriz.
Como fazer cada novo preço a ser adicionado à matriz.
Olá.
Pode me dar o código para escrever os preços desde que o pedido foi aberto na matriz.
Como fazer cada novo preço a ser adicionado à matriz.
Por favor, seja mais específico em sua pergunta
Se você estiver interessado no preço atual no momento de fazer o pedido, você pode adicionar uma chamada ao código que será responsável por armazenar o preço atual na matriz global com a mudança do contador de índice da matriz, que você pode ver mais tarde a partir de qualquer ponto do código.
como verificar o desempenho de um EA - gostaria apenas de exibir o tempo de execução do código em milissegundos
o quanto melhor é o desempenho do MT5 vs MT4
como verificar o desempenho de um EA - gostaria apenas de exibir o tempo de execução do código em milissegundos
o quanto melhor é o desempenho do MT5 vs MT4
GetTickCount ajudaria https://docs.mql4.com/ru/common/GetTickCount
GetTickCount vai ajudar https://docs.mql4.com/ru/common/GetTickCount
obrigado sim é o que eu estava procurando, alguém mediu a velocidade do mesmo tipo de código para mt4 e mt5 ?