- czy jest jakis sposob, by zapisac do zmiennej wartosc zamkniecia swiecy o okreslonej godzinie i by ta zmienna sie aktualizowala co dzien ?
- znalazlem iOpen(), ale jednak to inaczej dziala
Z gory dziekuje
Pozdrawiam
wartosc zamkniecia swiecy o okreslonej godzinie - jak ?
Działa tak w połowie. Normalnie działa, a w testerze zamiast brać wartość o podanej godzinie każdego dnia, to pobiera sobie za każdym razem jak powstanie świeca nową wartość, co dziwne - wartość świecy którą aktualnie ma otwartą.
Wyświetla też mi się coś takiego przy uruchomieniu Testera, ale po chwili dziala, tyle ze wlasnie ta wspomniana wczesniej wartosc lini jest nie taka:
I jeszcze jedno pytanie, czemu jak uruchomię na wykresie z innym okresem, to nie pobiera wartości z godziny 8 na H1 ? jak powroce znowu na H1, to jest poprzednia błędna wartość (dopiero po ręcznym usunieciu pojawia sie ta wlasciwa)
Z gory dzieki
Kod: Zaznacz cały
#property copyright "Ja"
#property link "www.abc.pl"
int init()
{
return(0);
}
int deinit()
{
return(0);
}
void obliczLinie()
{
double linia = Open[iBarShift(Symbol(), PERIOD_H1, D'08:00')]; // jest warning: "date iteral string is incomplete", ale Hour() == 8 cos nie chce dzialac
ObjectsDeleteAll(); // jak tego nie zrobie, to nie chce mi sie odswiezac rysowanie lini
ObjectCreate("Linia", OBJ_HLINE, 0, 0, linia);
}
int start()
{
obliczLinie();
return(0);
}
Kod: Zaznacz cały
2011.05.06 16:42:24 TestGenerator: unmatched data error (high value 1.4865 at 2011.04.28 06:00 is not reached from the least timeframe, high price 1.4845 mismatches)
Z gory dzieki
iClose
normalnie to bedzie prawdopodobnie tak:
w testerze nie mozna uzywac TimeCurrent() bo to czas ostatniego ticku serwera
w przypadku testera musisz uwzglednic czas obecnie czytanej swieczki moze byc tak ale to musisz sprawdzic
przyklad ale nie mam pewnosci, jakis czas temu potrzebowalem takich danych
Kod: Zaznacz cały
datetime YourCurrentDayHour = StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) + " 08:00");
int YourCurrentDayHourBarShift = iBarShift(Symbol(),PERIOD_H1,YourCurrentDayHour,False);
double close = iClose(Symbol(),PERIOD_H1,YourCurrentDayHourBarShift);
Print (close);
w przypadku testera musisz uwzglednic czas obecnie czytanej swieczki moze byc tak ale to musisz sprawdzic
przyklad ale nie mam pewnosci, jakis czas temu potrzebowalem takich danych
Kod: Zaznacz cały
for(int c=0; c<Bars-1; c++) {
datetime YourCurrentDayHour = StrToTime(TimeToStr(Time[c],TIME_DATE) + " 08:00");
int YourCurrentDayHourBarShift = iBarShift(Symbol(),PERIOD_H1,YourCurrentDayHour,False);
double close = iClose(Symbol(),PERIOD_H1,YourCurrentDayHourBarShift);
Print (close);
}
oszczedzajmy cykle procesora