【Power BI】Candlestick by OKVizでテクニカル分析してみた

# これからはなすこと
+ ローソク足チャートをカスタムビジュアルで再現する
+ DATESINPERIOD関数を利用して移動平均線を作成する
+ 単純移動平均線をDAX式で再現することでゴールデンクロス、デッドクロスを読み取る


# 目次
1. カスタムビジュアルについて
2. ローソク足とは
3. Candlestick by OKVizについて
4. 移動平均線の求め方
5. チャートと移動平均線から何を読み取るのか
6. おわりに


# 1. カスタムビジュアルについて
カスタムビジュアルとは主にAppSourceのPower BIビジュアルのことを指します。
Power BIのビジュアルは以下の3つの主要なソースから取得します。
+ [視覚化]ペインにデフォルトで入っているコアビジュアル
+ Microsoft AppSource または Power BI からビジュアルをダウンロードまたはインポート
+ 自分でカスタムビジュアルを作成する

※以下参考URL

https://learn.microsoft.com/ja-jp/power-bi/developer/visuals/power-bi-custom-visuals

https://appsource.microsoft.com/en-us/marketplace/apps?product=power-bi-visuals&exp=ubp8

# 2. ローソク足とは
そもそもローソク足とは一体何者かを知っておきましょう。
ローソク足はそれ1本で、**設定した時間内の始値**（はじめね）・**高値**（たかね）・**安値**（やすね）・**終値**（おわりね）を視覚的に表します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/ce95a390-ae5b-c979-6262-5e9a562bb3b1.png)
※↑こんな図をどこかで見たことがある方もいらっしゃるのでは

このローソク足は変化し続ける数字を**視覚的に、また過去データから現在までを一目で値動きがわかる**というのが特徴です。めっちゃすごいんです。
このローソク足は日本発祥ですが、海外の投資家から「Candle Chart」と親しまれているくらい利用されています。

※詳しくは以下URLから

https://min-fx.jp/market/main-technicals/candlestick/

# 3. Candlestick by OKVizについて

タイトルの通り、ローソク足を作成できるビジュアルになります。
設定項目は以下になります
+ Axis (軸)
+ Open (始値)
+ Close (終値)
+ High (高値)
+ Low (安値)
+ Trend Lines (トレンドライン（傾向線）・・・株価などの価格変動を示す曲線やグラフを指す)
※トレンドラインはテクニカル指標の1つで株式投資用語である。ググったらもっと詳しくわかる
こちらのカスタムビジュアルで、
1日ごとの値動きが分かる日足(ひあし)チャート、
1週間ごとの値動きが分かる週足(しゅうあし)チャートを作成してみました。

日足チャートはオープンデータの日経平均株価の日次csvファイルを、
週足チャートは株探の時系列データをExcelにコピーしてIFファイルを作成しました。

https://indexes.nikkei.co.jp/nkave/index?type=download

https://kabutan.jp/stock/kabuka?code=0000&ashi=day

早速Power BIでファイルを取り込んでみた図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/69a2be57-dae6-ed35-13b4-a6013212798a.png)

インポートしたカスタムビジュアルに項目を設定していきます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/71cc89e7-0600-2aa5-3c1b-a0dd82907fba.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/29f9148a-fbaa-f8e6-ef0d-9debb849414f.png)

値項目が合計であることが確認出来たらローソク足チャート図が以下のように現れるはずです。
分かりやすいようにフィルターで2023年分のみ描画してます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/2ac91104-e9cb-d09a-e961-f7ccdf16436c.png)
ここで気を付けておきたいのはこのオープンデータ、日付に階層を持っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/27899b27-5128-2cda-b079-ee73e1c39097.png)
日付の階層だと想定通りに描画できないのでデータ日付の方で合わせておきましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/ef696efe-966a-e1fd-20e8-69825ad30fbf.png)
週足チャートも同じように描画することができます。
ビジュアルの表示について少しいじっているのでデフォルトで同じ表示には見えないと思います。
是非いろんな設定項目をいじってみてください。

# 4. 移動平均線の求め方
前のセクションまではローソク足チャートを作成しましたが、Trend Lines項目がまだ埋まってなかったですね。
今回は移動平均線を作成して分析できる指標にしてみたいと思います。

※移動平均線について詳しい説明は以下URL参照

https://www.daiwa.jp/seminar/technical/06/

今回はこちらの先人の知恵をお借りしました。
※参考：Power BIで移動平均線を計算する方法　Averagex×Datesinperiodへの誘い

https://soft-zou.jp/2021/11/23/power-bi-movingaverage/

移動平均(単純移動平均)の計算式は以下になります。
直近の終値＋１本前の終値+2本前の終値・・・＋(N-1)本目の終値）÷N

（例）5日移動平均線の場合
5日移動平均線 = （当日終値+前日終値+2日前終値+3日前終値+4日前終値）÷5

※参考:移動平均線　マネックス証券

https://info.monex.co.jp/technical-analysis/indicators/001.html

5日間の移動平均を求めるDAX式は以下になります。
```dax:5日間の単純移動平均線.dax
Chart_MA(5d) = 
AVERAGEX(
DATESINPERIOD(nikkei_stock_average_daily_jp[データ日付], LASTDATE(nikkei_stock_average_daily_jp[データ日付]), -5, Day),
CALCULATE(SUM(nikkei_stock_average_daily_jp[終値])))//5日間の終値移動平均を求める
```
各関数については下記参照
**AVERAGEX関数**

https://learn.microsoft.com/ja-jp/dax/averagex-function-dax

**DATESINPERIOD関数**

https://learn.microsoft.com/ja-jp/dax/datesinperiod-function-dax

**LASTDATE関数**

https://learn.microsoft.com/ja-jp/dax/lastdate-function-dax

**CALCULATE関数**

https://learn.microsoft.com/ja-jp/dax/calculate-function-dax

移動平均のメジャーを作成後、テーブルビジュアルで問題がないか確認。
問題なければTrend Linesに入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/70f56048-bbdf-08d6-f44c-2ba684eb89fe.png)

ビジュアルの書式設定のTrend linesからグラフの色を変更できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/fd783add-857d-4876-a4ce-5150df859cf5.png)
同じように25日移動平均と75日移動平均も出してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/bbc5a88c-d653-3070-8242-54b815cc66cf.png)
色分けをすると見やすくなります。

週足チャートも同じ計算式で算出します。
週足チャートでは13週と26週で移動平均を求めます。
13週=90日、26週=180日換算
```dax:13週間の移動平均.dax
Chart_MA(13w) = 
AVERAGEX(
DATESINPERIOD('日経平均週足'[日付], LASTDATE('日経平均週足'[日付]), -90, DAY),
CALCULATE(SUM('日経平均週足'[終値])))//13週間の終値移動平均を求める
```
```dax:26週間の移動平均.dax
Chart_MA(26w) = 
AVERAGEX(
DATESINPERIOD('日経平均週足'[日付], LASTDATE('日経平均週足'[日付]), -180, DAY),
CALCULATE(SUM('日経平均週足'[終値])))//13週間の終値移動平均を求める
```
※DATESINPERIODはweekの設定ができないため、DAYの日数で数えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/19e57c84-6631-c68d-f5b1-c6159a610dd0.png)


# 5. チャートと移動平均線から何を読み取るのか

チャートと移動平均線単線でわかることは2つあり、トレンドと相場の状態が分かります。
1. 移動平均線が上向きなら**上昇トレンド**、
横ばいなら方向感のない**もみあい局面**、下向きなら**下降トレンド**と判断します。

2. 価格が移動平均線の上側にあれば強い相場、下側にあれば弱い相場と判断します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/c2f00fb4-e261-2cf0-e945-3b1cde009fce.png)
↑上昇トレンドかつ強い相場例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/aa529bb4-a93b-dc66-df39-20a53bf3ed1e.png)
↑下降トレンドかつ弱い相場例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/9a325bbf-5d6a-5c48-950d-b503d5746d93.png)
↑横ばいでもみ合い局面例

移動平均線は2~3本を組み合わせて使用することが多く、売買シグナルとして有名なものに
「ゴールデンクロス」と「デッドクロス」というものがあります。

**ゴールデンクロス**
短期移動平均線が長期(または中期)移動平均線を**下から上へ突き抜ける**場合。
直近の価格傾向が上向きに転じたとみられるため、買いサインとされる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/a860418c-dcfd-7bed-3920-1d90dc67548d.png)
↑ゴールデンクロス例(GO TO トラベルの施策を打ち出した時期くらいになります)

**デッドクロス**
短期移動平均線が長期(または中期)移動平均線を**上から下へ突き抜ける**場合。
直近の価格傾向が下向きに転じたとみられるため、売りサインとされる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/7dfa6c89-55ac-894e-2f38-c826020f6488.png)
↑デッドクロス例(例の流行り病がやんちゃし始めた時期ですね)

※日足チャートでは5日、25日、75日の移動平均線を求めましたが、
よく使われるのは25日と75日になります。
また、週足チャートでは13週と26週が良く指標で使われます。
例えば13週の移動平均線を「短期線」、26週の移動平均線を「中期線」と呼びます。

※参考URL

https://info.monex.co.jp/technical-analysis/indicators/001.html

https://shikiho.toyokeizai.net/news/0/24574

https://www.nippon.com/ja/news/q202007/

# 6. おわりに

株価動向予想をする際の分析の一部ではありますが、Power BIを交えてお話してきました
(この時点ですごいボリューム汗)
自分で株価チャートを作って分析してみることはできるのか？
カスタムビジュアルでできることを広めたい！の2点からこの記事を作成しました。

ちなみにゴールデンクロスを取り上げた箇所(下記黄色〇)
この後約一年ずっと伸びています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2992046/06f320fe-e23f-d91f-db49-d47308a3ce27.png)
大学時代の恩師がおっしゃっていた言葉である
「市場のピンチは投資のチャンスである」
投資は長期運用前提だから理にかなっているのかもしれないです。
あ、私は運用できる資金は持っていないのでチャートを眺めていただけです(悔しい)
Power BIの運用と本当にさわりだけの分析をお話しました。

お付き合いいただきありがとうございました。