[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 198
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
Dê uma olhada aqui .
Muito obrigado SK, Vinin!
Um grande exemplo para o workaraund.
Deve ter valido a pena o trabalho de se tornar tão sofisticado. :-)
Parece que a MQL4 sabe como "bem" o tempo do programador. :-)
Veja aqui .
Obrigado, artigo muito útil.
Muito obrigado SK, Vinin!
Obrigado, artigo muito útil.
Se você está interessado neste tópico, dê uma olhada neste artigo http://www.forextrade.ru/mqlabs/sozdaniie-indikatora-kaghi
Discute muitos detalhes para linhas horizontais, e mostra a solução técnica (alternância).
As linhas verticais também são ilustradas. Mas eu ainda não entendi algumas das regras. Por exemplo, basta mudar a paridade dos amortecedores de ind., à medida que a imagem vacila (bloco 4-5, mudar o número de amortecedores de 6 e 7 para 5 e 6, e fazer o 5º um 7m).
Qual é a ordem dos indicadores e dos especialistas?
Tenho 2 indicadores em um gráfico.
E no conjunto, seu tempo de execução às vezes é muito maior do que o tempo entre carrapatos.
Qual indicador é executado primeiro?
Se não forem executados em paralelo, talvez seja razoável colocá-los em gráficos diferentes, é claro, se não houver ordem de execução em gráficos diferentes.
Qual indicador ou Expert Advisor é executado primeiro se estiverem no mesmo gráfico, e se estiverem em gráficos diferentes?
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i];
Não está funcionando.
Por favor, diga-me o que fazer. Eu não sei o que fazer.
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i];
Não está funcionando.
Por favor, diga-me o que fazer. Eu não sei o que fazer.
>> O que fazer? >> Mostrar todos os códigos!
O que fazer? Mostre todo o código!
//+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#propriedade copyright "Copyright © 2004, MetaQuotes Software Corp.
#link do proprietário "http://www.metaquotes.net/"
#janela_indicadora de propriedade_separarate_window
#property indicator_buffers 1
#indicador de propriedade_color1 DodgerBlue
//---- parâmetros de entrada
externo int MomPeriod=14;
int ret;
duplo x[];
//---- buffers
duplo MomBuffer[];
duplo ocfor[];
duplo octen[];
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
nome_curto_de_filtro;
//---- linha indicadora
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MomBuffer);
//---- nome para DataWindow e subwindow do indicador
short_name="Mom("+MomPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,MomPeriod);
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
//----
if(Bars<=MomPeriod) return(0);
//----
i=barras;
while(i>=0)
{
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i];
i--;
}
retorno(0);
}
//+------------------------------------------------------------------+
Se você substituir Double x[]; por Double x;, tudo funciona, mas o objetivo é atribuir mombuffer[i]= x[i]
.
.
int start()
{
int i,counted_bars=IndicatorCounted();
//----
if(Bars<=MomPeriod) return(0);
//----
i=barras;
ArrayResize(x, i+1);
while(i>=0)
{
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i];
i--;
}
retorno(0);
}
Se você substituir Double x[]; por Double x;, tudo funciona, mas o objetivo é atribuir mombuffer[i]= x[i].
Você declarou uma matriz, mas não alocou memória para ela.
Vinin deu uma forma de alocação de memória, você pode usar a segunda, através da função ArrayResize()