キャンドルスティックチャート:金融取引と価格行動

時間の経過とともに金融市場や資産価格の動きを追跡する際、キャンドルスティックチャートは業界標準の可視化ツールです。開高安終価(OHLC)の4つの重要な価格ポイントを1つの視覚的バーに統合することで、キャンドルスティックチャートは価格のボラティリティ、取引レンジ、市場のセンチメントを一目で把握でき、株式パフォーマンスダッシュボード、暗号資産の追跡、商品取引の視点において不可欠です。

キャンドルスティックの仕組み

Apache EChartsでは、キャンドルスティックシリーズはtype: 'candlestick'(または別名'k')。各データポイントは、明確に[Open, Close, Lowest, Highest]という順序の4値配列が必要です。チャートエンジンは、OpenとCloseの間に実体または空洞のボディを描画し、細い「ワイス」線を最低価格および最高価格まで延長します。

1. 必須の設定

基本的なキャンドルスティックチャートを構築するには、連続するX軸に時間をマッピングし、[Open, Close, Lowest, Highest]配列をシリーズデータに渡します:

option = {
    tooltip: {
        trigger: 'axis',
        axisPointer: { type: 'cross' }
    },
    xAxis: {
        type: 'category',
        data: ['2026-05-01', '2026-05-02', '2026-05-03', '2026-05-04', '2026-05-05']
    },
    yAxis: {
        type: 'value',
        scale: true
    },
    series: [
        {
            type: 'candlestick',
            data: [
                [20, 34, 10, 38], // [Open, Close, Lowest, Highest] -> 上昇(Close > Open)
                [40, 35, 30, 50], // 下落(Close < Open)
                [31, 38, 33, 44],
                [38, 15, 5, 42],
                [15, 28, 10, 32]
            ]
        }
    ]
};

 

高度な構造技術

キャンドルスティックチャートは、国際的な色の規則、ズームされた時間範囲、または移動平均と組み合わせることでカスタマイズできます。

1. カスタムカラーと移動平均

itemStyleを使用して、上昇(上)および下落(下)のバーの色をカスタマイズし、itemStyle、キャンドルスティックシリーズとラインシリーズを組み合わせることで、移動平均線を重ねて表示します:

option = {
    tooltip: {
        trigger: 'axis',
        axisPointer: { type: 'cross' }
    },
    legend: {
        data: ['1日ごとのK', 'MA5']
    },
    xAxis: {
        type: 'category',
        data: ['月', '火', '水', '木', '金', '土', '日']
    },
    yAxis: {
        type: 'value',
        scale: true
    },
    series: [
        {
            name: '1日ごとのK',
            type: 'candlestick',
            data: [
                [2320, 2320, 2287, 2362],
                [2300, 2291, 2288, 2341],
                [2295, 2312, 2290, 2380],
                [2315, 2330, 2310, 2360],
                [2330, 2325, 2312, 2355],
                [2325, 2350, 2320, 2370],
                [2350, 2340, 2330, 2385]
            ],
            itemStyle: {
                color: '#eb4d4b',       // 上昇時(終値 > 始値)の色
                color0: '#6ab04c',      // 下降時(終値 < 始値)の色
                borderColor: '#eb4d4b',
                borderColor0: '#6ab04c'
            }
        },
        {
            name: 'MA5',
            type: 'line',
            smooth: true,
            data: [null, null, null, null, 2310, 2321, 2329],
            lineStyle: { opacity: 0.8, width: 2 }
        }
    ]
};

 

レイアウトとインタラクティブズームの微調整

時系列のズームコントロールを追加することで、ユーザーは密集した過去の取引記録をナビゲートする際に柔軟性を得ます。

1. データズームと軸ポインターのコントロール

次のdataZoom構成ブロックを使用して、水平スライダーとマウスホイールズームを組み込みます:

option = {
    grid: {
        left: '10%',
        right: '10%',
        bottom: '15%'
    },
    xAxis: {
        type: 'category',
        data: ['1日目', '2日目', '3日目', '4日目', '5日目', '6日目', '7日目', '8日目']
    },
    yAxis: {
        type: 'value',
        scale: true
    },
    dataZoom: [
        {
            type: 'inside', // マウスホイールズームを有効化
            start: 20,
            end: 100
        },
        {
            type: 'slider', // 視覚的な下部ズームスライダー
            show: true,
            top: '90%'
        }
    ],
    series: [
        {
            type: 'candlestick',
            data: [
                [100, 110, 95, 115],
                [110, 105, 100, 112],
                [105, 120, 104, 125],
                [120, 118, 112, 122],
                [118, 125, 115, 128],
                [125, 122, 120, 130],
                [122, 135, 121, 138],
                [135, 130, 128, 140]
            ]
        }
    ]
};

 

戦略的なベストプラクティス

  • データの順序を正しく設定する: 配列の構造を再確認してください! EChartsは[始値、終値、最安値、最高値]—終値と最安値を間違えて入れ替えることは、レンダリングバグのよくある原因です。
  • 有効にするscale: trueY軸に: 数値価格軸には常にscale: trueを含めるようにしてください。これにより、チャートが原点をゼロに固定するのではなく、現在の価格範囲に自動スケーリングします。
  • クロスヘア軸ポインターを使用する:設定するtooltip.axisPointer.type = 'cross'連続する垂直および水平の参照線を表示し、価格とタイムスタンプの整列を容易にする。
上部へスクロール