# Cruce Banda de Bollinger/ Media movil (Ayuda Codigo)

Hola, digamos que quiero guardar en un parametro X el valor correspondiente al cruce (no el valor del precio en ese momento) de una media movil con las bandas de bollinger.

https://i.ibb.co/JdgJxsX/bollinger.png

```    double LowerBB = iBands(_Symbol,_Period,BollingerPeriod,BollingerDeviation,0,PRICE_CLOSE,MODE_LOWER,0);
double UpperBB = iBands(_Symbol,_Period,BollingerPeriod,BollingerDeviation,0,PRICE_CLOSE,MODE_UPPER,0);

double LastLowerBB = iBands(_Symbol,_Period,BollingerPeriod,BollingerDeviation,0,PRICE_CLOSE,MODE_LOWER,1);
double LastUpperBB = iBands(_Symbol,_Period,BollingerPeriod,BollingerDeviation,0,PRICE_CLOSE,MODE_UPPER,1);

//IF MA  CROSSES LOWER BAND FROM BELOW

if ((LastLowerBB>LastMiddleMovingAverage)&&(LowerBB < MiddleMovingAverage))

LASTMACROSSWITHBOLLINGER=X;

//IF MA CROSSES UPPER BAND FROM ABOVE

if ((LastUpperBB<LastMiddleMovingAverage)&&(UpperBB > MiddleMovingAverage))

LASTMACROSSWITHBOLLINGER=X;```

ffsss:

Hola, digamos que quiero guardar en un parametro X el valor correspondiente al cruce (no el valor del precio en ese momento) de una media movil con las bandas de bollinger.

https://i.ibb.co/JdgJxsX/bollinger.png

Yo lo haria asi

```    double LowerBB = iBands(_Symbol,_Period,BollingerPeriod,BollingerDeviation,0,PRICE_CLOSE,MODE_LOWER,0);
double UpperBB = iBands(_Symbol,_Period,BollingerPeriod,BollingerDeviation,0,PRICE_CLOSE,MODE_UPPER,0);

double LastLowerBB = iBands(_Symbol,_Period,BollingerPeriod,BollingerDeviation,0,PRICE_CLOSE,MODE_LOWER,1);
double LastUpperBB = iBands(_Symbol,_Period,BollingerPeriod,BollingerDeviation,0,PRICE_CLOSE,MODE_UPPER,1);

//IF MA  CROSSES LOWER BAND FROM BELOW

if ((LastLowerBB>LastMiddleMovingAverage)&&(LowerBB < MiddleMovingAverage))

LASTMACROSSWITHBOLLINGER= MathMin(LowerBB,LastLowerBB )+( MathAbs(LowerBB -LastLowerBB )/2);

//IF MA CROSSES UPPER BAND FROM ABOVE

if ((LastUpperBB<LastMiddleMovingAverage)&&(UpperBB > MiddleMovingAverage))

LASTMACROSSWITHBOLLINGER= MathMin(UpperBB ,LastUpperBB)+( MathAbs(UpperBB -LastUpperBB )/2);```
NOTA: no probe el codigo, solo es para que se entienda la idea

Miguel Antonio Rojas Martinez:

Yo lo haria asi

NOTA: no probe el codigo, solo es para que se entienda la idea

Miguel Antonio Rojas Martinez:

Yo lo haria asi

NOTA: no probe el codigo, solo es para que se entienda la idea

Y en este caso el parametro LASTMACROSSWITHBOLLINGER me devolveria el valor (numero) en ese punto? entonces para luego hacer operaciones matematicas con ese numero como debo definir ese parametro anteriormente? con "double LASTMACROSSWITHBOLLINGER;" o de que manera?

Gracias por responder

ffsss:

Y en este caso el parametro LASTMACROSSWITHBOLLINGER me devolveria el valor (numero) en ese punto? entonces para luego hacer operaciones matematicas con ese numero como debo definir ese parametro anteriormente? con "double LASTMACROSSWITHBOLLINGER;" o de que manera?

Gracias por responder

si, debe ser un double
Depende de tu necesidad si lo declaras en la funcion en la que estas trabajando, o en el comienzo del programa, para que puedad acceder a ella desde cualquier otra funcion

espero te ayude

Saludos!!!

Razón de la queja: