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 103
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
Se for 7,43 e eu não tiver ido para a cama... Então acho que se escreve grail!
Não, não há necessidade de jurar assim :)) Yusuf me deu o Graal. Estou sentado em minhas malas, esperando o maná do céu, estou indo para as Maldivas :)))
Então me mostre o que você fez... Aqui não há telepatas - eles estão de férias.
Fiz o upload do código geral do Expert Advisor, para deixar mais claro o que ele deve fazer... Sei que é uma bagunça, mas ainda não aprendi o contrário =))))
Vou lhe dizer mais uma vez onde é estúpido
abrir uma ordem pendente: abre uma ordem pendente sem a ordem oposta ou um monte inteiro de ordens pendentes em uma direção.
Elimina os pedidos: às vezes está bem à noite, a uma hora claramente especificada, e às vezes em um dia, ou não fecha de todo ...
Bem, a condição é :
Se a primeira ordem pendente em aberto fechar com lucro, a segunda é apagada imediatamente - duvido que a tenha escrito corretamente, mas não posso verificá-la em ação, pois não quero abrir duas posições opostas=(((((
Ao procurar a última ordem fechada, devemos primeiro encontrar a última ordem fechada, mas o cheque para fechá-la no take deve ser retirado do loop, caso contrário, ele verificará o fechamento no take para cada ordem fechada e, se for o caso, lembrará a hora da primeira ordem fechada no take do loop e não a última.
Bem, isto é otimização de código. O resultado não mudará, como eu o vejo. Só leva mais tempo para calcular. Eu consertei o código, mas ainda é o mesmo.
Ainda assim, há algo de errado com ele.
Eu tentei mostrar-lhe o código de um EA, sei que é uma bagunça, mas nunca aprendi a fazer de outra maneira))))
Vou lhe dizer mais uma vez onde é estúpido
Abrindo ordens pendentes: abre ou uma ordem pendente sem a ordem oposta ou um monte inteiro de ordens pendentes em uma direção.
Eliminação de pedidos: apaga-os todas as vezes, às vezes à noite, a uma hora claramente especificada, às vezes ao dia, ou não fecha de todo...
Bem, a condição:
Se a primeira ordem pendente em aberto fechar com lucro, a segunda será apagada imediatamente - também duvido que a tenha escrito corretamente, mas não posso verificar no trabalho, pois não quero abrir duas posições opostas=(((((
Para responder a uma pergunta com uma pergunta. Que diabos é isso?
Decifre isso para mim, não entendo :)
As verificações para abrir uma posição devem ser feitas após a tentativa de abrir uma posição. Isto é
Você o coloca depois de enviar um pedido.
O preço tem que ser maior ou menor do que o Asc ou Bid para abrir a posição. É assim para a compra:
if (OOP > Ask)
Bem, isto é otimização de código. O resultado não mudará, como eu o vejo. Só leva mais tempo para calcular. Eu consertei o código, mas ainda é o mesmo.
Ainda há algo de errado com ele.
Não, não é otimização de código. Está apenas procurando exatamente o último. Uma vez terminada a busca de todas as ordens fechadas e encontrada a última ordem fechada delas, só então devemos verificar o fechamento pelo take e, se for fechado pelo take, só então faz sentido continuar a busca pelo resto.
Se verificarmos se há uma fechadura dentro do loop, o que obteremos? Receberemos um erro de lógica:
Suponha que tenhamos selecionado um pedido que foi fechado há um ano. Seu tempo será de qualquer forma superior a -1, então verificamos para fechá-lo no momento da tomada (ele é verificado dentro do laço). Sim, fechou no take... O que sua função faz a seguir? Certo - continua a trabalhar com essa ordem fechada no marco há um ano. Deixe-me ver o que mais está errado. Acabei de chegar em casa...
Estava escrito: 2. Se a última posição aberta fechar no take, então feche tudo!
Portanto, é assim:
Passamos para a função o símbolo que queremos verificar, número mágico e delta (distância em pips == diferença entre a tomada do pedido e o preço fechado), assim:
Eu não verifiquei esta função, escrevi-a por minha própria mão. Assim, deixo para vocês a procura de erros.
Você pode fazer isto int e usar códigos de retorno. Por exemplo, se a posição que você está procurando não existe ou existe, mas está fechada com prejuízo, retornar -1;
se existe e está fechada com lucro, mas não dentro do delta, retornar 0;
se existe e está fechada com lucro e em Take (dentro do delta), retornar 1...
O espaço para a imaginação é enorme...
Se, por outro lado, verificarmos se a tomada está próxima, o que obtemos? Receberemos um erro lógico:
Suponha que tenhamos selecionado um pedido que foi fechado há um ano. Seu tempo será de qualquer forma superior a -1, então verificamos para fechá-lo no take (é esta verificação dentro do loop). Sim, fechou no take...
Assim, se fizermos loop em todas as ordens, o loop de qualquer forma fará loop em todas as ordens. O tempo de fechamento de cada pedido será comparado com o anteriormente selecionado. Mas é aqui que enfrentamos um problema de desempenho. TakeProfit será constantemente verificado no loop, com cada posição fechada, ao invés de apenas a última. Não é assim!?
Certo.
Mas existe o Open[], com um preço de abertura.
Entendi, obrigado :)
Portanto, se você percorrer todos os pedidos, o ciclo irá, de qualquer forma, percorrer todos os pedidos. O horário de fechamento de cada pedido será comparado ao anterior selecionado. Mas é aqui que enfrentamos um problema de desempenho. TakeProfit será constantemente verificado no loop, com cada posição fechada, ao invés de apenas a última. Não é assim?
Portanto, se fizermos loop em todas as ordens, o loop irá de qualquer forma fazer loop em todas as ordens. O horário de encerramento de cada pedido será comparado ao anterior selecionado. Mas aqui temos um problema de desempenho. TakeProfit será constantemente verificado no loop, com cada posição fechada, ao invés de apenas a última. Não é assim!?
Isso é uma falha: