Programar pra indice X Programar pra Forex

Para adicionar comentários, por favor Faça o login ou registrar
HENRIQUE ARAUJO DOS SANTOS
2387
HENRIQUE ARAUJO DOS SANTOS  

Eu tenho alguns robôs aqui, eu percebi que eles rodem no indice, mas no forex não rodam. Gostaria de saber se existe uma forma de programar pra qualquer ativo,ou pelo menos pra indice e forex. Eu uso a classe CTrade, MqlTick. Mas no forex, dá esse problema no meu EA:


Existe alguma diferença no calculo dos pontos, eu estou usando:


if(candle[1].open > ma[1] && candle[1].close > ma[1] && candle[1].close > candle[2].high && m_symbol.Last() > candle[1].high  && HorarioEntrada()){
  m_trade.Buy(Lots,m_symbol.Name(),m_symbol.Ask(),0,0,NULL);
  }
Ruy Christian Hoffmann
707
Ruy Christian Hoffmann  
HENRIQUE ARAUJO DOS SANTOS:

Eu tenho alguns robôs aqui, eu percebi que eles rodem no indice, mas no forex não rodam. Gostaria de saber se existe uma forma de programar pra qualquer ativo,ou pelo menos pra indice e forex. Eu uso a classe CTrade, MqlTick. Mas no forex, dá esse problema no meu EA:


Existe alguma diferença no calculo dos pontos, eu estou usando:


Olá Henrique, 

Existe toda a diferença.... na quantidade de pontos, nos valores, nos gap´s, enfim, não sugiro você adaptar seu EA para forex sem antes  estudar profundamente o mercado forex.

Uma vez que você faça isso será tão claro quanto a água o que você precisará mudar no seus códigos para funcionar no forex.

Ivan Ronchi
340
Ivan Ronchi  

Olá,

Tente não informar o preço Ask para comprar ao valor do mercado.

No Forex existe spread que não permite comprar ao preço corrente Ask.

O spread também vale para as saídas e stops.


Ivan

HENRIQUE ARAUJO DOS SANTOS
2387
HENRIQUE ARAUJO DOS SANTOS  
Ivan Ronchi:

Olá,

Tente não informar o preço Ask para comprar ao valor do mercado.

No Forex existe spread que não permite comprar ao preço corrente Ask.

O spread também vale para as saídas e stops.


Ivan

Como seria isso? Poderia ser no no preço corrente então ? Se puder me passar um exemplo de emvio de ordem no forex, ficarei grato.

Rogerio Giannetti Torres
3139
Rogerio Giannetti Torres  
HENRIQUE ARAUJO DOS SANTOS:



Olá Henrique,

esse preço de  EUR 2,70  está totalmente errado, né !!???  Veja se tem comando RefreshRates() no OnTick(),  e veja se executou o m_symbol.Name(_Symbol)  (só precisa executar uma vez) antes do RefreshRates().

Ivan Ronchi
340
Ivan Ronchi  
HENRIQUE ARAUJO DOS SANTOS:

Como seria isso? Poderia ser no no preço corrente então ? Se puder me passar um exemplo de emvio de ordem no forex, ficarei grato.

  m_trade.Buy(Lots,m_symbol.Name(), 0,0, 0, NULL);

HENRIQUE ARAUJO DOS SANTOS
2387
HENRIQUE ARAUJO DOS SANTOS  
Rogerio Giannetti Torres:

Olá Henrique,

esse preço de  EUR 2,70  está totalmente errado, né !!???  Veja se tem comando RefreshRates() no OnTick(),  e veja se executou o m_symbol.Name(_Symbol)  (só precisa executar uma vez) antes do RefreshRates().

Sim!! Em OnInit eu coloquei...

if(!m_symbol.Name(Symbol())) 
   return(INIT_FAILED);
   RefreshRates();
Atila Ribeiro
997
Atila Ribeiro  

Tenta assim o codigo

if(candle[1].open > ma[1] && candle[1].close > ma[1] && candle[1].close > candle[2].high && m_symbol.Last() > candle[1].high && HorarioEntrada()){ m_trade.Buy(Lots,m_symbol.Name(),NormalizeDouble(m_symbol.Ask(),_Digits),0,0,NULL); }

Rogerio Giannetti Torres
3139
Rogerio Giannetti Torres  
HENRIQUE ARAUJO DOS SANTOS:

Sim!! Em OnInit eu coloquei...

Olá Henrique,

1) Coloca RefreshRates() dentro do OnTick() para pegar a última cotação do instrumento. Você colocou no OnInit(), ou seja pegou uma única vez a cotação, mesmo assim tem algo muito errado no programa.

2) A cotação de XAUEUR está em EUR 1483,33, então faz o seguinte, coloca um print (m_symbol,Name()," ",m_symbol.Ask()); antes do trade.buy(), para enxergar o que está acontecendo.

HENRIQUE ARAUJO DOS SANTOS
2387
HENRIQUE ARAUJO DOS SANTOS  

Problema resolvido. Usando o m_symbol.NormalizePrice, _Point e trazendo o RefreshRates() pra dentro de OnTick() tudo foi resolvido. Era só uma questão de atenção. 


Grato a todos que responderam.

Para adicionar comentários, por favor Faça o login ou registrar