バージョン

絶対ボリューム オシレーター インジケーター

トピックの概要

目的

このトピックでは、 IGChartView コントロールの絶対ボリューム オシレーター インジケーターの概要を提供し、チャート ビューに追加するコード実例を提供します。

はじめに

絶対ボリューム オシレーター インジケーター概要

絶対ボリューム オシレーター インジケーターは、2 つの平均ボリューム メジャー間で計算値が異なるインジケーターで、スコア範囲は -100% から +100% です。このインジケーターは、ボリュームトレンドの増加または減少を識別するために使用します。

IGChartView   Absolute Volume Oscillator 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;
    IGAbsoluteVolumeOscillatorIndicator *financialIndicator = [[IGAbsoluteVolumeOscillatorIndicator 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);
IGAbsoluteVolumeOscillatorIndicator indicator = new IGAbsoluteVolumeOscillatorIndicator ("indicator");
   indicator.XAxis = xAxis;
   indicator.YAxis = yAxis;
   indicator.DataSource = source;
   indicator.TrendLineType = IGTrendLineType.IGTrendLineTypeModifiedAverage;
   indicator.TrendLinePeriod = 5;
   chart.AddSeries(indicator);

関連コンテンツ

トピック

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

トピック 目的

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