[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

 
SK. писал(а) >>

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. :-)

 
SK. >> :

Veja aqui .

Obrigado, artigo muito útil.

 
stera писал(а) >>

Muito obrigado SK, Vinin!

granit77 escreveu >>

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).

 
Pergunta de um iniciante. É possível escrever uma EA em mql4, o que implica uma negociação automática com abertura e fechamento a uma determinada hora regularmente? Eu quero testá-lo. A maioria das regras usadas, mas estas idéias aparentemente não são viáveis lá.
 

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.

 
Feonix >> :

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!

 
OneDepo >> :

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]

 
Feonix писал(а) >>

//+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue

//---- input parameters

extern int MomPeriod=14;

int ret;
double x[];

//---- buffers
double MomBuffer[];
double ocfor[];
double octen[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+

int init()
{
string short_name;
//---- indicator line
IndicatorBuffers( 2);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, MomBuffer);
SetIndexBuffer(1, x);

//---- name for DataWindow and indicator subwindow label
short_name="Mom("+ MomPeriod+")";
IndicatorShortName( short_name);
SetIndexLabel(0, short_name);

//----
SetIndexDrawBegin(0, MomPeriod);

//----
return(0);

}

//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+

int start()
{
int i, counted_bars=IndicatorCounted();

//----
if(Bars<= MomPeriod) return(0);
//----
i=Bars;

while( i>=0)
{
x[ i]=(Open[ i]-Close[ i]);
MomBuffer[ i]= x[ i];
i--;
}

return(0);
}

//+------------------------------------------------------------------+
Você pode fazer isso
 
Feonix >> :

.

.

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()