MACD
MACD en ProBuilder devuelve el histograma del MACD, la diferencia entre la línea MACD y su línea de señal, con los ajustes estándar 12/26/9. Sintaxis y ejemplos.
Sintaxis
MACD[S, L, Si](price)Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
S | entero | 12 | Periodo de la media móvil exponencial corta. |
L | entero | 26 | Periodo de la media móvil exponencial larga. Debe ser mayor que S. |
Si | entero | 9 | Periodo de la media móvil exponencial aplicada al MACD para formar la línea de señal. |
price | fuente de precio | close | La serie de precios sobre la que se ejecuta el cálculo. Habitualmente close, también acepta open, high, low, typicalprice, o una variable personalizada. |
Fórmula
MACD line = EMA[S](price) - EMA[L](price)
Signal = EMA[Si](MACD line)
MACD[S, L, Si](price) = MACD line - Signal // the histogramEl resultado no está acotado y se expresa en las unidades de precio del instrumento. Cuando la línea MACD se sitúa por encima de su línea de señal el valor es positivo; cuando se sitúa por debajo, el valor es negativo.
Cómo funciona
En cada bar, ProBuilder calcula la línea MACD, la EMA corta de price menos la EMA larga, y luego suaviza esa línea con una Si-periodos EMA para formar la línea de señal. La MACD instrucción devuelve la diferencia entre ambas, la serie que los programas de gráficos dibujan como histograma. Un cruce por cero marca por tanto un cruce de la línea de señal, no un cruce de EMA.
Las dos series componentes están disponibles como instrucciones separadas: MACDLine devuelve la línea bruta y MACDsignal devuelve la línea de señal. MACDLine - MACDsignal reproduce el valor devuelto por MACD.
El MACD fue diseñado por Gerald Appel como un indicador de momentum seguidor de tendencia. Combina dos preguntas en una sola serie: en qué lado de la tendencia está la media corta, y con qué rapidez cambia la diferencia entre las medias.
Ejemplos
Ejemplo 1, MACD subiendo mientras el precio retrocede (Indicador)
// MACD with the standard 12, 26, 9 settings on closing prices
i1 = MACD[12,26,9](close)
FOR i = 20 DOWNTO 0 DO
IF(close[i] < close[i+1] AND i1 > i1[1]) THEN
result = 100
ELSE
result = 0
ENDIF
NEXT
RETURN resultConservado de la página de origen. La condición combina un cierre descendente con un MACD ascendente. Ten en cuenta que cada pasada del bucle sobrescribe result, por lo que el valor devuelto refleja solo la última iteración (i = 0), el bar actual.
Ejemplo 2, Estrategia de cruce de la línea de señal (ProOrder)
// Go long when the histogram turns positive, exit when it turns negative
DEFPARAM CumulateOrders = false
m = MACD[12,26,9](close)
IF NOT LongOnMarket AND m CROSSES OVER 0 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF LongOnMarket AND m CROSSES UNDER 0 THEN
SELL AT MARKET
ENDIFPorque MACD devuelve el histograma, un cruce de cero significa que la línea MACD ha cruzado su línea de señal, el disparador de entrada clásico del MACD expresado en una sola condición.
Ejemplo 3, Momentum mejorando por debajo de cero (ProScreener)
// Instruments where a negative histogram has risen two bars in a row
hist = MACD[12,26,9](close)
improving = hist < 0 AND hist > hist[1] AND hist[1] > hist[2]
SCREENER[improving](hist AS "MACD hist")Devuelve los instrumentos que siguen por debajo de la línea de señal pero con una diferencia que se reduce, un escaneo de mejora del momentum que se activa antes del cruce real.
Interpretación
| Señal | Lectura |
|---|---|
| Histograma por encima de cero | Línea MACD por encima de su línea de señal, momentum al alza. |
| Histograma por debajo de cero | Línea MACD por debajo de su línea de señal, momentum a la baja. |
| El histograma cruza por encima de cero | Cruce alcista de la línea de señal, una condición de disparo habitual. |
| Histograma reduciéndose hacia cero | Momentum debilitándose antes de un posible cruce. |
Para cruces de la línea cero de la propia línea MACD, la lectura del cruce de EMA, comprueba MACDLine contra cero en su lugar.
Divergencias. Una divergencia alcista se produce cuando el precio marca un mínimo más bajo mientras el MACD forma un mínimo más alto. Una divergencia bajista se produce cuando el precio marca un máximo más alto mientras el MACD forma un máximo más bajo. Ambas se leen como señales tempranas de una posible reversión, y el DivergenceMACD instrucción los detecta directamente.
Errores y trampas habituales
- Histograma, no línea.
MACDdevuelve el histograma. El código portado desde plataformas dondeMACD()devuelve la línea fallará. UsaMACDLinepara la línea yMACDsignalpara la señal. - Los tres periodos son obligatorios.
MACD[12,26](close)genera un error de sintaxis. Los periodos van entre corchetes y la fuente de precio entre paréntesis:MACD[12,26,9](close). - Sobrescritura en el bucle. En el patrón de origen del Ejemplo 1, el bucle FOR asigna
resulten cada iteración, por lo que las barras anteriores se descartan. Para contar coincidencias a lo largo de 21 barras, acumula en un contador en lugar de sobrescribir. - No comparable entre instrumentos. El MACD no está acotado y escala con el precio. Una lectura de 2.5 en un índice y 0.002 en un par de forex no tienen ningún significado relativo. Los screeners que ordenan por MACD en bruto mezclan escalas.
- Retardo en mercados lentos. Dos EMA anidadas hacen del MACD una medida retardada. Los cruces llegan bastante después del giro con ajustes más altos, y acortar los periodos cambia retardo por señales falsas.
Instrucciones relacionadas
MACDLine, la línea MACD como serie independiente.MACDsignal, la línea de señal, una EMA del MACD.DivergenceMACD, detección de divergencias integrada.ExponentialAverage, la EMA a partir de la cual se construye el MACD.PriceOscillator, variante basada en porcentaje de la misma idea.Momentum, variación bruta de precio en N bars.TRIX, tasa de cambio de una EMA con triple suavizado.Average, media móvil simple para suavizar la salida del MACD.