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
Obrigado pela resposta!
Mas como posso obter uma linha angular de MA no gráfico geral, como neste código de histograma indiano?
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 FireBrick
#property indicator_color3 Yellow
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
//---- indicator parameters
extern int TimeFrame = 60;
extern int MAMode = 0;
extern int MAPeriod = 50;
extern int Price = 4;
extern double AngleTreshold = 0.25;
extern int StartMAShift = 2;
extern int EndMAShift = 0;
extern int MaxBars = 500;
string TF1;
//---- indicator buffers
double UpBuffer[];
double DownBuffer[];
double ZeroBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 );
//---- 3 indicator buffers mapping
if(!SetIndexBuffer(0,UpBuffer) &&
!SetIndexBuffer(1,DownBuffer) &&
!SetIndexBuffer(2,ZeroBuffer))
Print("cannot set indicator buffers!");
SetIndexLabel(0,"");
SetIndexLabel(1,"");
SetIndexLabel(2,"");
switch(TimeFrame)
{
case 1: TF1="M1"; break;
case 5: TF1="M5"; break;
case 15: TF1="M15"; break;
case 30: TF1="M30"; break;
case 60: TF1="H1"; break;
case 240: TF1="H4"; break;
case 1440: TF1="D1"; break;
case 10080: TF1="W1"; break;
case 43200: TF1="MN1"; break;
default: {TimeFrame = Period(); init(); return(0);}
}
IndicatorShortName("MAAngle MTF * "+TF1+" *");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| The angle for EMA |
//+------------------------------------------------------------------+
int start()
{
double fEndMA, fStartMA;
double fAngle, mFactor, dFactor;
int nLimit, i;
int nCountedBars;
double angle;
int ShiftDif;
string Sym;
if (MAMode >= 4) MAMode = 0;
if(EndMAShift >= StartMAShift)
{
Print("Error: EndMAShift >= StartMAShift");
StartMAShift = 6;
EndMAShift = 0;
}
nCountedBars = IndicatorCounted();
dFactor = 2*3.14159/180.0;
mFactor = 10000.0;
Sym = StringSubstr(Symbol(),3,3);
if (Sym == "JPY") mFactor = 100.0;
ShiftDif = StartMAShift-EndMAShift;
mFactor /= ShiftDif;
//---- check for possible errors
if(nCountedBars<0) return(-1);
//---- last counted bar will be recounted
if(nCountedBars>0) nCountedBars--;
nLimit=Bars-nCountedBars;
nLimit=MathMax(nLimit,TimeFrame/Period());
nLimit=MathMin(nLimit,MaxBars );
//---- main loop
for(i=0; i<nLimit; i++)
{
int y = iBarShift(NULL,TimeFrame,Time);
if (TimeFrame<Period()) TimeFrame=Period();
fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift);
fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift);
// 10000.0 : Multiply by 10000 so that the fAngle is not too small
// for the indicator Window.
fAngle = mFactor * (fEndMA - fStartMA)/2.0;
//fAngle = MathArctan(fAngle)/dFactor;
DownBuffer = 0.0;
UpBuffer = 0.0;
ZeroBuffer = 0.0;
if(fAngle > AngleTreshold)
UpBuffer = fAngle;
else if (fAngle < -AngleTreshold)
DownBuffer = fAngle;
else ZeroBuffer = fAngle;
}
return(0);
}
//+------------------------------------------------------------------+
Esse indicador está calculando algo semelhante à inclinação (não o ângulo, já que o ângulo nunca pode ser calculado exatamente no gráfico da série temporal, nem uma inclinação exata, já que se está tentando usar alguma matemática diferente daquela necessária para uma inclinação) para cada barra da ma. Se você quiser invertê-la (estou apenas adivinhando o que exatamente você quer), você vai obter como resultado essa ma inicial (então você vai obter uma média móvel no gráfico).
Se você deseja estender a inclinação da última barra, então você pode usar algo semelhante a este indicador https://www.mql5.com/en/forum/173235/page36 que estende a média móvel usando a inclinação da última barra.
Esse indicador está calculando algo semelhante à inclinação (não o ângulo, já que o ângulo nunca pode ser calculado exatamente no gráfico da série temporal, nem uma inclinação exata, já que se está tentando usar alguma matemática diferente daquela necessária para uma inclinação) para cada barra da ma. Se você quiser invertê-la (estou apenas adivinhando o que exatamente você quer), você vai obter como resultado essa ma inicial (então você vai obter uma média móvel no gráfico). Se você deseja estender a inclinação da última barra, então você pode usar algo semelhante a este indicador https://www.mql5.com/en/forum/173235/page36 que estende a média móvel usando a inclinação da última barra.
Obrigado mladen! É muito parecido com o que eu quero
Você tem o mesmo com o modo MTF?
mladen...
preciso de sua ajuda para modificar este indicador https://www.mql5.com/en/forum/general
Mladen,
Calcular BBands usando dados de uma média móvel.
Como exemplo a aplicar às meias MT4 não-padronizadas.
Como exemplo para um dos tipos de média móvel de AllAverages.
É um BBands que utiliza dados reais de uma média.
Sem BBands SMA, com um tipo diferente de média móvel.
Mladen,
Calcular BBands usando dados de uma média móvel.
Como exemplo a aplicar às meias MT4 não-padronizadas.
Como exemplo para um dos tipos de média móvel de AllAverages.
É um BBands que utiliza dados reais de uma média.
Sem BBands SMA, com uma média móvel de tipo diferente.Antonsan
Você pode calcular as faixas de Bollinger em qualquer valor se usar a função iStdDevOnArry().
Preencha um array com os valores que você deseja usar (valores de qualquer média, por exemplo) calcule seu desvio usando iStdDevOnArray() e calcule uma linha média para bandas de Bollinger usando iMaOnArray() (usando o mesmo array que iStrDevOnArry() usa) e então as bandas são simples: linha média + desvio*multiplicador para linha superior, e linha média - desvio*multiplicador para banda inferior
Antonsan
Aqui está um código de amostra muito simples que você pode usar como modelo para construir fitas de bollinger de qualquer valor. Tudo que você tem que fazer é substituir a chamada iRsi() nesta linha :
for(i=limit; i >= 0; i--) valor = iRSI(NULL,0,RsiLength,RsiPrice,i);
com a função desejada ou uma chamada iCustom() para qualquer indicador personalizado e calculará as faixas de Bollinger para esse valor
person77Mais uma opção adicionada : AllowCloseEqualOpen. para que você possa controlá-lo com essa opção agora
Ótimo trabalho, calúnia! Mais uma vez, obrigado.
Bom indicador para a EA
Olá,
Este indicador tem 5 linhas(pivot+R1+R2+S1+S2)
Eu quero fazer uma ea que baseie esta linha. Infelizmente estas linhas não têm tampão. Preciso que alguém atribua um tampão para cada linha.
Por favor, ajude-me
Melhores cumprimentos;
Bamik
Olá,
Este indicador tem 5 linhas(pivot+R1+R2+S1+S2)
Eu quero fazer uma ea que baseie esta linha. Infelizmente estas linhas não têm tampão. Preciso que alguém atribua um tampão para cada linha.
Por favor, ajude-me
Melhores cumprimentos;
Bamikbarnik
Você verificou esta linha : https://www.mql5.com/en/forum/172894
Há muitos indicadores de pivô usando amortecedores nessa linha
barnik
Você verificou esta linha : https://www.mql5.com/en/forum/172894
Há muitos indicadores de pivô usando amortecedores nessa linhaObrigado veado mladen por sua ajuda,
Eu baixei e testei a maioria destes indicadores. Somente o indicador " AutoPivotIndicator_ver5" era como "TARGETS-LINES".
Infelizmente, este indicador também não utiliza o buffer e utiliza o objeto.
Por favor, mude meu indicador simples.(alocar um buffer para cada linha).é um pequeno indicador.
Obrigado