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
Amigos, boa tarde !
Hoje aconteceu algo bem estranho agora no EA. Gostaria de compartilhar e tentar entender para solucionar...
No momento que eu faço o envio da minha ordem de compra no valor do preço eu coloco o valor da minha variável "ASK", que é carregada da seguinte maneira :
ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
Porém hoje o preço ficou totalmente diferente do valor do mercado no momento da execução da ordem no WIN o preço correto estava exatamente em 81586 e a minha ordem foi executada com o valor de 76850. Uma diferença extrema de valores. Não entendi o que houve.... Logo como meu SL é ASK - pontos stop e Take ASK + Pontos gain a ordem comprou e depois vendeu na sequencia.
Alguém sabe pq esse valor ficou errado ? Tem alguma forma de pegar o valor que a ordem foi executada para calcular o take e SL. Pq dessa maneira vai ficar semprem incorreto.
Obrigado !
Carlos Martins
Amigos, boa tarde !
Hoje aconteceu algo bem estranho agora no EA. Gostaria de compartilhar e tentar entender para solucionar...
No momento que eu faço o envio da minha ordem de compra no valor do preço eu coloco o valor da minha variável "ASK", que é carregada da seguinte maneira :
ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
Porém hoje o preço ficou totalmente diferente do valor do mercado no momento da execução da ordem no WIN o preço correto estava exatamente em 81586 e a minha ordem foi executada com o valor de 76850. Uma diferença extrema de valores. Não entendi o que houve.... Logo como meu SL é ASK - pontos stop e Take ASK + Pontos gain a ordem comprou e depois vendeu na sequencia.
Alguém sabe pq esse valor ficou errado ? Tem alguma forma de pegar o valor que a ordem foi executada para calcular o take e SL. Pq dessa maneira vai ficar semprem incorreto.
Obrigado !
Carlos Martins
Oi Carlos.
É impossível uma ordem no WINM20 ter sido executada a 76850 hoje, pois a mínima hoje foi 80290.
Onde vc viu esse valor? Foi na aba Histórico?
Carlos Martins
Carlos, tem um TREM muito errado no seu o EA, o ativo vigente de maior liquidez para mini índice é o WINM20, e o preço 81586 é impossível de ser cotado. pois os preços de WINM20 são múltiplos de 5.
Em outras palavras, os preços de contratos de índice são cotados multiplos de 5(cinco).
Cuidado com as séries históricas, que são instrumentos para fins estatísticos apenas, em duas delas o TICK SIZE é 1(um).
É verdade. Tanto uma execução 5000 pontos abaixo do preço de mercado quanto uma cotação de 81586 são impossíveis.
Tem algo muito errado! Verifique a aba "Histórico" do terminal e veja o valor real das negociações.
Oi Carlos.
É impossível uma ordem no WINM20 ter sido executada a 76850 hoje, pois a mínima hoje foi 80290.
Onde vc viu esse valor? Foi na aba Histórico?
Patinhas,
A ordem foi executada as 9:34 e nesse momento o preço estava muito longe disso. Eu vi o valor na coluna Preço da aba Histórico.
Acontece que o valor longe assim a ordem stop automaticamente pois passou o valor de stop...
Abs !
Carlos, tem um TREM muito errado no seu o EA, o ativo vigente de maior liquidez para mini índice é o WINM20, e o preço 81586 é impossível de ser cotado. pois os preços de WINM20 são múltiplos de 5.
Em outras palavras, os preços de contratos de índice são cotados multiplos de 5(cinco).
Cuidado com as séries históricas, que são instrumentos para fins estatísticos apenas, em duas delas o TICK SIZE é 1(um).
Olá Rogério,
Eu capturei o valor do candle, mas meu EA executa na abertura do candle seguinte que seria o 9° (nono) candle de hoje. A Abertura dele está em 81.580 que é onde deveria ter acontecido a compra.
Abs !
Olá Rogério,
Eu capturei o valor do candle, mas meu EA executa na abertura do candle seguinte que seria o 9° (nono) candle de hoje. A Abertura dele está em 81.580 que é onde deveria ter acontecido a compra.
Abs !
Mudei o envio de ordem da seguinte maneira:
if(SymbolInfoTick(Symbol(),last_tick))
{
m_request.action =TRADE_ACTION_DEAL;
m_request.symbol =_Symbol;
m_request.magic =06;
m_request.volume =v_contratos;
m_request.type =ORDER_TYPE_BUY;
m_request.price =last_tick.ask;
m_request.sl =(last_tick.ask-v_pontos_loss);
m_request.tp =(last_tick.ask+v_pontos_gain);
m_request.deviation=5;
m_request.comment="COMPRA";
Print(last_tick.time,": Bid = ",last_tick.bid,
" Ask = ",last_tick.ask," Volume = ",last_tick.volume);
OrderSend(m_request,m_result);
}
else Print("SymbolInfoTick() falhou, erro = ",GetLastError());
}
Espero que isso resolva, pois ele vai pegar o valor do ultimo tick...
Carlos,
inclua essas duas instruções ... outra coisa, abra a caixa ( Alt-S ) para inserir código na postagem.
Eu percebi isso ontem e fiz a inclusão..Obrigado !
Hoje já validei o Robo novamente e já apresentou outro erro..Tá difícil deixar redondo sendo que no simulador funciona e na produção não.
Logo após enviar a ordem eu carrego o valor do preço em uma variável da seguinte maneira :
v_preco = m_result.price; // Recupera o preço negociado
Porém o valor veio vazio.. isso fez com meu controle de fechar posição acionasse.
Não entendo por qual motivo essas funções hora funcionam e hora não. To pensando eu fazer uma função manual e não usar as padrões.
Obrigado e abs !
Eu percebi isso ontem e fiz a inclusão..Obrigado !
Hoje já validei o Robo novamente e já apresentou outro erro..Tá difícil deixar redondo sendo que no simulador funciona e na produção não.
Logo após enviar a ordem eu carrego o valor do preço em uma variável da seguinte maneira :
Porém o valor veio vazio.. isso fez com meu controle de fechar posição acionasse.
Não entendo por qual motivo essas funções hora funcionam e hora não. To pensando eu fazer uma função manual e não usar as padrões.
Obrigado e abs !
Carlos, eu já disse acima e falo de novo, pq vc não usa a classe CTrade, trabalhar com as estruturas de request e result é VERBOSO e COMPLEXO ??? A Classe CTrade abstrai todo esse trabalho que vc está tendo, além de ser simples de usar. Você esta indo para o caminho mais baixo nivel possível que tem para envios de ordem dentro do meta trader. Enfim, é apenas um pitaco.