[Tableau] ローソク足チャートを作ってみた
車輪開発大好きおたいがです。こんにちは。( 挨拶 )
つい先日から社会勉強を兼ねて CFD 取引に手を出し始めたのですが、早速ksポジに差し込んでしまい、ロストカットに怯える日々を過ごしております。( みなさまに置かれましては FX/CFD など資産運用される際には余剰資金でry )
そんな渦中ではありますが、今回は Tableau Desktop を使用してローソク足チャート (Candlestick Chart) を作ってみたのでまとめてみました。
FX(EUR/JPY) の日足 ( ひあし ) チャートを例に手順を解説します。
データソースの用意
業者さんが公開している CSV を拝借して Tableau Desktop に食わせます。( [接続] -> [テキスト ファイル] にて任意の CSV を選択 )
hiashi.csv
日付,始値,高値,安値,終値 2015/04/29,130.5070,132.8830,130.2530,132.4000 2015/04/30,132.4000,134.5070,131.3000,133.9600 2015/05/01,133.9600,135.2530,133.8800,134.3750 2015/05/04,134.5790,134.7110,133.6830,133.8310 2015/05/05,133.8340,134.4790,133.0940,134.0330 2015/05/06,134.0290,135.6810,134.0170,135.5080 2015/05/07,135.5200,135.9790,134.1770,134.8870 2015/05/08,134.8860,135.3810,134.0680,134.1080 2015/05/11,134.1420,134.2200,133.4760,133.9270 …
ディメンション、メジャーの定義
「ヒゲ」( 陰線、陽線 )
「高値」をプロットして「安値」に向けてガント棒を描画します。
「メジャー」の計算フィールドに [安値]-[高値] の結果を返す「安値-高値」メジャーを作成します。
同じように、計算フィールドに [終値]-[始値] の結果を返す「終値-始値」メジャーを作成します。
「終値-始値」の計算結果が 0 を超える場合は陽線、0 以下であれば陰線となります。この結果を可視化させたいので、「ディメンション」の計算フィールドで陽線か陰線かを示す「方向」ディメンションを作成します。
ここで返している "up" が陽線、"down" が陰線となります。( 名称は任意です )
各シェルフへの配置
列シェルフに「日付」ディメンションを配置して、「カスタム日付」から「年/月/日」を選択します。
行シェルフに「高値」と「始値」を配置したあと、「始値」のメモリを「高値」の右端にドラッグ&ドロップします。
ついでに「高値」と「始値」の軸の範囲をデータに合せて調整しておきます。
「マーク」カードの「すべて」を開いてグラフの種別を「ガント棒」に設定して、「方向」ディメンションを「色」にドラッグ&ドロップします。このとき、「方向」カードが作られて、「方向」ディメンションで定義した文字列が表示されます。
続いて「マーク」カードの「高値」を開いて「安値-高値」メジャーを「サイズ」にドラッグ&ドロップします。これでプロットされていた「高値」が下方向 ( マイナス方向 ) に伸びます。さらに「サイズ」をクリックして表示される水平スライダーを調整することで太さを変えることができます。
同じような要領で「マーク」カードの「始値」を開いて「終値-始値」メジャーを「サイズ」にドラッグ&ドロップします。
メモリの範囲を調整したら完成です。
サンプル
完成品を Tableau Public にアップロードしました。
http://public.tableau.com/profile/taiga#!/vizhome/FxHiashiCandlestickchart/EURJPY
さいごに
ガント棒で任意の範囲のデータを可視化させたり、条件に応じて色を切り分ける練習に、ローソク足チャートはちょうど良いかな…という印象を受けました。