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 você precisar de uma comparação (A > B) use (A - B) *DIR> 0 para reverter a comparação para uma venda.
Parece que você tem a idéia.
Modifique e poste seu código e eu ou outra pessoa comentaremos sobre ele.
Ei GumRai,
Já faz um tempo desde que coloquei aqui uma atualização, mas tenho trabalhado fora no código e finalmente o terminei - doloroso ao trabalhar 10 horas por dia. No entanto, tenho duas questões principais. 1) Não importa o que eu faça, ele gera um código de erro: "Unknown ticket XYZ for OrderCloseFunction" e 2) Eu fiz um save-as do arquivo, (chamado USDCAD, outro EURUSD), com números mágicos diferentes, etc., mas ainda assim é preciso apenas uma troca de cada vez - e não trata os pares independentemente. Na verdade, ele também cria um erro "bilhete inválido para OrderCloseFunction".
Tentei pesquisar isto no Google, mas sem sucesso. Gostaria muito se você pudesse me guiar na direção certa com isto. O que estou fazendo de errado?
Muito obrigado de antemão!
Nunca use OrderTotal()==0 como condição para entrar em negociações
Isso significa que se uma negociação foi aberta manualmente ou por outra EA ou pela mesma EA anexada a outro símbolo gráfico, somente 1 negociação pode ser aberta.
Você tem a variável Global BuyTicket, inicialize-a para -1
Não faça loop através dos pedidos antes de fechar, é desnecessário
Agora, ao usar variáveis declaradas globalmente para números de bilhetes, pode haver problemas se o terminal for desligado e reiniciado por algum motivo
Portanto, declare uma nova variável de escopo global
Eu digitei isto rapidamente, então posso ter cometido erros, mas é o suficiente para lhe dar a idéia
A razão pela qual eu tinha colocado o laço ali foi porque o que eu notei foi que quando fechava a venda, não acionava a compra por algum motivo.
Fui em frente e fiz as mudanças necessárias...mas algo ainda parece estar errado. Não está demorando muito agora, e gera código de erro de bilhete inválido, e erro OrderClose 4051. Alguma sugestão sobre o que ainda está errado aqui?
O estranho é que, tanto no código anterior, como no atual (apenas para a venda), levou as negociações razoavelmente bem (se eu apenas a implementei em um gráfico).
Eu não pensei que isto teria sido tão difícil haha! Suponho que estava enganado quando pensei que era uma coisa muito simples e direta... comprar quando a vela cruza e abre acima de MA, fechar e vender quando a vela cruza e vai abaixo de MA.
Sinto muito, mas realmente não sei o que você está tentando fazer.
Não seleciona nenhum pedido. O código sequer é compilado?
Aqui o outro se aplica se(OrderCloseTime()==0) for falso
Aqui se aplica se a OrderSelect falhar, o que certamente faz
Sinto muito, mas realmente não sei o que você está tentando fazer.
Não seleciona nenhum pedido. O código sequer é compilado?
Aqui o outro se aplica se(OrderCloseTime()==0) for falso
Aqui se aplica se a OrderSelect falhar, o que certamente faz
Desculpe, a culpa é toda minha. Eu não li/aplicar corretamente suas sugestões; muito obrigado por indicá-las. Eu fiz isso corretamente aqui. Nenhum erro foi gerado no relatório. A única coisa é que agora, às vezes, está inserindo várias ordens de compra e venda, o que impede o fechamento de negócios no momento certo.
Editar: Para ser mais preciso, só se sai no SL e TP, não quando o preço cruza o outro lado do MA. Isto tem algo a ver com o bool?
Isto não seleciona uma profissão, por favor, siga o exemplo que lhe dei e faça-o corretamente
Eu me sinto... realmente estúpido. rs. Obrigado por achar isso!!
1) Faltam duas coisas...agora cria um código de erro de OrderClose 4108. Devo postar o código de novo? É o mesmo que o anterior com a correção que você havia declarado. Mas ele entra e sai conforme as regras.
2) E não entra curto imediatamente assim que fecha a posição longa, como mostrado na figura. A seta verde para baixo mostra onde ela deveria ter entrado em posição curta. Ela pegou uma compra, e a fechou com prejuízo uma vez que fechou abaixo do MA amarelo. Aqui, deveria ter entrado em posição curta. Como eu posso fazer um loop disto?
Muito obrigado, GumRai. Honestamente, eu não teria chegado a lugar nenhum tão perto sem sua ajuda.
Pequena mudança, pois estava verificando o fechamento de um pedido quando não havia nenhum.
De acordo com o código, não há motivo para que uma venda seja aberta imediatamente, uma compra é fechada.
A condição para sair de uma compra não é a mesma que as condições para abrir uma venda .
Lembre-se que como você só está verificando na vela aberta, Fechar[0] será o valor da oferta do primeiro tick recebido para a vela.
Pequena mudança, pois estava verificando o fechamento de um pedido quando não havia nenhum.
De acordo com o código, não há motivo para que uma venda seja aberta imediatamente, uma compra é fechada.
A condição para sair de uma compra não é a mesma que as condições para abrir uma venda .
Lembre-se que como você só está verificando na vela aberta, Fechar[0] será o valor da oferta do primeiro tick recebido para a vela.
Santo! Você conseguiu! Obrigado mais uma vez e mais uma vez GumRai. Você é o melhor.
Não posso fazer o teste agora, mas uma vez que os mercados estejam abertos, acho que devo ser capaz de usar isto então, com os outros pares, desde que eu tenha magias diferentes na demonstração.