Funkcja double iEnvelopesOnArray() zwraca wartość wskaźnika Envelopes, obliczonego na podstawie danych z własnej tablicy. Więcej informacji można znaleźć w specyfikacji MQL4.
Skrypt do wyświetlenia wartości wskaźnika iEnvelopes() obliczonego za pomocą iEnvelopesOnArray() na danych z tablicy. Najpierw trzeba przygotować tablicę wartości, na podstawie której będzie liczony Envelopes. W poniższym przykładzie została utworzona dynamiczna tablica array[], za pomocą ArrayResize() ustawiono jej rozmiar równy ilości świec na wykresie Bars , a za pomocą ArraySetAsSeries() zmieniono kierunek indeksacji elementów tablicy. Następnie, w pętli for kopiuje się ceny close dla bieżącego instrumentu finansowego _Symbol i timeframe’u PERIOD_CURRENT . Dalej funkcja iEnvelopesOnArray() oblicza wartość Envelopes.
#property strict void OnStart() { //--- double array[]; // inicjalizacja dynamicznej tablicy ArrayResize(array, Bars); // ustawienie rozmiaru tablicy równej ilości świec na wykresie ArraySetAsSeries(array, true); // odwrócenie indeksacji elementów tablicy //--- for(int i=0; i<Bars; i++) array[i]=iClose(_Symbol, PERIOD_CURRENT, i); // zapis cen close do tablicy //--- int total = 0; /* ilość elementów tablicy do obliczenia 0 - wszystkie elementy tablicy */ int maPeriod = 14; // okres uśrednienia ENUM_MA_METHOD maMethod = MODE_SMA; // średnia krocząca int maShift = 0; // przesunięcie wskaźnika double deviation = 0.1; // odchylenie procentowe int lineMode = MODE_UPPER; // identyfikator linii wskaźnika int indexBar = 2; // indeks świecy //--- double result=iEnvelopesOnArray(array, total, maPeriod, maMethod, maShift, deviation, lineMode, indexBar); //--- Print("Wartość iEnvelopesOnArray = ",result); }
Rys. 1. Przykład stosowania funkcji iEnvelopesOnArray().