Início Negociação Sistemática Postagem

Criando um EA com o Indicador Center of Gravity no MetaTrader 4

Anexo
8604.zip (2.25 KB, Baixar 3 vezes)

Olá, traders! Hoje vou compartilhar uma ideia que venho desenvolvendo há um tempo e que pode ser muito útil para vocês.

Estava em busca de um indicador que se encaixasse na estratégia de "scalping conservador" para o MetaTrader 4, mas não consegui encontrar um que se adequasse às minhas necessidades. Até que descobri o indicador Center of Gravity.mq4.

O problema é que quando tento acoplar esse indicador a um EA, ele simplesmente não abre as operações, nem mesmo no modo de demonstração ou nos testes. Alguém pode me ajudar a entender o que pode estar acontecendo?

A ideia por trás do EA: o indicador gera cinco linhas paralelas à tendência. As operações podem ser abertas nos pontos de interseção das linhas extremas, preferencialmente utilizando o trailing stop.

A minha proposta é que uma média móvel com período de 1 (SMA baseada nos preços LOW) cruzando a linha inferior do indicador de baixo para cima seja o sinal para abrir uma operação de compra. Para uma operação de venda, a lógica se inverte: a média móvel 1 (SMA, HIGH) deve cruzar a linha superior de cima para baixo. Essa ideia pode ser desenvolvida de várias maneiras, mas primeiro precisamos resolver o problema atual.

Indicador: Center of Gravity.mq4

Expert Advisor: C_S_intraday.mq4 (em uma forma simples, sem controle de depósito, timeframes, trailing, etc.)


Bitmap

//+---------------------------------------------------------------------+
//|                              C_S_intraday.mq4                       |
//|                                                                     |
//+---------------------------------------------------------------------+
//
//
//
extern double    lots=0.1;
//extern int       StopLoss=30 ;
//extern int       TrailingStop=15;
//extern int       Slippage=2;

extern int BB = 125;
extern int MM = 2;
extern int II = 0;
extern double KK = 2.0;
extern int NN = 1102;

double  maH0,maH1,maL0,maL1;
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| função de início do expert                                            |
//+------------------------------------------------------------------+
int start()
  {
maH0=iMA(NULL,0,1,0,MODE_LWMA,PRICE_HIGH,0); //média móvel baseada no alto
maH1=iMA(NULL,0,1,0,MODE_LWMA,PRICE_HIGH,1); //média móvel baseada no alto
maL0=iMA(NULL,0,1,0,MODE_LWMA,PRICE_LOW,0);  //média móvel baseada na baixa
maL1=iMA(NULL,0,1,0,MODE_LWMA,PRICE_LOW,1);  //média móvel baseada na baixa

   int      B= BB;         // 
   int      M= MM;         // 
   int      I= II;         // 
   double   K= KK;         // 
   int      N= NN;         // 
   
   double cgh = iCustom(NULL,0,"Center of Gravity",B,M,I,K,N,3,0);
   double cgl = iCustom(NULL,0,"Center of Gravity",B,M,I,K,N,4,0);
   
if (cgl<maL0)  //se a média móvel (baixa) cruza a linha mais baixa do indicador de baixo para cima
   {
   OrderSend(NULL,OP_BUY,lots,Ask,2,Ask-10*Point,Ask+20*Point,"create1",123,0,Lime);
   }
/*
if (cgh>maH0)
   {
   OrderSend(NULL,OP_SELL,lots,Bid,2,Bid+10*Point,Bid-20*Point,"create1",123,0,Red);
   }  
*/   
//----
   return(0);
  }
//+------------------------------------------------------------------+

Publicações relacionadas

Comentário (0)