// ----------------------------------------------- ------------------- /| EMA-Crossover_Signal. Mq4 |/| Copyright © 2005, Jason Robinson (jnrtrading) |/|
http://www.jnrtading.co.uk|/pag----------------------------------------------- ------------------- * --------------------------- --------------------------------------- | te permite ingresar dos períodos ema y luego te mostrará | | Qué punto cruzaron. Es más útil en el más breve | | luces que se oscurecen por los barrotescandelabros y cuando | | el nivel de zoom está afuera. También le permite sacar el emas | | de la tabla. (emas se establecen inicialmente en 5 y 6) | ------------------------------------------------- ----------------- *#property copyright Copyright © 2005, Jason Robinson (jnrtrading) #property hyperlink http://www.jnrtrading.co.uk #property indior_chart_window # propiedad indior_buffers 2 #property indior_color1 SeaGreen #property indior_color2 Red double CrossUp []; double CrossDown []; extern int FasterEMA = 5; extern int SlowerEMA = 13; extern bool SoundON = falso; alerta doble; doble control = 2147483647;/ ----------------------------------------------- ------------------- /| Función de inicialización del indicador personalizado |/ ----------------------------------------------- ------------------- int init ()/- indicadores SetIndexStyle (0, DRAW_ARROW, VACÍO, 3); SetIndexArrow (0, 233); SetIndexBuffer (0, CrossUp); SetIndexStyle (1, DRAW_ARROW, VACÍO, 3); SetIndexArrow (1, 234); SetIndexBuffer (1, CrossDown);/- return (0);/ ----------------------------------------------- ------------------- /| Función de desinitialización del indicador personalizado |/ ----------------------------------------------- ------------------- int deinit ()/-/- return (0);/ ----------------------------------------------- ------------------- /| Función de iteración del indicador personalizado |/ ----------------------------------------------- ------------------- int start () int límite, I, contador; doble más rápido, ahora, lento, ahora, más rápido, anterior, lento, anterior, más rápido, después, más lento, después; doble Rango, Promedio de Rango; int counted_bars = IndiorCounted ();/- verifica si hay errores posibles (counted_barslt; 0) return (-1);/- la última barra contada se contará si (counted_barsgt; 0) counted_bars--; limit = Bars-counted_bars; para (I = 0; I lt; = limit; I ) counter = I; Rango = 0; AvgRange = 0; for (counter = I; counterlt; = I 9; counter ) AvgRange = AvgRange MathAbs (High [contador] -Low [contador]); Rango = Promedio de Rango10; fasterEMAnow = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, I); fasterEMAprevious = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, I 1); fasterEMAafter = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); slowerEMAnow = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, I); slowerEMAprevious = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, I 1); slowerEMAafter = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); if ((fasterLINEnowgt; slowerEMAnow) (fasterEMAprevious lt; slowerEMAprevious) (fasterEMAafter gt; slowerEMAafter)) CrossUp [I] = Low [I] - Range * 0.5; else CrossUp [I] = 0; else if ((fasterEMAnow lt; slowerEMAnow) (fasterEMApreviousgt; slowerEMAprevious) (fasterEMAafter lt; slowerEMAafter)) CrossDown [I] = High [I] Range * 0.5; else CrossDown [I] = 0; if (SoundON == verdadero I == 1 CrossUp [I] gt; CrossDown [I] alertTag! = Timing [0]) Alerta (EMA Cross Trend bajando, Symbol (),, Stage ()); alertTag = Temporización [0]; if (SoundON == verdadero I == 1 CrossUp [I] lt; CrossDown [I] alertTag! = Timing [0]) Alerta (EMA Cross Trend encendido, Symbol (),, Stage ()); alertTag = Temporización [0]; return (0);