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
Oh, shaitan... Validação aprovada e agora
sem operações comerciais
não mais um erro.
P.S. Foi um tiro aleatório. O próximo teste é novamente a mesma coisa
Não há nenhum erro aqui, não entendo o que está acontecendo. Eu coloquei uma muleta (divisão por zero) antes da função comercial:
Funciona:
Eu o retiro, ele me dá o mesmo
Nenhuma operação comercial.
Não entendo o que impede o validador de OrderSend(). Afinal, se chegar até ele, deve haver erros de faturamento (embora eu os tenha corrigido todos) 130, 131, 134, ..., mas não"nenhuma operação comercial". Eu só tenho que colocar no OnInit() uma ordem pendente em algum lugar distante dele, para não saber como combatê-la.
E qual é o sentido de uma muleta assim se a condição sob a qual uma posição deve ser executada não entra no código?
Por que não há entrada?! Veja com atenção Alexey. Há uma muleta um pouco antes da OrderSend.
Certo. Se a OrderSend não for executada, isso significa que a execução do código não chega a ela por algum motivo. E não importa o que você coloque diante dele no bloco de condições, não há entrada e não há execução, nem mesmo divisão por zero.
Espere, eu não entendo. Se o operador 1 (divisão por zero) for executado, então o próximo é o se operador. E isso significa verificar seu estado. Para verificar a condição, a função OrderSend deve ser executada, o que significa que ela é a próxima na linha após a divisão por zero.
Mas não importa. Eu mudei o código por causa da pureza da experiência:
O resultado é o mesmo. O resultado com a muleta é um erro de divisão por zero. Sem a muleta, o resultado é mostrado acima: nenhuma operação comercial.
Espere, eu não entendo. Se o operador 1 (divisão por zero) for executado, então o próximo é o se operador. E isso significa verificar seu estado. Para verificar a condição, a função OrderSend deve ser executada, o que significa que ela é a próxima na linha após a divisão por zero.
Mas não importa. Eu mudei o código por causa da pureza da experiência:
O resultado é o mesmo. O resultado com a muleta é um erro de divisão por zero. O resultado é mostrado acima sem ele: nenhuma operação comercial.
Você não deveria ter usado uma imagem para colar o código. É impossível lê-lo de forma alguma. E o problema não está neste fragmento de código. O problema é que algumas condições não são cumpridas em alguns parâmetros de entrada e não há notificação.
Por que ele não entra?!
Por que você está tentando escrever pior para o mercado do que para você mesmo?
É simples - antes de enviar um pedido, veja "é mesmo executável?
verificar os limites (você disse isso), verificar os fundos e a margem (você não tem isso), ver se existe um vínculo e se o comércio é permitido.
(opção) se houvesse cálculos pesados, não é pecado refrescar antes de ler Bid Ask
Para seu próprio bem, você fará todas essas verificações. Por que não agora?
Você acha que eu não verifico. O tamanho do lote é verificado em uma função separada
Não são necessários limites aqui, porque Stop Loss e Take Profit são iguais a zero na abertura comercial.RefreshRates() atualiza os dados no cálculo do lote. É claro que não há verificação de conexão, etc. antes de cada entrada, mas não é essa a questão. Se a OrderSend enviasse um pedido, haveria um erro específico: 130, 131, etc. Mas o que eu tenho é.
Não tentar enviar uma ordem de abertura de forma alguma. Mesmo no último teste, quando defino uma posição de verificação na função OnInit().
Você não deveria ter colado o código em uma imagem. É impossível lê-lo. O problema não está neste fragmento de código. O problema é que algumas condições não são cumpridas em alguns parâmetros de entrada e não há notificação deste fato.
Pode ser. Mas eu já verifiquei tudo duas vezes. Eu não sei onde cavar em seguida.
Você acha que eu não verifico. O tamanho do lote é verificado em uma função separada
Não são necessários limites aqui, porque Stop Loss e Take Profit são iguais a zero na abertura comercial.RefreshRates() atualiza os dados no cálculo do lote. É claro que não há verificação de conexão, etc. antes de cada entrada, mas não é essa a questão. Se a OrderSend enviasse um pedido, haveria um erro específico: 130, 131, etc. Mas o que eu tenho é.
Não tentar enviar uma ordem de abertura de forma alguma. Mesmo no último teste, quando defino uma posição de verificação na função OnInit().
Isso é possível. Mas eu já verifiquei tudo duas vezes. Não sei para onde ir em seguida.
Veja como outras ordens foram implementadas na EA. Acho que o Expert Advisor não abre apenas
no bilhete de abertura<0 foi definido - olhe para a outra lógica, como ela reage a isso na realidade