0

I'm using ShinobiChart to draw candlestick stock chart. My data is discontinuous, so that there will gaps on chart.

Anybody knows how can I make it show continuously? Cannot find it in documentation...enter image description here

ambientlight
  • 7,212
  • 3
  • 49
  • 61

1 Answers1

0

Ok, I have found it. For your reference: Instead of adding SChartDateTimeAxis you instead should add SChartDiscontiniousDateTimeAxis.

Then for any gap in dataSeries you have to explicitly exclude time period with addExcludedTimePeriod:. (You can do it my checking whether next day is the same a next date in the dataSeries).

SChartDiscontinuousDateTimeAxis *xAxis = [[SChartDiscontinuousDateTimeAxis alloc] init];
for (NSUInteger iter = 0; iter < self.quotes.count - 1; iter++) {

    NSDate* thisDate = ((TBHistoricQuote*)self.quotes[iter]).date;
    NSDate* nextDate = [[NSCalendar currentCalendar] dateByAddingUnit:NSCalendarUnitDay
                                                                   value:1
                                                                  toDate:thisDate
                                                                 options:0];
    NSDate* nextSeriesElementDate = ((TBHistoricQuote*)self.quotes[iter+1]).date;


    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];


    if ([nextDate compare:nextSeriesElementDate] == NSOrderedAscending ) {

        NSDateComponents *components = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay
                                                   fromDate:nextDate
                                                     toDate:nextSeriesElementDate
                                                    options:0];

        [xAxis addExcludedTimePeriod:[[SChartTimePeriod alloc] initWithStart:nextDate andLength:[[SChartDateFrequency alloc] initWithDay:components.day]]];
    }

}

self.chart.xAxis = xAxis;
ambientlight
  • 7,212
  • 3
  • 49
  • 61