Indicador EMA

 

Ola pessoal

Estou dando os 1o.s passos para construir robô

E estou com uma dúvida

Consegui traçar uma ema de 100 no gráfico

Mas.. como faço para saber pelo código se ela esta em tendencia de alta, baixa ou lateralização?

Obrigado


o código

input int bolperiodo=20;//Bollinger peróodo
input double boldesvio=2.5;//Desvio
input int boldeslocar=0;//Deslocar
input int emaperiodo=100;//Ema período

void OnTick()
  {

  // Bollinger - cria array para preços Bollinger
  double MiddleBandArray[];
  double UpperBandArray[];
  double LowerBandArray[];
  double myMovingAverageArray1[];
 
  // Bollinger - sort the prcie array from the current candle downwares
  ArraySetAsSeries(MiddleBandArray,true);
  ArraySetAsSeries(UpperBandArray,true);
  ArraySetAsSeries(LowerBandArray,true);
  
  //Ema - sort the price array from te current candie downwards
  ArraySetAsSeries(myMovingAverageArray1,true);
  
  // Bollinger - define band de bolling
  int BollingerBandsDefinition=iBands(_Symbol,_Period,bolperiodo,boldeslocar,boldesvio,PRICE_CLOSE);
  
  // EMA - define 
  int movingAverageDefinitio01=iMA (_Symbol,_Period,emaperiodo,0,MODE_EMA,PRICE_CLOSE);
    
  // Bollinger - Copy price info the array
  CopyBuffer(BollingerBandsDefinition,0,0,3,MiddleBandArray);
  CopyBuffer(BollingerBandsDefinition,1,0,3,UpperBandArray);
  CopyBuffer(BollingerBandsDefinition,2,0,3,LowerBandArray);
  
  // Ema - Define m11, one line, current cand, 3 candles, store vault
  CopyBuffer(movingAverageDefinitio01,0,0,3,myMovingAverageArray1);
  // Bollinger - Calculate EA for the current candle
  double myMiddleBandValue=MiddleBandArray[0];
  double myUpperBandValue=UpperBandArray[0];
  double myLowerBandValue=LowerBandArray[0];
  
  }
 
mieciow:

Ola pessoal

Estou dando os 1o.s passos para construir robô

E estou com uma dúvida

Consegui traçar uma ema de 100 no gráfico

Mas.. como faço para saber pelo código se ela esta em tendencia de alta, baixa ou lateralização?

Obrigado


o código

@mieciow Essa é a pergunta de 1 milhão de dólares!   :D

Sugiro que você primeiro crie uma função do tipo isNewBar() - acho que tem no CodeBase já pronto - assim vopcê não chama o CopyBuffer a cada tick, seu EA está consumindo muitos recursos computacionais desnecessariamente, onde na verdade, você só precisa saber de novos buffers de sua média e BBs somente a cada nova Barra, certo?


Feito isso, você pode comparar  (usando Pseudo-Linguagem) :

Media[0]>Media[1] = Tendencia de Alta.

Media[0]<media[1] = Tendencia de Baixa.

Media[0]=media[1] = Consolidacao

O detalhe é que essas comparações são muito falhas... você pode pegar por exemplo 3, 4 ,5 barras pra ter mais certeza:

Media[0]>Media[1] E Media[1]>Media[2] E Media[2]>Media[3]...  Tudo depende do ativo e da tendencia que você quer medir... Ex: em uma tendencia de Alta, existem micro-movimentos de baixa, etc...

Teste também com a media de 200 SMA, é a Média usada pelo Mercado...

A Consolidação é a mais problemática, pois basta uma pequena inflexão da média para M[0] ser maior/menor que M[1], então você pode trabalhar por %, por exemplo, se M[1]/M[0]*100 <= 1% (chute), teoricamente no seu ativo, dada a volatilidade dele nesse período, seria uma consolidação... Você tem que conhecer/estudar o ativo.

E por aí vai...

Boa sorte!

Abração~!

;)

 

Esqueci de comentar, nunca inicialize desnecessariamente variáveis permamentes dentro do OnTick(). Ponha os vetores dos CopyBuffers em outro local (GLOBAL) por exemplo...

;)

 

Se você se vira bem com o inglês, recomendo fortemente o fantástico livro "Expert Advisor Programming for MetaTrader 5: Creating automated trading systems in the MQL5 language".


;)

 
Minions Labs:

Se você se vira bem com o inglês, recomendo fortemente o fantástico livro "Expert Advisor Programming for MetaTrader 5: Creating automated trading systems in the MQL5 language".


;)

Recebi meu exemplar hoje, apos sua indicação anterior!

[ ]'s

 
Joscelino Celso de Oliveira:

Recebi meu exemplar hoje, apos sua indicação anterior!

[ ]'s

Espero que você curta bastante...

A maioria das pessoas focam na estratégia...

O segredo está em gerenciar de maneira ímpar e limpa, um trade, principalmente se ele pode sofrer de Spread na Entrada e na Saída...

;)

 
Boa noite , Gostaria de saber alguém que possa ajudar com informações sobre Robô de cruzamento de medias moveis ,e fornece-lo ? 
 
gu-hmf #:
Boa noite , Gostaria de saber alguém que possa ajudar com informações sobre Robô de cruzamento de medias moveis ,e fornece-lo ? 

Olá,

você pode comprar no MERCADO, contratar um programador para fazer para você no FREELANCE a terceira opção é para programadores, procurar no CODEBASE...

Razão: