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
Aparentemente funcionou :) vou testar mais afundo e com tempo, muito obrigado pela sua ajuda, estava tão pilhado nisso, que não percebi esse detalhe, por isso é bom um olhar externo.
De nada. Boa sorte! 🤝
Boa tarde @Vinicius de Oliveira, após 1 semana na demo, coloquei o EA na conta real, e diferentemente do que acontecia na demo, onde as ordens de stop loss e stop gain eram executadas com no máximo 1 real pra + ou pra - do definido nos inputs stop loss e gain, na conta real houve gain de 3 reais, sendo que no input estava 25 pontos (5 reais), e como é uma estratégia de scalp, isso faz muita diferença no resultado, o que preciso mudar para melhorar esse aredondamento.
Boa tarde @Vinicius de Oliveira, após 1 semana na demo, coloquei o EA na conta real, e diferentemente do que acontecia na demo, onde as ordens de stop loss e stop gain eram executadas com no máximo 1 real pra + ou pra - do definido nos inputs stop loss e gain, na conta real houve gain de 3 reais, sendo que no input estava 25 pontos (5 reais), e como é uma estratégia de scalp, isso faz muita diferença no resultado, o que preciso mudar para melhorar esse aredondamento.
Boa noite @Romeu Masselai!
Para o correto arredondamento dos preços, utilize a função NormalizePrice() em vez de NormalizeDouble() ...
Então, ficaria ...
Boa tarde @Vinicius de Oliveira, após 1 semana na demo, coloquei o EA na conta real, e diferentemente do que acontecia na demo, onde as ordens de stop loss e stop gain eram executadas com no máximo 1 real pra + ou pra - do definido nos inputs stop loss e gain, na conta real houve gain de 3 reais, sendo que no input estava 25 pontos (5 reais), e como é uma estratégia de scalp, isso faz muita diferença no resultado, o que preciso mudar para melhorar esse aredondamento.
Bom dia,
vou intrometer nesse post e dar meu pitaco de contribuição.
Você precisa ter ciência de algumas coisas antes de colocar em REAL para entender o que é esse "arredondamento".
1) Em DEMO as ordens são executadas a preço LAST, ou seja não são executadas pelo preços ofertados (ASK/BID) e a liquidez é infinita.(*)
2) Por diversos fatores, praticamente não existe desvio em conta DEMO, sendo o mais importante o fato da ordem ser executada no servidor de teste do mt5 da corretora.
3) Em conta REAL as ordens sofrem um desvio, isto é: Os preços do ASK / BID do momento que o EA enviou a ordem são frequentemente diferentes dos preços do momento da execução na EXCHANGE ( B3 ). Isso também faz com que o resultado gain/loss seja diferente do desejado.
Em conta real as ordens sofrem derrapagem, isto é: A execução da ordem, mais frequentemente chamada de preenchimento da ordem, é feito conforme as quantidades ofertadas em cada preço, então final do execução você tem o preço médio de execução e é sobre esse preço médio que os stops gain/loss usam como referencia.
4) Os gargalos ou soluços em conta REAL são frequentes para o MT5 / B3 e produzem desvio de vários TICKS.
5) Por último e o mais importante, os stops GAIN/LOSS são gatilhos que disparam uma ordem a mercado, portanto estão estão sujeitas a tudo que foi dito anteriormente.
(*) Não obedecem as quantidades ofertadas em cada preço e o limite é o volume máximo que pode ser operado para o ativo.
(
Bom dia,
. . .
Bom dia!
Excelente contribuição, Rogerio! Muito bem explicado!
Bom dia,
vou intrometer nesse post e dar meu pitaco de contribuição.
Você precisa ter ciência de algumas coisas antes de colocar em REAL para entender o que é esse "arredondamento".
1) Em DEMO as ordens são executadas a preço LAST, ou seja não são executadas pelo preços ofertados (ASK/BID) e a liquidez é infinita.(*)
2) Por diversos fatores, praticamente não existe desvio em conta DEMO, sendo o mais importante o fato da ordem ser executada no servidor de teste do mt5 da corretora.
3) Em conta REAL as ordens sofrem um desvio, isto é: Os preços do ASK / BID do momento que o EA enviou a ordem são frequentemente diferentes dos preços do momento da execução na EXCHANGE ( B3 ). Isso também faz com que o resultado gain/loss seja diferente do desejado.
Em conta real as ordens sofrem derrapagem, isto é: A execução da ordem, mais frequentemente chamada de preenchimento da ordem, é feito conforme as quantidades ofertadas em cada preço, então final do execução você tem o preço médio de execução e é sobre esse preço médio que os stops gain/loss usam como referencia.
4) Os gargalos ou soluços em conta REAL são frequentes para o MT5 / B3 e produzem desvio de vários TICKS.
5) Por último e o mais importante, os stops GAIN/LOSS são gatilhos que disparam uma ordem a mercado, portanto estão estão sujeitas a tudo que foi dito anteriormente.
(*) Não obedecem as quantidades ofertadas em cada preço e o limite é o volume máximo que pode ser operado para o ativo.
(
Obrigado pela explicação, tenho noção de tudo o que falou, embora seja um iniciante com pouquissimo conhecimento na linguagem, já sou experiente no mercado, e sei que é normal acontecer algumas vezes ainda mais com lotes maiores, porém como estou em fase de testes, está com lote mínimo, o que reduzia o problema de liquidez, e ainda, o preço foi direto no alvo, quase não passou calor, fiz as alterações que @Vinicius de Oliveira gentilmente forneceu, e ainda sim aconteceu novamente hoje, o que queria saber, é se existe alguma maneira de zerar essa derrapagem, o EA só vender no preço estabelecido ou além já no loss essa derrapagem poderia existir, visto o perigo de a ordem não ser executada e o mercado ir contra mim.
Ou pelo menos diminuir, 5 pontos pra mais ou para menos.
Olá Romeu!
Outra coisa que você poderia testar / ponderar também seria a utilização de deviation = 5 (ou menor) e type_filling = ORDER_FILLING_IOC (quanto estiver trabalhando com volumes maiores).
Olá Romeu!
Outra coisa que você poderia testar / ponderar também seria a utilização de deviation = 5 (ou menor) e type_filling = ORDER_FILLING_IOC (quanto estiver trabalhando com volumes maiores).
tinha pensado nisso também, vou mudar no código e amanha se tiver alguma operação falo o que deu.
tinha pensado nisso também, vou mudar no código e amanha se tiver alguma operação falo o que deu.
Romeu, peço desconsiderar essa minha última sugestão, se a sua corretora utilizar o modo de execução de mercado. Recebi o feedback (muito válido) de que o campo deviation não é considerado nesse caso:
... Para os dois casos abaixo (execução a pedido e execução instantânea) a sugestão pode ser válida: