Caso alguém tenha alguma dica eu agradeço. Obrigado.
Jorian,
desculpa aí qualquer ruído mas a dica é estudar MQL5. Eu sugiro ler e estudar o código seguindo a postagem https://www.mql5.com/pt/code/1921

- www.mql5.com
Olá,
Estou tentando criar um EA, para operar com o indicador externo RAFI, pode ser encontrado no site do Raphael de forma gratuita.
RAFI: http://raphaelfigueredo.com/page12/page13/index.html
Minha dificuldade é passar para o robô realizar operações de compra e venda, apenas quando o Rafi for maior que 2.5, conforme manual do próprio.
Para importar utilizei esse post:
https://www.mql5.com/en/forum/162627
O indicator é plotado sem erros no backtest, porém, as operações de compra e venda estão sendo executadas ignorando o Rafi > 2,5.
Alguém poderia me ajudar ?
Plotagem do Rafi, caso ajude alguém:
#resource "\\Indicators\\Rafi.ex5"
double rafi;
rafi = iCustom(Symbol(),PERIOD_CURRENT, "::Indicators\\Rafi.ex5", 0);
Essa é minha condição de compra:
if(ultimoTick.last>smaArray[0] && rates[1].close>rates[1].open && !posAberta && !ordPendente)
Estou tentando:
if(ultimoTick.last>smaArray[0] && rates[1].close>rates[1].open && rates[1].close>rafi[2.5] && !posAberta && !ordPendente)
Porém o código compila com erro, o indicador vem apenas com o ex5, não sendo possível abrir o código fonte..
Caso alguém tenha alguma dica eu agradeço. Obrigado.
Boa tarde Jorlan, para que seu EA siga corretamente as instruções, é nescessário informar o buffer correto, e outras funções como Array SetasSeries, tanto do icusom, quanto Rates e etc, para que ele possa ter a interpretação correta.
Outro detalhe é que as informações e parâmetros do icustom deve seguir ao que o indicador informa também.
Ai sim ele serguirá as informações, tambem verifique a condição de compra se está correta.
Boa tarde Jorlan, para que seu EA siga corretamente as instruções, é nescessário informar o buffer correto, e outras funções como Array SetasSeries, tanto do icusom, quanto Rates e etc, para que ele possa ter a interpretação correta.
Outro detalhe é que as informações e parâmetros do icustom deve seguir ao que o indicador informa também.
Ai sim ele serguirá as informações, tambem verifique a condição de compra se está correta.
Amigo... Teu código está com erros.
Está assim:
if(ultimoTick.last>smaArray[0] && rates[1].close>rates[1].open && rates[1].close>rafi[2.5] && !posAberta && !ordPendente)
E teria que ser assim:
if(ultimoTick.last>smaArray[0] && rates[1].close>rates[1].open && rafi[1]>2.5 && !posAberta && !ordPendente)
Mas, deixe-me complementar com outra informação. Rafi é utilizado para confirmar rompimentos de suporte/resistência. Se teu EA não tratar disso, Rafi será inútil.
Atualização:
Percebi que acima tem mais problema.
double rafi; // <----- Isto seria um buffer ou handle? Se for buffer, coloque como "double rafi[];", // e caso seja handle "int rafi" mas terá que setar um buffer para receber os dados de Rafi rafi = iCustom(Symbol(),PERIOD_CURRENT, "::Indicators\\Rafi.ex5", 0);
Então:
double RafiBuffer[]; int RafiHandle; void OnInit() { ... SetIndexBuffer(#,RafiBuffer,INDICATOR_CALCULATIONS); int RafiHandle = iCustom(_Symbol,_Period,"Rafi"); ... } int OnCalculate(...) { ... CopyBuffer(RafiHandle,0,0,100,RafiBuffer); // <--- Aqui irá copiar o buffer 0, da posição 0 até a 100 ... }
Nova Atualização:
Só agora percebi que respondi para a pessoa errada... Desculpa aí, Leonardo!

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Olá,
Estou tentando criar um EA, para operar com o indicador externo RAFI, pode ser encontrado no site do Raphael de forma gratuita.
RAFI: http://raphaelfigueredo.com/page12/page13/index.html
Minha dificuldade é passar para o robô realizar operações de compra e venda, apenas quando o Rafi for maior que 2.5, conforme manual do próprio.
Para importar utilizei esse post:
https://www.mql5.com/en/forum/162627
O indicator é plotado sem erros no backtest, porém, as operações de compra e venda estão sendo executadas ignorando o Rafi > 2,5.
Alguém poderia me ajudar ?
Plotagem do Rafi, caso ajude alguém:
#resource "\\Indicators\\Rafi.ex5"
double rafi;
rafi = iCustom(Symbol(),PERIOD_CURRENT, "::Indicators\\Rafi.ex5", 0);
Essa é minha condição de compra:
if(ultimoTick.last>smaArray[0] && rates[1].close>rates[1].open && !posAberta && !ordPendente)
Estou tentando:
if(ultimoTick.last>smaArray[0] && rates[1].close>rates[1].open && rates[1].close>rafi[2.5] && !posAberta && !ordPendente)
Porém o código compila com erro, o indicador vem apenas com o ex5, não sendo possível abrir o código fonte..
Caso alguém tenha alguma dica eu agradeço. Obrigado.