função iCustom não funciona com parâmetros do indicador, apenas com indicador default

 

Bom dia!

Estou tentando copiar os dados desse indicador personalizado para o meu EA, porem, ele não importa os valores quando eu adiciono os parâmetros de entrada do indicador no EA para que eles sejam editados quando inserir o EA no gráfico, alguém poderia me ajudar?

ABAIXO ESTÃO OS INPUTS DO INDICADOR:

//+------------------------------------------------------------------+
//| Public Inputs                                                    |
//+------------------------------------------------------------------+
input group                   "[\x2605\x2605\x2605 FIBO \x2605\x2605\x2605]";
input int                     DAYS_MAX                         = 4;                             // Qtd. Máxima de dias
input double                  RANGE_MIN                        = 40;                            // Range Min
input double                  RANGE_MAX                        = 50;                            // Range Máx

input group                   "[\x2605\x2605\x2605 ZIGZAG \x2605\x2605\x2605]";
input int                     ZIGZAG_DEPTH                     = 3;                             // Depth
input int                     ZIGZAG_DEVIATION                 = 3;                             // Deviation
input int                     ZIGZAG_BACKSTEP                  = 3;                             // Backstep


ABAIXO NÃO FUNCIONA:

   handle_autoFibo = iCustom(_Symbol, _Period, "\\Indicators\\\\Market\\FIBO_IND.01.ex5" ,DAYS_MAX, RANGE_MIN, RANGE_MAX, ZIGZAG_DEPTH, ZIGZAG_DEVIATION, ZIGZAG_BACKSTEP, 0, 1);


Porem o EA consegue ler os parâmetros do indicador quando eu deixo ele default.

ABAIXO FUNCIONA:

   handle_autoFibo = iCustom(_Symbol, _Period, "\\Indicators\\\\Market\\FIBO_IND.01.ex5", 0, 1);


Obrigado por toda e qualquer ajuda dada!

 
Joao Paulo Perozzine:

Bom dia!

Estou tentando copiar os dados desse indicador personalizado para o meu EA, porem, ele não importa os valores quando eu adiciono os parâmetros de entrada do indicador no EA para que eles sejam editados quando inserir o EA no gráfico, alguém poderia me ajudar?

ABAIXO ESTÃO OS INPUTS DO INDICADOR:


ABAIXO NÃO FUNCIONA:


Porem o EA consegue ler os parâmetros do indicador quando eu deixo ele default.

ABAIXO FUNCIONA:


Obrigado por toda e qualquer ajuda dada!



Bom dia!!


Tente uma das opções abaixo pra ver se lê:

   handle_autoFibo = iCustom(_Symbol, _Period, "Market\\FIBO_IND.01.ex5", EMPTY_VALUE, DAYS_MAX, RANGE_MIN, RANGE_MAX, EMPTY_VALUE, ZIGZAG_DEPTH, ZIGZAG_DEVIATION, ZIGZAG_BACKSTEP);

//---

   handle_autoFibo = iCustom(_Symbol, _Period, "Market\\FIBO_IND.01.ex5", "", DAYS_MAX, RANGE_MIN, RANGE_MAX, "", ZIGZAG_DEPTH, ZIGZAG_DEVIATION, ZIGZAG_BACKSTEP);


EDIT.1:

iCustom - Indicadores Técnicos - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5

A sugestão acima considera que o indicador está localizado no subdiretório MQL5/Indicators/Market.


EDIT.2:

Lembre-se de remover esse ", 0, 1" que você incluiu após os parâmetros. Eles seriam necessários em MQL4, mas não em MQL5.


. . .

Documentação sobre MQL5: Indicadores Técnicos / iCustom
Documentação sobre MQL5: Indicadores Técnicos / iCustom
  • www.mql5.com
iCustom - Indicadores Técnicos - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 

A meu ver, o ideal é que o colega postasse mais um pouco de código... está muito vago sua dúvida;

Pelo que entendi é muito simples de resolver...

//primeiro coloca seu indicador personalizado na pasta Indicators, 
//depois declara esse nos includes (talvez seria interessante tirar esse ponto "." pois pode estar confundindo o compilador, coloque underline "_")
#resource "\\Indicators\\FIBO_IND_01.ex5"

//quando for carregar o handle do indicador, 
//depois do string contendo endereço e nome do indicador, 
//vc vai colocar as variáveis do seu robô que correspondem aos 
//valores dos inputs do indicador na ordem em que estão dentro do indicador 
//todas essas variáveis que vão após o "nome" do indicador devem ser variáveis (ou inputs) do EA...

//é importante testar o valor do handle...
handle_autoFibo = iCustom(_Symbol, _Period, "::Indicators\\FIBO_IND_01.ex5" ,DAYS_MAX, RANGE_MIN, RANGE_MAX, ZIGZAG_DEPTH, ZIGZAG_DEVIATION, ZIGZAG_BACKSTEP, 0, 1);
if(handle_autoFibo<=0)
  {Print("handle_autoFibo falhou! erro: ",GetLastError()); return(INIT_FAILED);}//No OnInit ou em uma função/classe chamada pelo OnInit

Se essas variáveis que vc colocar depois do nome estiverem declaradas no escopo global do seu EA, elas irão carregar no indicador; a menos que dentro do próprio indicador exista altuma função que obrigue ele a usar valores defaut para evitar erro de usuário... obrigado pela atenção.

 

Tenta assim:

iCustom(_Symbol, _Period, "::Indicators\\FIBO_IND_01.ex5" ,"",DAYS_MAX, RANGE_MIN, RANGE_MAX,"", ZIGZAG_DEPTH, ZIGZAG_DEVIATION, ZIGZAG_BACKSTEP, 0, 1);

Acredito que vai funcionar.


Quem desenvolveu o indicador usou o "input group", então você precisa passar uma string vazia..


Veja e me avise.


Abs

 
Ricardo Branco #:

Tenta assim:

Acredito que vai funcionar.


Quem desenvolveu o indicador usou o "input group", então você precisa passar uma string vazia..


Veja e me avise.


Abs

Muito obrigado pela dica, atualizei o código e funcionou perfeitamente!! 

 
Vinicius de Oliveira #:



Bom dia!!


Tente uma das opções abaixo pra ver se lê:


EDIT.1:

iCustom - Indicadores Técnicos - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5

A sugestão acima considera que o indicador está localizado no subdiretório MQL5/Indicators/Market.


EDIT.2:

Lembre-se de remover esse ", 0, 1" que você incluiu após os parâmetros. Eles seriam necessários em MQL4, mas não em MQL5.


. . .

Muito obrigado pela dica, atualizei o código e funcionou perfeitamente!!

Poderia me explicar o que seriam esse ",0,1"? pelo que li na explicação da função eles realmente não existem, adicioneis eles porque vi em outros códigos.

 
Joao Paulo Perozzine #:

Muito obrigado pela dica, atualizei o código e funcionou perfeitamente!!

. . .


De nada!! 👍



Joao Paulo Perozzine #:

. . .

Poderia me explicar o que seriam esse ",0,1"? pelo que li na explicação da função eles realmente não existem, adicioneis eles porque vi em outros códigos.


Os outros códigos que você viu eram de MQL4. Em MQL4, a função iCustom utiliza esses parâmetros adicionais (documentação em inglês):