Indicadores de múltiplos períodos de tempo - página 108
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
inclinação do mtf
veja aqui alpha24seven
https://www.mql5.com/en/forum/173574
Obrigado Lodol2
Desculpe-me por ter perdido esses. Obrigado por trazê-los à minha atenção.
Tive alguns problemas de compilação. Nunca tinha visto este erro antes. Alguma idéia?
Veja o gráfico
Obrigado.
Concordo com tudo o que você disse, mas acho que não fui suficientemente claro.
A fórmula de keris não parece assim em tempo real (sem atualizar os gráficos!), parece mais aquela linha amarela; se você atualizar os gráficos, sim, tudo parece bem - mas então por que não usaremos simplesmente um segundo gráfico com o prazo mais alto... e confirmar que o indicador se move apenas no prazo mais alto?
a partir do momento que você traçar um indicador mtf em um período de tempo mais baixo, você tem outra forma de calcular a média de alguns dados nesse período de tempo (e não em um tf superior). nunca vai parecer com o original - mas pode ser aproximado. então a pergunta é, como encontrar a melhor fórmula para a aproximação mais próxima? e acho que isso responde sua pergunta... certo?
A linha vermelha é a aproximação do MA que você está propondo
Magenta é a forma Keris do MTF MA
A linha dourada são os valores reais de um horizonte de tempo MA mais alto em um horizonte de tempo mais baixo
Como você pode ver, dificilmente há um valor correto do aproximado durante um período de tempo, enquanto a fórmula de Keris dá pelo menos um valor correto por período. De qualquer forma, a fórmula para a aproximação em Metatrader seria :
MAperiod=MAperiod*TimeFrame/Período()
Se você tentar aplicar esta aproximação aos indicadores derivados da média móvel (MACD, por exemplo), você acabará com grandes, e eu quero dizer grandes diferenças (eu vi uma diferença de 7-8% de um MACD de 4H em um período de 1H)
Uma contra pergunta: o que você acha que quantas pessoas tentaram abordagens diferentes para indicadores de múltiplos períodos de tempo?Erro no Código
Eu descobri. Este código extra foi deixado no arquivo -- no final. Basta apagá-lo, compilá-lo e voilà'.
Excelente indicador BTW.
---
/*
drawLine voidLine (duplo nível, nome do cordel, cor Col )
{
ObjectDelete(nome);
ObjectCreate(name, OBJ_HLINE, WindowFind(name), Time[0], lvl,Time[0], lvl);
ObjectSet(nome, OBJPROP_STYLE, STYLE_DOT);
ObjectSet(nome, OBJPROP_COLOR, Col);
ObjectSet(nome,OBJPROP_WIDTH,1);
}
---
...
A linha amarela é a média móvel do "MTF real".
Não há necessidade de "atualizar" nenhum dos indicadores do quadro
Quanto ao resto, por favor, leia novamente esse post
cumprimentos
mladen
concordo com tudo o que você disse, mas acho que não fui suficientemente claro.
A fórmula de keris não parece assim em tempo real (sem atualizar os gráficos!), parece mais aquela linha amarela; se você atualizar os gráficos, sim, tudo parece bem - mas então por que não usaremos simplesmente um segundo gráfico com o prazo mais alto... e confirmar que o indicador se move apenas no prazo mais alto?
a partir do momento em que você traça um indicador mtf em um intervalo de tempo mais baixo, você tem outra maneira de calcular a média de alguns dados nesse intervalo de tempo (e não em um tf mais alto). nunca vai parecer com o original - mas pode ser aproximado. então a pergunta é, como encontrar a melhor fórmula para a aproximação mais próxima? e acho que isso responde à sua pergunta... certo?Necessidade de Mtf para este Indi
Olá a todos,
Tenho querido ter a capacidade de traçar indicadores de diferentes períodos de tempo em meu gráfico
//+------------------------------------------------------------------+
//| Fisher_m11.mq4 |
//| Copyright ฉ forexjr
//| Índice de /cam06/fisher |
//+------------------------------------------------------------------+
#direitos autorais "Copyright ฉ 23.07.2006 MartinG"
#link de propriedade "http://home.arcor.de/cam06/fisher"
#janela_indicadora de propriedade_separarate_window
//# indicador de propriedade_mínimo -1
//# indicador de propriedade_máximo 1
#property indicator_buffers 3
#indicador de propriedade_color2 RoyalBlue
#indicador de propriedade_cores3 Vermelho
#largura_do_indicador de propriedade2 0,5
#largura_indicador de propriedade3 0,5
int LeftNum1=56;
int LeftNum2=56;
int ExternoFaixaPeríodos=35;
duplo preço externoSuave=0,3; // =0,67 bei Fisher_m10
duplo IndexSmoothing externo=0,3; // =0,50 bei Fisher_m10
string ThisName="Fisher_kuskus";
int DrawStart;
//---- buffers
duplo ExtMapBuffer1[];
duplo ExtMapBuffer2[];
duplo ExtMapBuffer3[];
duplo ExtMapBuffer4[];
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
//---- indicadores
IndicatorBuffers(4);
SetIndexLabel(0, "Estrela");
SetIndexStyle(0,DRAW_NONE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(2,DRAW_HISTOGRAM);
SetIndexBuffer(2,ExtMapBuffer3); SetIndexBuffer(2,ExtMapBuffer3);
SetIndexStyle(3,DRAW_NONE);
SetIndexBuffer(3,ExtMapBuffer4); SetIndexBuffer(3,ExtMapBuffer4);
string Text=EsteNome;
Text=Texto+" (rPeriods "+RangePeriods;
Text=Texto+", pSmooth "+DoubleToStr(PriceSmoothing,2);
Text=Text+", iSmooth "+DoubleToStr(IndexSmoothing,2);
Text=Texto+") ";
IndicatorShortName(Texto);
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);
DrawStart=2*Períodos de Intervalo+4; // DrawStart= BarNumber calculado da esquerda para a direita
SetIndexDrawBegin(1,DrawStart);
SetIndexDrawBegin(2,DrawStart);
if (PriceSmoothing>==1,0)
{
PriceSmoothing=0,9999;
Alerta ("Fish61: PriceSmothing factor tem que ser menor 1!");
}
se (PriceSmoothing<0)
{
PriceSmoothing=0;
Alerta ("Fish61: PriceSmothing factor não deve ser negativo!");
}
se (IndexSmoothing>==1.0)
{
IndexSmoothing=0,9999;
Alerta("Fish61: PriceSmothing factor tem que ser menor 1!");
}
se (IndexSmoothing<0)
{
IndexSmoothing=0;
Alerta("Fish61: PriceSmothing factor musttn''t be negative!");
}
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| Função de desinicialização de indicador personalizada |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| Função de iteração de indicador personalizada |
//+------------------------------------------------------------------+
int start()
{
se (Bars<DrawStart)
{
Alerta("Fish84: Barras carregadas não suficientes para calcular FisherIndicator com RangePeriods=",RangePeriods);
retorno(-1);
}
//----
int counted_bars=IndicatorCounted();
if (counted_bars<0) return(-1);
if (counted_bars>0) counted_bars--;
//----
int Posição=barras_contadas; // Posição = BarPosição calculada da direita para a esquerda
int LeftNum1=Bars-Position; // quando mais barras são carregadas a Posição de uma barra muda, mas não seu LeftNum
if (LeftNum1<RangePeriods+1)Position=Bars-RangePeriods-1;
while(Posição>=0)
{
CalculateCurrentBar(Posição);
Posição..;
}
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| Função de cálculo de barra única |
//+------------------------------------------------------------------+
int CalculateCurrentBar(int pos)
{
dobro LowestLow, HighestHigh, GreatestRange, MidPrice;
duplo PriceLocation, SmoothedLocation, FishIndex, SmoothedFish;
//----
MenorBaixo = Menor[Menor[NULL,0,MODE_LOW,RangePeriods,pos)];
Mais altoAlto = Alto;
se (MáximoAltoAltoBaixo<0,1*Ponto)MáximoAlto= MínimoBaixo+0,1*Ponto;
GreatestRange=AltoAltoAlto-AltoBaixo;
MidPrice = (Alto[pos]+Baixo[pos])/2;
// PreçoLocalização na faixa atual
se (GreatestRange!=0)
{
PriceLocation=(MidPrice-LowestLow)/GreatestRange;
PriceLocation= 2.0*PriceLocation - 1.0; // -> -1 < PriceLocation < +1
}
// Alisamento de PreçoLocalização
ExtMapBuffer4[pos]=PriceSmoothing*ExtMapBuffer4[pos+1]+(1,0-PriceSmoothing)*PriceLocation;
SmoothedLocation=ExtMapBuffer4[pos]=Localização suavizante;
if (SmoothedLocation> 0,99) SmoothedLocation= 0,99; // verhindert, dass MathLog unendlich wird
if (SmoothedLocation<-0.99) SmoothedLocation=-0.99; // verhindert, dass MathLog minuns unendlich wird
// FisherIndex
if(1-SmoothedLocation!=0) FishIndex=MathLog((1+SmoothedLocation)/(1-SmoothedLocation)));
else Alert("Fisher129: Unerlaubter Zustand bei Bar Nummer ",Bars-pos);
// Suavização do FisherIndex
ExtMapBuffer1[pos]=IndexSmoothing*ExtMapBuffer1[pos+1]+(1.0-IndexSmoothing)*FishIndex;
if (Bars-pos<DrawStart)ExtMapBuffer1[pos]=0;
SmoothedFish=ExtMapBuffer1[pos];
if (SmoothedFish>0) // tendência para cima
{
ExtMapBuffer2[pos]=SmoothedFish;
ExtMapBuffer3[pos]=0;
}
outra // outra tendência de queda
{
ExtMapBuffer2[pos]=0;
ExtMapBuffer3[pos]=SmoothedFish;
}
//----
retorno(0);
}
//+------------------------------------------------------------------+
obrigado
Pessoal, vamos levar a sério
Estou falando sério...
Sou um novato e não um programador, talvez o caminho do scrat não seja perfeito, mas talvez eu possa usá-lo. Vou tentar. Se for útil, eu vou usá-lo. Se não for, procurarei novamente outro ótimo caminho ou outro indicador.
Eu já perguntei a Codersguru sobre o mesmo assunto.
Minha pergunta para ele foi se eu uso 1 EMA em 30M TF, então em 1M TF deve ser de 30 EMA.
E ele disse que não era assim. Mas eu não fiquei satisfeito, talvez haja outra maneira, então eu o encontro aqui. Mas se não for útil, para mim está tudo bem... . Pelo menos eu sei que o resultado é.
BTW, obrigado pelo último mladen RSIOMA, eu gosto muito, e graças a fxbs e Kalenzo também, por este grande indicador.
Cumprimentos,
IIN
O problema é este:
Essa idéia com MA's é provavelmente a idéia mais antiga em análise técnica
Eu concordo que lugares como o TSD são lugares para compartilhar idéias e conhecimentos.
Mas, por favor, ninguém deve tentar fazer isso dessa maneira:
Vamos lá, que diabos estamos tentando fazer aqui, afinal?
Espero que agora eu tenha sido claro.
cumprimentos
mladen
Estou falando sério...
Sou um novato e não um programador, talvez o caminho do scrat não seja perfeito, mas talvez eu possa usá-lo. Vou tentar. Se for útil, eu vou usá-lo. Se não for, procurarei novamente outro ótimo caminho ou outro indicador.
Eu já perguntei a Codersguru sobre o mesmo assunto.
Minha pergunta para ele foi se eu uso 1 EMA em 30M TF, então em 1M TF deve ser de 30 EMA.
E ele disse que não era assim. Mas eu não fiquei satisfeito, talvez haja outra maneira, então eu o encontro aqui. Mas se não for útil, para mim está tudo bem... . Pelo menos eu sei que o resultado é.
BTW, obrigado pelo último mladen RSIOMA, eu gosto muito, e graças a fxbs e Kalenzo também, por este grande indicador.
Cumprimentos,
IINTudo bem, eu sou oficialmente burro e acabei de ofender a todos neste tópico. Será que desta vez eu acertei?
minhas desculpas.
O problema é este:
Essa idéia com MA's é provavelmente a idéia mais antiga em análise técnica
Eu concordo que lugares como o TSD são lugares para compartilhar idéias e conhecimentos.
Mas, por favor, ninguém deve tentar fazer isso dessa maneira:
Vamos lá, que diabos estamos tentando fazer aqui, afinal?
Espero que agora eu tenha sido claro.
cumprimentos
mladenAlguém sabe onde estes MTF indis estão?
Procurei por todas as versões de MTF destes. Alguém sabe ou já as viu?
Obrigado.