Metatrader no Brasil - BMF Bovespa - página 19

 
Jonatan Allan Oliveira Souza:

Antes de mais nada, obrigado pelo feed. Estou analisando se há posições abertas e em seguida entrando no método BE.

Mas como posso alterar o sl para o nível de abertura da posição? tentei fazer isso, mas sem sucesso :/

Vc leu o que escrevi em azul?
 
Trader_Patinhas:
Vc leu o que escrevi em azul?
Li sim. Mas o código em si está correto, certo? Ou seja, o erro está em enviar o mesmo valor de sl e tp, certo?
 
Infelizmente ainda não consegui. Se alguém tiver os métodos de BreakEven e TrailingStop, ficarei muito grato. :)
 
Jonatan Allan Oliveira Souza:
Li sim. Mas o código em si está correto, certo? Ou seja, o erro está em enviar o mesmo valor de sl e tp, certo?

Isso. O erro é inofensivo, não vai prejudicar a sua estratégia, mas vai ficar congestionando a rede enviando um monte de ordens rejeitadas pelo servidor. Convém testar com um "if" se o valor do open-price já estiver igual e não enviar a ordem de modificação nesse caso.

Não entendi o que você ainda "não conseguiu". Se o SL e o TP já estão nos valores que vc deseja, o que está errado?

 
Trader_Patinhas:

Isso. O erro é inofensivo, não vai prejudicar a sua estratégia, mas vai ficar congestionando a rede enviando um monte de ordens rejeitadas pelo servidor. Convém testar com um "if" se o valor do open-price já estiver igual e não enviar a ordem de modificação nesse caso.

Não entendi o que você ainda "não conseguiu". Se o SL e o TP já estão nos valores que vc deseja, o que está errado?

Você está dizendo pra mim comparar o open_price som o sl?
 
Trader_Patinhas:

Isso. O erro é inofensivo, não vai prejudicar a sua estratégia, mas vai ficar congestionando a rede enviando um monte de ordens rejeitadas pelo servidor. Convém testar com um "if" se o valor do open-price já estiver igual e não enviar a ordem de modificação nesse caso.

Não entendi o que você ainda "não conseguiu". Se o SL e o TP já estão nos valores que vc deseja, o que está errado?

Na verdade a ordem não recebe a alteração. Os níveis de stop e take permanecem como os iniciais.
 
Jonatan Allan Oliveira Souza:
Na verdade a ordem não recebe a alteração. Os níveis de stop e take permanecem como os iniciais.

Consegui resolver! Na verdade percebi que o spread no mt5 é fixo e o código estava mandando o stop para dentro do spread. Eis aí uma nova questão! Não tem como alterar o valor do spread no mt5? Na minha opinião o spread do WDO não é 500 pontos no diário.



 
Jonatan Allan Oliveira Souza:

Consegui resolver! Na verdade percebi que o spread no mt5 é fixo e o código estava mandando o stop para dentro do spread. Eis aí uma nova questão! Não tem como alterar o valor do spread no mt5? Na minha opinião o spread do WDO não é 500 pontos no diário.



Tem algo muito errado aí!

O spread do WDO não é fixo e jamais seria de 500 pontos.

Ele fica na maior parte do tempo em 0.5 e pode aumentar ocasionalmente em múltiplos de 0.5 (1.0, 1.5, 2.0 etc...).

Geralmente ele só fica acima de 1.0 transitoriamente, por frações de segundo.

O problema real que eu vi na imagem do seu log é que vc estava enviando ordem de modificação de SL/TP com os mesmos valores de SL/TP que já estava configurados antes. Essa era a razão do erro.

Se vc está observando um spread de 500 pontos, certamente é porque vc está cometendo algum erro de multiplicação ou divisão por 1000 nos seus cálculos.

E isso talvez explique o que estava acontecendo, pois se por alguma razão o seu código estiver calculando os novos valores do SL e do TP 1000 vezes menores que os corretos, após o arredondamento esses valores ficarão iguais aos valores que já estavam antes, gerando aquele erro que aparece na imagem do seu log.

Mais ainda: nesse caso o comando de modificação só vai funcionar quando vc posicionar o SL e o TP com distância acima de 500, que parece ser o que vc está observando, o que reforça a hipótese acima de vc estar cometendo um erro de multiplicação/divisão por 1000 nos seus cálculos.

Verifique seu código com cuidado e veja se não é isso.

 

Ok esterei vendo sim, mas o que eu fiz foi somente dar um check nas propriedades do gráfico de BT e a linha Ask aparece com essa diferença de 500 pontos. Então não é o código que gera essa linha de preço, mas sim o MT5. Alguém pode conferir pra mim? Noix...


Razão: