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
Olá Malden!
Obrigado por seu apoio! ;-)
Mesmo quando eu escrevo o código como você me disse:
(Acho que sim...)
#property indicator_chart_window
double buffer[];
double mom1[];
int init() { SetIndexBuffer(0,buffer); SetIndexBuffer(1,mom1);return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
mom1 = iCustom(NULL,0,"custom name",0,i);
buffer = (
Mom(mom1,10,Bars,i);
//doesn't work - no value in indi
// Mom(mom1,10,Bars,i); //error: parameter conversation not allowed
// mom1 // this works
);
}
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);Portanto, quando uso a "Primeira" versão, não recebo nenhum valor...
Quando utilizo a segunda versão, recebo o erro... hmmm.
Só chamar a mãe1 funciona... mas este não é o valor certo...
Obrigado por sua ajuda!
Adeus, ATSubstitua o "nome personalizado" pelo nome do seu indicador (indicador existente), adicione parâmetros à chamada iCustom(), e ele funcionará. Esse nome foi colocado ali apenas como um exemplo
Além disso, você não definiu o número de buffers (não usando #property indicator_buffers nem usando a função IndicatorBuffers()) O indicador "pensa" que existem 0 buffers e nunca inicializará esses bugs em tamanho real. Defina o número de buffers que você vai usar
_______________________
Olá Mladen!
Obrigado por suas informações... Eu já fiz isso... O código é parecido com este:
#property indicator_separate_window
#property indicator_color3 Red
#property indicator_width1 3
#property indicator_buffers 3
#property indicator_color1 LawnGreen
#property indicator_color2 Red
#include // here the mom() function is incl.
double buffer[];
double mom1[];
int init() { SetIndexBuffer(0,buffer); SetIndexBuffer(1,mom1);return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
mom1 = iCustom(NULL,0,"myIndi",0,i);
buffer = (
Mom(mom1,10,Bars,i); //doesn't work - no value in indi
// Mom(mom1,10,Bars,i); //error: parameter conversation not allowed
// mom1 // this works, but no subfunction incl.
);
}
return(0);
}
//normaly in mqh incl.
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);
O erro de conversa ainda está lá...
Obrigado por sua ajuda!
Tchau, AT
Olá Mladen!
Obrigado por suas informações... Eu já fiz isso... O código tem este aspecto:
#property indicator_separate_window
#property indicator_color3 Red
#property indicator_width1 3
#property indicator_buffers 3
#property indicator_color1 LawnGreen
#property indicator_color2 Red
#include // here the mom() function is incl.
double buffer[];
double mom1[];
int init() { SetIndexBuffer(0,buffer); SetIndexBuffer(1,mom1);return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
mom1 = iCustom(NULL,0,"myIndi",0,i);
buffer = (
Mom(mom1,10,Bars,i); //doesn't work - no value in indi
// Mom(mom1,10,Bars,i); //error: parameter conversation not allowed
// mom1 // this works, but no subfunction incl.
);
}
return(0);
}
//normaly in mqh incl.
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);
O erro de conversa ainda está lá...
Obrigado por sua ajuda!
Adeus, ATAqui está uma versão sem erros de compilação..: _test.mq4
Não tem idéia do que é "myIndi" então não poderia testar se iCustom() retorna valores de seu indicador "myIndi".
Olá Mladen!
Meu indi é uma produção normal do JMA.mq4 / JMA Indi.
Também pode ser uma saída de MA ou qualquer outra coisa. "myIndi" não é um indi especial.
E o chamado do indi funciona na janela normal do indi.
Meu código se parece com este:
#property indicator_separate_window
#property indicator_color3 Red
#property indicator_width1 3
#property indicator_buffers 3
#property indicator_color1 LawnGreen
#property indicator_color2 Red
#include // here the mom() function is incl.
double buffer[];
double mom1[];
int init() { SetIndexBuffer(0,buffer); SetIndexBuffer(1,mom1);return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
mom1 = iCustom(NULL,0,"JMA",0,i); //normal JMA / MA output
// I get this out put, and it's ok, but the second output (buffer) is zero...
buffer = (
Mom(mom1,10,Bars,i); //no compiler error, but doesn't work - no value in indi window
// Mom(mom1,10,Bars,i); //error: parameter conversation not allowed
// mom1 // this works, but it's the value i want
);
}
return(0);
}
//normaly in mqh incl.
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);
Eu não entendo o fracasso que eu fiz...
Muito obrigado por sua ajuda!!
Tchau, AT
Olá Mladen!
Quando escrevo ou mudo assim...
Também recebo o erro de conversa... alguma idéia...
Muito obrigada!
Tchau, AT
#property indicator_separate_window
#property indicator_color3 Red
#property indicator_width1 3
#property indicator_buffers 3
#property indicator_color1 LawnGreen
#property indicator_color2 Red
//#include // here the mom() function is incl.
double buffer[];
double mom1[];
int init() { SetIndexBuffer(0,buffer); SetIndexBuffer(1,mom1);return(0); }
//normaly in mqh incl.
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
mom1 = iMA(Symbol(),Period(),13,8,MODE_SMMA,PRICE_MEDIAN,i); //normal JMA / MA output
// I get this out put, and it's ok, but the second output (buffer) is zero...
buffer = (
// Mom(mom1,10,Bars,i) //no compiler error, but doesn't work - no value in indi window
Mom(mom1,10,Bars,i) //error: parameter conversation not allowed
// mom1 // this works, but it is NOT the value i want
);
}
return(0);
}
Olá Mladen!
Quando escrevo ou mudo assim...
Também recebo o erro de conversa... alguma idéia...
Muito obrigado!
Tchau, AT
#property indicator_separate_window
#property indicator_color3 Red
#property indicator_width1 3
#property indicator_buffers 3
#property indicator_color1 LawnGreen
#property indicator_color2 Red
//#include // here the mom() function is incl.
double buffer[];
double mom1[];
int init() { SetIndexBuffer(0,buffer); SetIndexBuffer(1,mom1);return(0); }
//normaly in mqh incl.
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
mom1 = iMA(Symbol(),Period(),13,8,MODE_SMMA,PRICE_MEDIAN,i); //normal JMA / MA output
// I get this out put, and it's ok, but the second output (buffer) is zero...
buffer = (
// Mom(mom1,10,Bars,i) //no compiler error, but doesn't work - no value in indi window
Mom(mom1,10,Bars,i) //error: parameter conversation not allowed
// mom1 // this works, but it is NOT the value i want
);
}
return(0);
}
em120
Você não pode usar um elemento que evolui para o dobro quando o parâmetro esperado é suposto ser constante[]. Ao invés de usar "mom1", use "mom1".
Olá Mladen!
Obrigado pela resposta, então minha pergunta agora é, como "converter" meu duplo para minha série dupla constante[]
porque quando eu uso a mãe1 só recebo um "0" como saída.
Então, como posso fazer com que a mãe1 "se pareça", por exemplo, com o Close. Existe algum código de amostra para isso?
Muito obrigado e adeus, AT
Olá Mladen!
Obrigado pela resposta, então minha pergunta agora é, como "converter" meu duplo para minha série dupla constante[]
porque quando eu uso a mãe1 só recebo um "0" como saída.
Então, como posso fazer com que a mãe1 "se pareça", por exemplo, com o Close. Existe algum código de amostra para isso?
Muito obrigado e adeus, ATVocê não precisa "converter" nada. No momento em que a parte "" é removida, ela "se torna" o parâmetro adequado.
Veja como fica na tabela:
E aqui está o código : _test_2.mq4
Olá Mladen!
Agora funciona para mim, parece que esqueci os IndicatorBuffers(2);
Agora parece que tenho o valor certo!
Muito obrigado por sua ajuda!!
Adeus, AT
Quais matrizes precisam ser declaradas como constantes nos parâmetros de funções?