2025年9月12日金曜日

株価のチャートを表示するAPEXアプリケーションを作成する

Oracle APEXのチャート・コンポーネントには、株価を表示する形式のチャートが標準で含まれています。このタイプのチャートを使って、Alpha Vantage社から提供されているStock Market APIを呼び出し、株価チャートを表示させてみます。

シンボルごとの日次データを取得して、チャートに表示します。

作成したチャートは以下のように表示されます。


機能はすべてホーム・ページに実装します。

最初にAlpha Vantage社からAPIキーを取得します。

Claim your Free API Key
https://www.alphavantage.co/support/#api-key

取得したAPIキーをワークスペースにWeb資格証明として保存します。

作成するWeb資格証明の名前Alpha Vantage静的IDALPHAVANTAGEとします。静的IDは、後ほど記述するPL/SQLのコード中で参照するため、同じ名前で設定します。認証タイプURL問合せ文字列を選択します。

資格証明名apikeyです。これはURLにCGI変数名として現れます。資格証明シークレットにAlpha Vantage社から取得したAPIキーを設定します。

URL問合せ文字列のタイプのWeb資格証明は、API呼び出しの際にURLに直接含めることもできますが、Web資格証明として設定すると、送信されたAPIキーがRESTサービスの呼び出しログに記載されなくなります。

URLに対して有効https://www.alphavantage.co/を設定し、設定ミスなどで別のサイトに送信されないように制限します。


取得する株価のシンボルを指定するページ・アイテムとしてP1_SYMBOLを作成します。


STOCK MARKET APIを呼び出し、取得したデータをAPEXコレクションに保存するボタンSHOWを作成します。動作アクションページの送信です。


ボタンSHOWをクリックしたときに実行するプロセスを作成します。ソースPL/SQLコードに以下を記述します。1/4くらいClaudeに書いてもらっています。



株価を表示するチャート・リージョンを作成します。ソースSQL問合せとして以下を記述します。
select
    to_date(c001, 'YYYY-MM-DD') as p_date,
    to_number(c002) as p_open,
    to_number(c003) as p_high,
    to_number(c004) as p_low,
    to_number(c005) as p_close,
    to_number(c006) as p_volume
from apex_collections where collection_name = 'STOCK_ARRAY_DATA'
order by p_date asc

リージョンの属性を開き、チャートタイプ株価を選択します。

設定時間軸タイプ有効とし、ズームとスクロールライブを選択します。


シリーズを選択し、名前Stock Priceとします。ソース位置リージョン・ソースを選択します。

株価向けのチャート・タイプなので、列のマッピングはそのものズバリな列があります。ラベルP_DATEオープンP_OPENP_LOW高いP_HIGH閉じるP_CLOSE出来高P_VOLUMEです。


y軸を選択します。はドルなので小数点を2とします。その他に書式スケール自動ベースライン・スケール最小とします。


もっと調整できる項目はありますが、とりあえず最低限の設定はできました。

アプリケーションを実行すると以下のように動作します。


今回の記事は以上になります。

作成したAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/sample-stock-chart.zip

Oracle APEXのアプリケーション作成の参考になれば幸いです。