// ----------------------------------------------- ------------------- /| EMA-Crossover_Signal.mq4 |/| Prawa autorskie © 2005, Jason Robinson (jnrtrading) |/|
http://www.jnrtading.co.uk|/ ----------------------------------------------- ------------------- * --------------------------- --------------------------------------- | Pozwala wprowadzić dwa okresy ema, a następnie wyświetli w | | W którym punkcie przeszli. Jest bardziej użyteczny w krótszym | | okresy, które zostają zasłonięte przez paskiświeczniki i kiedy | | poziom zoomu jest wyłączony. Pozwala także na usunięcie emas | | z wykresu. (emas początkowo ustawione na 5 i 6) | ------------------------------------------------- ----------------- *#property copyright Copyright © 2005, Jason Robinson (jnrtrading) #property link http://www.jnrtrading.co.uk #property indior_chart_window # property 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 = false; podwójny alertTag; podwójne sterowanie = 2147483647;/ ----------------------------------------------- ------------------- /| Funkcja inicjalizacji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int init () {//---- wskaźniki SetIndexStyle (0, DRAW_ARROW, EMPTY, 3); SetIndexArrow (0, 233); SetIndexBuffer (0, CrossUp); SetIndexStyle (1, DRAW_ARROW, EMPTY, 3); SetIndexArrow (1, 234); SetIndexBuffer (1, CrossDown);/---- return (0); }/ ---------------------------------------------- -------------------- /| Indywidualna funkcja deinicjalizacji wskaźnika |/ ----------------------------------------------- ------------------- int deinit () {//----/---- return (0); }/ ---------------------------------------------- -------------------- /| Funkcja iteracji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int start () {limit int, i, licznik; Podwójnie szybszyEMnowo, wolniej, szybsza, poprzednia, wolniejsza, poprzednia, szybsza, późniejsza, wolniejsza; podwójny zakres, AvgRange; int counted_bars = IndiorCounted ();/---- sprawdź możliwe błędy, jeśli (counted_barslt; 0) return (-1);/---- ostatni zliczony pasek zostanie zliczony, jeśli (counted_barsgt; 0) counted_bars--; limit = Bars-counted_bars; for (i = 0; i lt; = limit; i ) {counter = i; Zakres = 0; AvgRange = 0; dla (counter = i; counterlt; = i 9; counter ) {AvgRange = AvgRange MathAbs (High [counter] -Low [counter]); } Range = AvgRange10; 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 ((szybszy_CZĘŚĆ gt; slowerEMAnow) (szybszyEMAprevious lt; slowerEMAprevious) (szybszyEMAafter gt; slowerEMAafter)) {CrossUp [i] = niski [i] - zakres * 0.5; } else {CrossUp [i] = 0; } else if ((fasterEMAnow lt; slowerEMAnow)(fasterEMAprevious gt; slowerEMAprevious) (fasterEMAafter lt; slowerEMAafter)) {CrossDown [i] = High [i] Range * 0.5; } else {CrossDown [i] = 0; } if (SoundON == true i == 1 CrossUp [i] gt; CrossDown [i] alertTag! = Time [0]) {Alert (EMA Cross Trend idzie w dół, Symbol (),, Okres ()); alertTag = Czas [0]; } if (SoundON == true i == 1 CrossUp [i] lt; CrossDown [i] alertTag! = Time [0]) {Alert (EMA Cross Trend rośnie, Symbol (),, Okres ()); alertTag = Czas [0]; }} return (0); }