Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 9
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
Estou tentando dar sentido a isso. Então, em sua opinião, a opção correta é SVA_03, certo?
Sim, eu acho que sim. Mas _02 está definitivamente errado.
Hmmm... encontrei um erro em mim mesmo, agora não há quase nenhuma discrepância, aqui está o original
//| SVA_04.mq4 |
//| Copyright © 2006, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property strict
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Yellow
//---- input parameters
extern int RSIPeriod=14;
extern int Levl=50;
extern int TF=0;
//---- buffers
double MABuffer[];
double PosBuffer[];
double NegBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
IndicatorBuffers(1);
SetIndexBuffer(0,MABuffer);
SetIndexBuffer(1,PosBuffer);
SetIndexBuffer(2,NegBuffer);
//---- indicator line
SetIndexStyle(0,DRAW_LINE);
//----
//---- name for DataWindow and indicator subwindow label
// short_name="RSI("+IntegerToString(RSIPeriod)+")";
short_name="RSI("+RSIPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
SetIndexLabel(1,"U");
SetIndexLabel(2,"D");
return(0);
}
//+------------------------------------------------------------------+
//| Relative Strength Index |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
double rel,negative,positive,sma,x,y,Pos,Neg;
//----
if(Bars<=RSIPeriod) return(0);
if(TF!=0)
{
string name=WindowExpertName();
for(i=0; i<Bars-counted_bars+1; i++)
{
int barIndex=iBarShift(NULL,TF,Time[i],false);
MABuffer[i]=iCustom(Symbol(),TF,name,RSIPeriod,Levl,0,0,barIndex);
}
return(0);
}
i=Bars-RSIPeriod-1;
if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double sumn=0.0,sump=0.0;
if(i==Bars-RSIPeriod-1)
{
int k=Bars-2;
//---- initial accumulation
while(k>=i)
{
rel=Close[k]-Close[k+1];
if(rel>0) sump+=rel;
else sumn-=rel;
k--;
}
positive=sump/RSIPeriod;
negative=sumn/RSIPeriod;
}
else
{
//---- smoothed moving average
rel=Close[i]-Close[i+1];
if(rel>0) sump=rel;
else sumn=-rel;
positive=(PosBuffer[i+1]*(RSIPeriod-1)+sump)/RSIPeriod;
negative=(NegBuffer[i+1]*(RSIPeriod-1)+sumn)/RSIPeriod;
}
PosBuffer[i]=positive;
NegBuffer[i]=negative;
i--;
}
i=Bars-RSIPeriod-1;
if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
x=PosBuffer[i+1];
y=NegBuffer[i+1];
if(x>0)sma=Close[i+1]+x;
else sma=Close[i+1]-y;
MABuffer[i]=sma;
i--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
Aqui está a versão do SVA_03 com a correção
//| SVA_03.mq4 |
//| Copyright © 2006, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property strict
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
//---- input parameters
extern int RSIPeriod=14;
extern int Levl=50;
extern int TF=0;
//---- buffers
double MABuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
IndicatorBuffers(1);
SetIndexBuffer(0,MABuffer);
//---- indicator line
SetIndexStyle(0,DRAW_LINE);
//----
//---- name for DataWindow and indicator subwindow label
// short_name="RSI("+IntegerToString(RSIPeriod)+")";
short_name="RSI("+RSIPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
return(0);
}
//+------------------------------------------------------------------+
//| Relative Strength Index |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
double rel,negative,positive,sma,x,y,Pos,Neg;
//----
if(Bars<=RSIPeriod) return(0);
if(TF!=0)
{
string name=WindowExpertName();
for(i=0; i<Bars-counted_bars+1; i++)
{
int barIndex=iBarShift(NULL,TF,Time[i],false);
MABuffer[i]=iCustom(Symbol(),TF,name,RSIPeriod,Levl,0,0,barIndex);
}
return(0);
}
i=Bars-RSIPeriod-1;
if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double sumn=0.0,sump=0.0;
if(i==Bars-RSIPeriod-1)
{
int k=Bars-2;
//---- initial accumulation
while(k>=i)
{
rel=Close[k]-Close[k+1];
if(rel>0) sump+=rel;
else sumn-=rel;
k--;
}
positive=sump/RSIPeriod;
negative=sumn/RSIPeriod;
}
else
{
//---- smoothed moving average
rel=Close[i]-Close[i+1];
if(rel>0) sump=rel;
else sumn=-rel;
positive=(Pos*(RSIPeriod-1)+sump)/RSIPeriod;
negative=(Neg*(RSIPeriod-1)+sumn)/RSIPeriod;
}
x=Pos;
y=Neg;
Pos=positive;
Neg=negative;
if(x>0)sma=Close[i+1]+x;
else sma=Close[i+1]-y;
MABuffer[i]=sma;
i--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
lá substituiu
y=negative;
para .
y=Neg;
Boa tarde!
Socorro! Preciso de um código para abrir uma ordem pendente. E em 20 minutos após a abertura do pedido, se não for fechado, ele mudará o SL para 50 pips. Obrigado!
Boa tarde
Por favor, ajude com uma pergunta muito simples (provavelmente). Existe uma função padrão:
O que significa "const void &" e como utilizá-lo? ? Mesmo uma simples tentativa de escrever uma função similar leva a um erro de compilação:
return ArraySize(array);
}
Erro de compilação: 'const' - uso ilegal do tipo 'void'.
Como posso usar "const void &"corretamente ao escrever meu próprio código? Isso pode ser feito de qualquer maneira?
Boa tarde
Por favor, ajude com uma pergunta muito simples (provavelmente). Existe uma função padrão:
O que significa "const void &" e como utilizá-lo? ? Mesmo uma simples tentativa de escrever uma função similar leva a um erro de compilação:
return ArraySize(array);
}
Erro de compilação: 'const' - uso ilegal do tipo 'void'.
Como posso usar "const void &"corretamente ao escrever meu próprio código? Ou ele pode ser usado de qualquer maneira?
Substituir o vazio pelo tipo de dados que deve armazenar a matriz. A função padrão é projetada como um modelo.
Na verdade, esta função do sistema é uma função sobrecarregada, e toda a implementação de tal sobrecarga é escondida do desenvolvedor do MQL4:
intArraySize(
void&array[]// array a ser verificado
);
O compilador MQL4 na verdade substitui uma implementação necessária para cada chamada desta função, por exemplo, por matrizes do tipo inteiro como esta
intArraySize(
int&array[]// array com elementos do tipo int
);
E para um conjunto de MqlRates tipo para trabalhar com citações em formato de dados históricos, a função ArraySize() pode ser representada da seguinte forma
intArraySize(
MqlRates&array[]// array preenchido com valores de MqlRates tipo
);
Boa tarde!
Socorro! Preciso de um código para abrir uma ordem pendente. E em 20 minutos após a abertura do pedido, se não for fechado, ele mudará o SL para 50 pips. Obrigado!
Substituir o vazio pelo tipo de dados que deve armazenar a matriz. A função padrão é projetada como um modelo.
Na verdade, esta função do sistema é uma função sobrecarregada, e toda a implementação de tal sobrecarga é escondida do desenvolvedor de programas na MQL4.
Eu entendi corretamente que na MQL4/MQL5 o "const void &" constrói - é na verdade uma notação simbólica para a referência e na prática não pode ser escrita em suas próprias funções?
Obrigado de antemão
Eu entendi corretamente que na MQL4/MQL5 a estrutura "const void &" é - é de fato uma notação simbólica para o livro de referência e na prática não pode ser usado em suas próprias funções?
Agradecemos antecipadamente