バージョン

蓄積/分配インジケーター

トピックの概要

目的

このトピックでは、 IGChartView™ コントロールの蓄積/分配インジケーターの概要を提供し、チャート ビューに追加するコード例を提供します。

はじめに

蓄積/分配インジケーター概要

蓄積/分配インジケーターは、一般的によく使用される出来高に関連するインジケーターです。投資家の売買で差異を確認することによって、株、セキュリティ、またはインデックスの需要と供給を時間に基づいて評価します。

IGChartView   Accumulation Distribution Indicator 1.png

データ要件

IGChartView コントロールは、カスタム データ モデルにチャートを簡単にバインドすることができますが、そのシリーズが必要とするデータの適切な量とタイプを提供してください。使用しているシリーズ タイプに基づいた最小要件をデータを満たさないと、IGChartView は何も描画しません。以下は、蓄積/分配インジケーター タイプのデータ要件のリストです。

  • 高値 (数値)

  • 低値 (数値)

  • 終値 (数値)

  • 出来高 (数値)

蓄積/分配インジケーターを IGChartView に追加 - コード例

説明

以下のコードは IGOHLCSeriesDataSourceHelper を使用してランダムに生成されるデータを IGChartView インスタンスに最初に追加される財務価格シリーズに提供します。次に、財務指標を IGChartView インスタンスにシリーズとして追加し、IGChartView は現在の UIView のサブビューとして追加されます。

前提条件

このコード例を使用するために IGChartView フレームワークをプロジェクトに含む必要があります。フレームワークの追加の詳細については チャート フレームワーク ファイルの追加 トピックを参照してください。

コード

Objective-C の場合:

 NSMutableArray *open = [[NSMutableArray alloc] init];
    for (int i = 0; i < 25; i++) {
        [open addObject:[[NSNumber alloc] initWithDouble:(arc4random() % 100)]];
    }
    NSMutableArray *high = [[NSMutableArray alloc] init];
    for (int i = 0; i < 25; i++) {
        [high addObject:[[NSNumber alloc] initWithDouble:(arc4random() % 100 + 30)]];
    }
    NSMutableArray *low = [[NSMutableArray alloc] init];
    for (int i = 0; i < 25; i++) {
        [low addObject:[[NSNumber alloc] initWithDouble:(arc4random() % 100)]];
    }
    NSMutableArray *close = [[NSMutableArray alloc] init];
    for (int i = 0; i < 25; i++) {
        [close addObject:[[NSNumber alloc] initWithDouble:(arc4random() % 100 + 10)]];
    }
    NSMutableArray *volume = [[NSMutableArray alloc] init];
    for (int i = 0; i < 25; i++)
    {
        [volume addObject:[[NSNumber alloc] initWithDouble:(arc4random() % 1000000 + 100000)]];
    }
    IGOHLCSeriesDataSourceHelper *source = [[IGOHLCSeriesDataSourceHelper alloc] init];
    source.openValues = open;
    source.highValues = high;
    source.lowValues = low;
    source.closeValues = close;
    source.volumeValues = volume;
    IGChartView *infraChart = [[IGChartView alloc] initWithFrame:self.view.frame];
    [infraChart setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
    IGCategoryXAxis *xAxis = [[IGCategoryXAxis alloc] initWithKey:@"xAxis"];
    IGNumericYAxis *yAxis = [[IGNumericYAxis alloc] initWithKey:@"yAxis"];
    [infraChart addAxis:xAxis];
    [infraChart addAxis:yAxis];
    IGFinancialPriceSeries *financialPriceSeries = [[IGFinancialPriceSeries alloc] initWithKey:@"financialPriceSeries"];
    financialPriceSeries.xAxis = xAxis;
    financialPriceSeries.yAxis = yAxis;
    financialPriceSeries.dataSource = source;
    financialPriceSeries.displayType = IGPriceDisplayTypeCandlestick;
    IGAccumulationDistributionIndicator *financialIndicator = [[IGAccumulationDistributionIndicator alloc] initWithKey:@"financialIndicator"];
    financialIndicator.xAxis = xAxis;
    financialIndicator.yAxis = yAxis;
    financialIndicator.dataSource = source;
    financialIndicator.thickness = 3.0f;
    financialIndicator.trendLineThickness = 3.0f;
    financialIndicator.trendLineType = IGTrendLineTypeModifiedAverage;
    financialIndicator.trendLinePeriod = 5;
    [infraChart addSeries:financialPriceSeries];
    [infraChart addSeries:financialIndicator];
    [self.view addSubview:infraChart];

C# の場合:

Random r = new Random();
   List<NSObject> open = new List<NSObject>();
   List<NSObject> high = new List<NSObject>();
   List<NSObject> low = new List<NSObject>();
   List<NSObject> volumes = new List<NSObject>();
   List<NSObject> close = new List<NSObject>();
   for(int i = 0;i <25; i++)
   {
    open.Add(new NSNumber(r.Next() % 100));
    high.Add(new NSNumber(r.Next() % 100 + 30));
    low.Add(new NSNumber(r.Next() % 100));
    close.Add(new NSNumber(r.Next() % 100 + 10));
    volumes.Add(new NSNumber(r.Next() % 1000000 + 100000));
   }
IGOHLCSeriesDataSourceHelper source = new IGOHLCSeriesDataSourceHelper();
   source.OpenValues = open.ToArray();
   source.HighValues = high.ToArray();
   source.LowValues = low.ToArray();
   source.CloseValues = close.ToArray();
source.VolumeValues= volumes.ToArray();
IGChartView chart = new IGChartView(this.View.Frame);
   chart.AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth;
   this.View.AddSubview(chart);
IGCategoryXAxis xAxis = new IGCategoryXAxis("xAxis");
   IGNumericYAxis yAxis = new IGNumericYAxis("yAxis");
   chart.AddAxis(xAxis);
   chart.AddAxis(yAxis);
IGFinancialPriceSeries series = new IGFinancialPriceSeries("series");
   series.XAxis = xAxis;
   series.YAxis = yAxis;
   series.DataSource = source;
   series.DisplayType = IGPriceDisplayType.IGPriceDisplayTypeOHLC;
chart.AddSeries(series);
IGAccumulationDistributionIndicator indicator = new IGAccumulationDistributionIndicator ("indicator");
   indicator.XAxis = xAxis;
   indicator.YAxis = yAxis;
   indicator.DataSource = source;
   indicator.TrendLineType = IGTrendLineType.IGTrendLineTypeModifiedAverage;
   indicator.TrendLinePeriod = 5;
   chart.AddSeries(indicator);

関連コンテンツ

トピック

このトピックについては、以下のトピックも合わせてご参照ください。

トピック 目的

このトピックのグループは、 IGChartView コントロールでサポートされるチャート シリーズのタイプについて説明します。