AJUDE QUEM PUDER!!! - página 11

 
Techno:
De jeito nenhum, é a mesma coisa, um especialista completamente diferente. Use o meu, preencha os detalhes que faltam

NÃO ESTOU FALANDO DO ORIGINAL, ESTOU FALANDO DAQUELE QUE FIZ COM SUAS PEÇAS... MAS MUITO OBRIGADO PELA LIÇÃO COM A MATRIZ!
 
sllawa3:
MAS A QUESTÃO AINDA PERMANECE... COMO CONTORNAR O ERRO SELECIONADO... É APENAS UM PERITO COM UMA MATRIZ. VOCÊ NEM SEMPRE PODE SEGUIR ESTE PADRÃO...
em vez de arrays, poderíamos usar muitas variáveis. Não há erro no "Select". A diferença no Expert Advisors é que o bloco de avaliação de pedidos é independente do resto do programa. A modificação também não depende da eliminação, enquanto no seu caso tudo está em um só lugar. Para escrever tudo junto, você tem que ser muito experiente, e acaba de cometer um erro em algum lugar, seria mais fácil escrever uma nova EA do que lidar com essa confusão.
 

Em resumo, se você não zerar as variáveis, elas não são zeradas em nenhum outro lugar, e nada em sua versão original funciona. Se você os zerar no final, então a EA funciona, mas você tem uma linha, por exemplo, if(OrderType() == OP_BUYSTOP&DB===1){OrderDelete(OrderTicket(),CLR_NONE);return(0);}

E nada funciona, porque uma ordem limitada pode ir primeiro e a ordem de mercado somente depois dela, e esta condição nunca será cumprida e a ordem pendente não será apagada. Portanto, seu Expert Advisor só funciona quando a seqüência de pedidos no terminal está de acordo com o algoritmo, como você entendeu, raramente acontece em 11 anos 90 negócios foram abertos, eu o verifiquei. Portanto, a conclusão é a estrutura errada do programa, ou melhor, a dependência total de uma iteração em relação a outra durante o excesso.

 
BEM, É ÓBVIO QUE HÁ ALGO ERRADO... ENTÃO EU ESTAVA PROCURANDO POR ELE... MAS SEU CÓDIGO É MUITO MAIS CURTO... MUITO MAIS CURTO...
 
sllawa3:
BEM, OBVIAMENTE HÁ ALGO ERRADO... POR ISSO TENHO ANDADO À PROCURA...
então escrevi-lhe o erro acima. A estrutura do programa não está correta, ou seja, não está em um único símbolo de erro, mas em 70% de todo o erro do programa.
 

VOCÊ TAMBÉM TEM UM BUG EM SEU CÓDIGO... NÃO MODIFICA AS POSIÇÕES DE COMPRA, ENTÃO SE UMA PARADA DE COMPRA É ACIONADA, O PEDIDO É FEITO SEM PARADA E TAKEAWAY E OUTROS NÃO SÃO ABERTOS

SEM DADOS DB[2]==0 DB[3]==0 TAMBÉM

 
descobriu-o... definir DB[0] não > 1 a >=1....
 
Sim, eu o consertei no meu, só me esqueci de colocá-lo no arquivo carregado
 
sllawa3:

VOCÊ TAMBÉM TEM UM BUG EM SEU CÓDIGO... NÃO MODIFICA AS POSIÇÕES DE COMPRA, ENTÃO SE UMA PARADA DE COMPRA É ACIONADA, O PEDIDO É FEITO SEM PARADA E TAKEAWAY E OUTROS NÃO SÃO ABERTOS

SEM DADOS DB[2]==0 DB[3]==0 TAMBÉM

Slava, seu problema é que você não aceita novas idéias... Foi-lhe dada uma abordagem diferente, mas você espera uma solução pronta...

Cabe a você decidir como lidar com possíveis problemas com pedidos - cotações, preços incorretos e assim por diante...

 
Techno:
Sim, eu mesmo consertei, só esqueci de colocar
no arquivo carregado.

Decidi reescrever todos os meus EAs usando um array... estou pensando em como adicionar mais 2 variáveis - lote e lucro do pedido e 2 pedidos para bylimit e selligit

na tabela de pesquisa de pedidos

existem limitações no número de variáveis horizontalmente e verticalmente ? e variáveis antes do início [4] é o número de ordens ou o número de variáveis em cada ordem ?