Witam,
mam problem z wywołaniem danych z funkcji. Powiedzmy że chciałem za pomocą referencji do funkcji wywołać średnią EMA i LWMA dla eurgbp przy pomocy notowań eurusd i gbpusd. Bez problemu dzieje się tak w przypadku EMA, natomiast w przypadku LWMA wynik jest = 0 i błędy 0. Jeśli chcę to zrobić za pomocą jednej funkcji dzieje się tak samo. Pomijam ArrayAsSeries().
Co może być przyczyną takiego zachowania? Jakieś sugestie?
int Start()
{
double ema;
double lwma;
divide(ema);
divide2(lwma);
Alert("ema wywołanie==",ema);
Alert("lwma wywołanie==",lwma);
return (0);
}
void divide(double &ema)
{
double gb[100];
double eu[100];
double s[100];
for (int i=0;i<100;i++)
{
gb=iClose("GBPUSD",PERIOD_M5,i);
eu=iClose("EURUSD",PERIOD_M5,i);
s=eu/gb;
ema=iMAOnArray(s,100,26,0,MODE_EMA,i);
}
Alert("ema==",ema);
}
void divide2(double &lwma)
{
double gb[100];
double eu[100];
double s[100];
for (int i=0;i<100;i++)
{
gb=iClose("GBPUSD",PERIOD_M5,i);
eu=iClose("EURUSD",PERIOD_M5,i);
s=eu/gb;
lwma=iMAOnArray(s,100,65,0,MODE_LWMA,i);
}
Alert("lwma==",lwma);
}
Problem z wywołaniem danych z funkcji
- kris007
- Posty: 27
- Rejestracja: wtorek 18 wrz 2012, 11:29
- Lat na Forex: 9
- Rodzaj rachunku: Rachunek rzeczywisty
Re: Problem z wywołaniem danych z funkcji
Cześć, nie wiem czy Ci to w czymś pomoże ale jest jakiś problem z parametrem shift tej lwma.
Tak wpisany na sztywno działa:
Tak wpisany na sztywno działa:
Kod: Zaznacz cały
lwma=iMAOnArray(s,100,65,0,MODE_LWMA,1); //lub tak: ,MODE_LWMA,0)
Re: Problem z wywołaniem danych z funkcji
Dzięki, już chyba wiem co było powodem.
Zasugerowałem się tłumaczeniem, w którym jest Shift jako "i" a nie liczba przesunięcia w stosunku do obecnej świecy
Zasugerowałem się tłumaczeniem, w którym jest Shift jako "i" a nie liczba przesunięcia w stosunku do obecnej świecy
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 21 gości