[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 807

 
granit77:
Você provavelmente tem um rascunho ou código incompleto. O indicador é por cabo e nenhuma das variáveis externas é usada no código.

O que eu baixei é quase tudo isso. Eu só recorto as coordenadas.
 
Dersu:
Fiz o download de quase todos eles. Eu só recorto as coordenadas.

Algo inacabado, mas que funciona assim. Mostra a diferença entre OBV e sua linha alisada. Produziu o único parâmetro que afeta algo (grau de suavização), nada mais a mudar.

//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Silver
//---- indicator parameters
extern int SignalSMA=10;
//---- indicator buffers
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];
double ind_buffer4[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(4);
//---- drawing settings
SetIndexStyle(0,DRAW_LINE);
SetIndexDrawBegin(0,SignalSMA);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3 indicator buffers mapping
if(!SetIndexBuffer(0,ind_buffer1) &&
!SetIndexBuffer(1,ind_buffer2) &&
!SetIndexBuffer(3,ind_buffer4) &&
!SetIndexBuffer(2,ind_buffer3))
Print("cannot set indicator buffers!");
//---- name for DataWindow and indicator subwindow label
  IndicatorShortName("OBV_M");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Moving Average of Oscillator |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1-st additional buffer
for(int i=0; i<limit; i++)
ind_buffer2[i]=iOBV(NULL, 0, PRICE_CLOSE, i);
//---- signal line counted in the 2-nd additional buffer
for(i=0; i<limit; i++) {
ind_buffer3[i]=iMAOnArray(ind_buffer2,Bars,SignalSMA,0,MODE_SMA,i);
//ind_buffer4[i]=iMAOnArray(ind_buffer2,Bars,3,0,MODE_SMA,i);
}
//---- main loop
for(i=0; i<limit; i++)
ind_buffer1[i]=ind_buffer2[i]-ind_buffer3[i];
//---- done
return(0);
}
//+------------------------------------------------------------------+
 

Obrigado, granit77.

Eu apaguei o parâmetro ("OBV_M") ali, desculpe.

Compreendo a situação em geral e a aceito.

E seu primeiro comentário esclarece tudo, me deu o conhecimento, obrigado.

 
Confira - tudo está bem.
 

Bom dia!

Na guia Especialistas recebi esta mensagem "Especialistas estão desabilitados porque a conta foi alterada".

Qual é a razão, alguém já encontrou isto?


Decidi esclarecer isso.

Recebi esta mensagem em ambos os terminais de uma e mesma corretora.

Uma delas é uma conta demo e a outra é uma conta real.

 
Quando você muda de conta no terminal, os EAs são bloqueados por padrão. Desmarque a caixa em Service-Settings-Advisors-Disable EAs ao mudar de contas.
 
Roger, mas eu não mudei as contas.
 
Isso poderia ser devido à instalação de outro terminal do mesmo CD?
 
Você pode me dizer por que às vezes, quando tento fazer uma ordem pendente, uma mensagem de erro 130. Embora a parada esteja ok. é claro, o Expert Advisor pode estar tentando colocar uma ordem próxima ao mercado, mas por que o erro 130 - como posso combater isso?
 
T-G:
Você pode me dizer por que às vezes, quando tento fazer uma ordem pendente, uma mensagem de erro 130. Embora a parada esteja ok. é claro, o Expert Advisor pode estar tentando colocar uma ordem próxima ao mercado, mas por que o erro 130 - como posso combater isso?
Você pode me dar o código? E eles encontrarão o erro... :)