To, z czym walczę teraz, to by pokazywać na indyku wielkość ciała świec, z wyższego interwału. Wszystko działa jak należy zaraz po inicjalizacji wskaźnika, na świeczkach "historycznych". Jednak każda nowa świeczka jest....szalona.
Kod wygląda tak:
Kod: Zaznacz cały
int start() {
datetime time.array[];
ArrayCopySeries(time.array,MODE_TIME,Symbol(),candle.timeframe);
int i, y;
for ( i = Bars + candle.timeframe/Period() - IndicatorCounted(), y = iBars(NULL, candle.timeframe) + candle.timeframe/Period() - IndicatorCounted(); i >= 0; i-- ) {
if ( Time[i+candle.timeframe/Period()] >= time.array[y] ) {
y--;
z = 0;
} else {
z++;
}
candle.body[i] = 0;
average.body[i] = 0;
if ( mode.total == true ) {
candle.body[i] = MathAbs(iOpen( NULL, candle.timeframe, y )-iClose( NULL, candle.timeframe, y )) / global.multiplier / Point;
} else {
if ( z == 0 ) {
candle.body[i] = MathAbs( Open[i] - Close[i] ) / global.multiplier / Point;
} else if ( z > 0 ) {
candle.body[i] = MathAbs( iOpen(NULL, candle.timeframe, y) - Close[i] ) / global.multiplier / Point;
}
}
}
return ( 0 );
}
Jakby ktoś mógł za jednym zamachem ogarnąć i to, byłbym dłużnikiem.
Indykator dostępny również w załączniku.
EDIT:
Jeśli chodzi o "mode.total"....
indyk pokazuje, a przynajmniej w założeniu powinien pokazywać wielkość świecy z wyższego TF na dwa sposoby. Całościowo....jak i sumę świec z aktualnego TF. Tzn, że gdy na h1 liczymy d1, to histogram pokazuje stan świecy d1 z każdej świecy h1. Ciężko to wytłumaczyć, łatwiej zobaczyć. To działa, ale może wywoływać chaos i niezrozumienie.