バージョン

コモディティ チャネル インデックス インジケーター

トピックの概要

目的

このトピックでは、 IGChartView™ コントロールのコモディティ チャネル インデックス インジケーターの概要を説明し、コモディティ チャネル インデックス インジケーターをチャート ビューに追加する方法を説明するコード例を記載します。

はじめに

コモディティ チャネル インデックス インジケーター概要

コモディティ チャネル インデックス インジケーターは、コモディティの価格の測定に使用される移動平均との毎日の平均価格の平均差異です。これは、移動平均の相対値として示されます。概念的にはボリンジャー バンドと似ていますが、 超過買い/売り としてではなく、 値が 100 を超えるレベルの _ 超過買いコモディティ、および値が -100 を下回る 超過売りコモディティのインジケーター ラインを表されます。_ コモディティ チャネル インデックス インジケーターを計算するには、まず、TP (Typical Price)、(高値 + 安値 + 終値)/3、および SMATP (Simple Moving Average of the Typical Price) を知る必要があります。TP から SMATP を引き、その結果を過去 n 日のそれぞれの TP から今日の SMATP を引いた値で割り算し、絶対値を合計して n で割り算します。ここで、 n は、分析期間の日数を表します。

IGChartView   Commodity Channel Index Indicator 1.png

データ要件

IGChartView コントロールは、カスタム データ モデルにチャートを簡単にバインドすることができますが、そのシリーズが必要とするデータの適切な量とタイプを提供してください。これを行わないと、 IGChartView は何も描画しません。

必須 - データを描画するには、データ モデルに高値、安値、終値ごとの数値フィールドが含まれている必要があります。

コモディティ チャネル インデックス インジケーターを IGChartView に追加 - コード例

説明

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

前提条件

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

コード

C# の場合:

NSMutableArray open = new NSMutableArray();
for (int i = 0; i < 25; i++) {
      open.Add(new NSNumber((new Random((int)DateTime.Now.Ticks).Next(100))));
}
NSMutableArray high = new NSMutableArray();
for (int i = 0; i < 25; i++) {
      high.Add(new NSNumber((new Random((int)DateTime.Now.Ticks).Next(130))));
}
NSMutableArray low = new NSMutableArray();
for (int i = 0; i < 25; i++) {
      low.Add(new NSNumber((new Random((int)DateTime.Now.Ticks).Next(100))));
}
NSMutableArray close = new NSMutableArray();
for (int i = 0; i < 25; i++) {
      close.Add(new NSNumber((new Random((int)DateTime.Now.Ticks).Next(110))));
}
NSMutableArray volume = new NSMutableArray();
for (int i = 0; i < 25; i++) {
      volume.Add(new NSNumber((new Random((int)DateTime.Now.Ticks).Next(1100000))));
}
IGOHLCSeriesDataSourceHelper source = new IGOHLCSeriesDataSourceHelper();
source.OpenValues = open;
source.HighValues = high;
source.LowValues = low;
source.CloseValues = close;
source.VolumeValues = volume;
IGChartView infraChart = new IGChartView(this.View.Frame);
infraChart.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight;
IGCategoryXAxis xAxis = new IGCategoryXAxis("xAxis");
IGNumericYAxis yAxis = new IGNumericYAxis("yAxis");
infraChart.AddAxis(xAxis);
infraChart.AddAxis(yAxis);
IGFinancialPriceSeries financialPriceSeries = new IGFinancialPriceSeries("financialPriceSeries");
financialPriceSeries.XAxis = xAxis;
financialPriceSeries.YAxis = yAxis;
financialPriceSeries.DataSource = source;
financialPriceSeries.DisplayType = IGPriceDisplayType.IGPriceDisplayTypeCandlestick;
IGCommodityChannelIndexIndicator financialIndicator = new IGCommodityChannelIndexIndicator("financialIndicator");
financialIndicator.XAxis = xAxis;
financialIndicator.YAxis = yAxis;
financialIndicator.DataSource = source;
financialIndicator.Thickness = 3.0f;
infraChart.AddSeries(financialPriceSeries);
infraChart.AddSeries(financialIndicator);
(this.View).AddSubview(infraChart);

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;
    IGCommodityChannelIndexIndicator *financialIndicator = [[IGCommodityChannelIndexIndicator alloc] initWithKey:@"financialIndicator"];
    financialIndicator.xAxis = xAxis;
    financialIndicator.yAxis = yAxis;
    financialIndicator.dataSource = source;
    financialIndicator.thickness = 3.0f;
    [infraChart addSeries:financialPriceSeries];
    [infraChart addSeries:financialIndicator];
    [self.view addSubview:infraChart];

関連コンテンツ

トピック

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

トピック 目的

このトピックのコレクションは IGChartView コントロールでサポートされる各チャートについて説明します。