Chciałbym przeszukać/zindeksować obiekty na wykresie, aby użyć ich w pętli for.
Problemem jest nazwa obiektu. Jest funkcja ObjectName(i), gdzie w nawiasie będzie index kolejnego obiektu. Jednak można jej użyć tylko na bieżącym wykresie. Zrobiłem to tak :
Kod: Zaznacz cały
for(i=0;i<=ObjectsTotal();i++){
string name=ObjectName(i);
RefreshRates();
cena[i]=ObjectGet(name,OBJPROP_PRICE1);
}
W tablicy cena[] wskazywane są ceny wszystkich obiektów na bieżącym wykresie.
I wszystko działa.
Ale ja chciałbym przeszukać, zindeksować i odczytać ceny wszystkich obiektów na innym wykresie.
Zrobiłem to tak :
Kod: Zaznacz cały
for(i=0;i<=ObjectsTotal(chart);i++){
string name=ObjectGetString(chart,ObjectName(i),OBJPROP_NAME);
ChartRedraw(chart);
cena[i]=ObjectGetDouble(chart,name,OBJPROP_PRICE1);
}
Wszystko działa jeśli w linijce
Kod: Zaznacz cały
cena[i]=ObjectGetDouble(chart,name,OBJPROP_PRICE1);
Testowałem i kombinowałem na różne sposoby i wychodzi na to, że nie działa indeksowanie nazw obiektów w linijce
Kod: Zaznacz cały
string name=ObjectGetString(chart,ObjectName(i),OBJPROP_NAME);