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
Leia os códigos de erro de execução e faça com que seu código esteja de acordo com as informações ali fornecidas, por exemplo . .
Olá RaptorUK,
Obrigado pela dica.
Outro número (mais uma.....);
Digamos que no Corretor ECN uma operação está aberta e por "Requisitos e Limitações na realização de negócios" uma ordem de mercado não pode ser fechada se o Stoploss estiver dentro da distância de Congelamento, nesse caso esta função CloseAll fechará mesmo aquelas ordens que estão dentro da distância de Congelamento ?
Melhores Cumprimentos
Luis
Olá RaptorUK,
Obrigado pela dica.
Outro número (mais uma.....);
Digamos que no Corretor ECN uma operação está aberta e por "Requisitos e Limitações na realização de negócios" uma ordem de mercado não pode ser fechada se o Stoploss estiver dentro da distância de Congelamento, nesse caso esta função CloseAll fechará mesmo aquelas ordens que estão dentro da distância de Congelamento ?
Olá RaptorUK,
Se possível, gostaria de lhe pedir alguma ajuda nesta questão;
Este pedaço de código encontra o último OrderLots() e o multiplica pelo fator multiplicador, mas algumas vezes ele passa este fator e eu tenho pedidos desta forma; 0,01, 196,83, 590,49, etc.
Devo dizer que tenho um limite para abrir ordens, neste caso 5. Agora, a maneira como eu vejo esta lógica, mesmo que venha uma condição para abrir uma ordem acima de 5, não abrirá e então o número de ordens no pool é limitado a 5, portanto, se o código só vê 5 ordens no pool o tamanho do lote para essas ordens deve ser ; 0,01, 0,02, 0,04, 0,08, 0,16. Há algo de errado neste código que eu não saiba?
(espero que a indentação esteja bem...)
Com os melhores cumprimentos
Luis
Olá RaptorUK,
Se possível, gostaria de lhe pedir alguma ajuda nesta questão;
Este pedaço de código encontra o último OrderLots() e o multiplica pelo fator multiplicador, mas algumas vezes ele passa este fator e eu tenho pedidos desta forma; 0,01, 196,83, 590,49, etc.
Devo dizer que tenho um limite para abrir ordens, neste caso 5. Agora, a maneira como eu vejo esta lógica, mesmo que venha uma condição para abrir uma ordem acima de 5, não abrirá e então o número de ordens no pool é limitado a 5, portanto, se o código só vê 5 ordens no pool o tamanho do lote para essas ordens deve ser ; 0,01, 0,02, 0,04, 0,08, 0,16. Há algo de errado neste código que eu não saiba?
(espero que a indentação esteja bem...)
Eu o faço assim . . .
se a OrderSelect() falhar MLots = LotSize ?? por que ? sua indentação não o ajuda a ver o que está acontecendo com suas declarações e aparelhos . . você quis fazer isto ?
Eu fiz isto . . .
. como um método rápido e sujo para evitar problemas de dupla comparação, você já leu isto ?Can price != preço ?
Eu o faço assim . . .
se a OrderSelect() falhar MLots = LotSize ?? por que ? sua indentação não ajuda você a ver o que está acontecendo com suas declarações e aparelhos . . você quis fazer isso ?
Eu fiz isto . . .
. como um método rápido e sujo para evitar problemas de dupla comparação, você já leu isto ?Can price != preço ?
Olá RaptorUk,
Obrigado por sua pronta resposta.
Portanto, acho que é melhor não fazer uso de outra coisa, pois isso não serve para nada. E obrigado pelo link fornecido.
Melhores egards
Luis
Olá RaptorUK,
Eu tenho um problema (mais um.....)
Alguns pedidos fecham antes do tempo, o que eu quero dizer é;
Estas ordens foram abertas e há um limite de abertura de até 6. Todas as ordens devem fechar por meio do TrailingStop, mas as ordens 1. 3 e 5 foram fechadas antes das outras que foram fechadas depois (07:43).
Devido a estas 3 ordens terem fechado antes das outras darem espaço para as ordens abertas 7, 8 e 9 e estas abrirem com um lote baseado no último lote (2,43).
Portanto, até onde entendi as de fechamento errático de ordens às 07:23 não deveriam ter acontecido e não foram encontrados erros...
O código para fechar todos eles por meio do TrailingStop é este aqui;
Este código poderia falhar e fechar as ordens em momentos diferentes?
Com a maior consideração
Luis
O código para fechar todos eles por meio do TrailingStop é este aqui;
Este código poderia falhar e fechar as ordens em momentos diferentes?
OK, isto não faz sentido. . . um SL móvel é definido de modo que se o preço for com uma ordem o SL é movido em direção ao preço de modo que se o novo SL for atingido haverá menos perdas ou até mesmo um lucro. Por que ter um SL móvel se você está indo para OrderClose() o comércio de qualquer maneira ? para mim isso não é um SL móvel, não é um SL de qualquer tipo já que você está ativamente fechando o comércio através do EA e não do SL.
Talvez suafunção CloseAllOnSL() faça algo diferente do que eu acho que faz, mas, ainda assim, você não tem comentários explicando o que seu código está tentando fazer. Não há Sl móvel, pois não há OrderModify().
Leia isto:O que são valores de retorno de função ? Como eu os utilizo ?
Adicione mais informações à declaração de impressão, adicione OrderTicket(), OrderLots(), OrderClosePrice(), Bid, Ask, etc, etc, etc qualquer informação que você precise para determinar qual era o problema quando o erro ocorreu, você não pode facilmente voltar no tempo e descobrir tudo isso, então quando isso acontecer imprima-o para o log.
Portanto, até onde entendi, os de fechamento errático de ordens às 07:23 não deveriam ter acontecido e nenhum erro foi encontrado...
Leia isto:O que são valores de retorno de função ? Como eu os utilizo ?
Adicione mais informações à declaração de impressão, adicione OrderTicket(), OrderLots(), OrderClosePrice(), Bid, Ask, etc, etc, etc qualquer informação que você precise para determinar qual era o problema quando o erro ocorreu, você não pode facilmente voltar no tempo e descobrir tudo isso, então quando isso acontecer imprima-o para o log.
Olá RaptorUk,
Obrigado por seu tempo.
O código para TrailingStop está em outra parte, o código enviado é apenas para fechar tudo uma vez que o pedido tenha sido fechado por meio do TrailingStop.
No entanto, vou atrás de seu conselho e procuro por qualquer erro que possa dar mais informações adicionais para que os pedidos fechem antes de outros.
A propósito, ao seguir o código faz sentido mudar a posição do MLots = 0; do lugar real para antes do for loop ?
Com os melhores cumprimentos
Luis