Android

Kotlin MPAndroidChartライブラリを使いボリンジャーバンドを描画してみる。

投稿日:2019年4月8日 更新日:

はじめに

こんにちはsuzukiです。今回はMPAndroidChartを使いボリンジャーバンドの描画に挑戦します。
前回記事で移動平均線を描画する際に少し詳しくMPAndroidChartライブラリの説明をしています。よければご覧ください。

ボリンジャーバンドとは

ボリンジャーバンドはローソク足を分析する際の手法です。詳しい内容自体はリンクを参照ください。
今回プログラムでは下記の三点と一部のデータだけ画面に表示するということを行っていきたいと思います。

  • 標準偏差σを求める
  • 移動平均線に±σを行いグラフのデータを作成する
  • CombineChartで描画を行う

ライブラリの導入

build.gradle(Project)

build.gradle(Module)

上記を追加してgradleのSyncを行いましょう。

描画の準備

次にLayoutFileでチャートの描画範囲を決めましょう。

  • CombinedChartを追加
  • 上下左右に制約を追加

ボリンジャーバンドを描画する

それでは実際にボリンジャーバンドを描画しましょう。
完成予定

CombinedChartの設定

combineChartの設定は、新たにデータ数を増やす影響もありX軸の表示数に制限を行います。
combinedChart.setVisibleXRangeMinimum(5.0f)
combinedChart.setVisibleXRangeMaximum(30.0f)
またスワイプの動作を行うためdragEnabledをtrueに変更します
isDragEnabled = true

CombinedChart用のデータ作成

ボリンジャーバンドを作成するためのデータを作成します。
ローソク足用のデータは移動平均線と同様の作成方法を行い
下記のendPointsに終値のデータを保持します。
private var endPoints = mutableListOf()
移動平均線は5日としてデータ作成したのですが、ボリンジャーバンドは期間が20or25と書いてあったため下記を宣言します。
private val periodCount = 20

続いてボリンジャーバンド用のデータです。
移動平均線は一つの折れ線でしたがボリンジャーバンドは下記の5つの折れ線です。

  • アッパーバンド2:単純移動平均線+2標準偏差(σ)
  • アッパーバンド1:単純移動平均線+1標準偏差(σ)
  • ミッドバンド:単純移動平均線
  • ロワーバンド1:単純移動平均線-1標準偏差(σ)
  • ロワーバンド2:単純移動平均線-2標準偏差(σ)

前回と同じようなコードだととても縦長になってしまうため。下記の関数を作成します。

続いてendPointからボリンジャーバンド用にデータを作成します。
引数でendPointsを明示的に渡すようにしました。
sliceでarrayを作ったのでそのまま書いていますが、標準偏差sigmaを求める関数作った方がシンプルに見えるかもしれません。

CombinedChartに描画

ローソク足の個数はとりあえず200で描画しています。

さいごに

AndroidStudioのcommand + option + l がとても便利ですね。ブログではコード量少ないため気にならないですが、参照されていない変数がわかるのも気に入っております。XCodeが一番使っているIDEなので使い慣れていますが、AndroidStudioも使いこなして生産性あげて行きたいです。

おすすめ書籍

Kotlinスタートブック -新しいAndroidプログラミング Kotlinイン・アクション 速習 Kotlin: Javaより簡単!新Android開発言語を今すぐマスター 速習シリーズ

page_footer_300rect




page_footer_300rect




-Android
-

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

Kotlinでクラスのネストについて

1 はじめに2 クラスのネスト3 内部クラス3.1 Javaコードとの比較4 さいごに5 おすすめ書籍 はじめに こんにちは。引き続きKotlinの基本文法で、今回はクラスのネストについてです。 Ja ...

はじめてのKotlinとAndroid StudioのKotlinプラグイン

1 はじめに2 Kotlinとは?3 Android Studio 2.3でのKotlinプラグイン導入3.1 Kotlinプラグインのインストール3.2 JavaコードをKotlinコードに変換3. ...

AndroidでWebViewを使用するときに気をつけたいポイント追加4選!

1 はじめに2 Cookie2.1 Cookieを設定する2.2 Cookieを取得する3 ハンドリングの効かないページ遷移3.1 POSTでのページ遷移3.2 PDFなど、WebViewで開くことの ...

Kotlin ChartsライブラリとCryptowatchAPIでローソク足を描画してみる。

1 はじめに2 CryptoWatchについて2.1 OHLC3 リクエスト方法3.1 CryptoWatchのAPI4 Androidでの実装4.1 実装前の準備4.2 データクラスの作成4.3 リ ...

[Android] KotlinでTextToSpeech

1 はじめに2 環境3 MainActivity.kt4 SpeechListener.kt5 activity_main.xml6 さいごに はじめに こんにちは。最近ようやくKotlinに手を付け ...

フォロー

follow us in feedly

page_side_300rect

2019年4月
« 3月 5月 »
 123456
78910111213
14151617181920
21222324252627
282930 

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。