iOS

Swift Chartsライブラリでボリンジャーバンドを描画してみる。

投稿日:2019年3月25日 更新日:

はじめに

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

ボリンジャーバンドとは

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

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

ライブラリの導入

前回記事同様にChartsライブラリをPodで導入します。

描画の準備

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

  • CombinedChartViewを追加
  • 上下左右に制約を追加
  • CombinedChartViewを関連付け

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

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

CombinedChartViewの設定

CombineChartViewにはこの前とほとんど同じなのですが、新たにデータ数を増やす影響もありX軸の表示数に制限を行います。
chart.setVisibleXRangeMaximum(30)
chart.setVisibleXRangeMinimum(5)
またスワイプの動作を行うためdragEnabledをtrueに変更します
chart.dragEnabled = true

CombinedChartView用のデータ作成

今回はボリンジャーバンドを作成するためのデータを作成します。
ローソク足用のデータは移動平均線と同様のデータ
var endPoints: [Double] = []
上記に加えて、移動平均線は5日としてデータ作成したのですが、ボリンジャーバンドは期間が20or25と書いてあったため下記を宣言します。
//移動平均線の計算、および標準偏差を求める際の期間とりあえず20を設定
let periodCount = 20

宣言したendPointsにキャンドルデータの作成のロジック部分で終値を保存します。

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

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

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

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

CombinedChartViewに描画

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

さいごに

テクニカルチャートの要件があり勉強中ですが、実際にテクニカルチャートをもとに取引をした事がありません。
テクニカルチャートをもとに取引を行って重要性を学んでみたいですね。取引額は控えめで!
それでは最後までありがとうございました。今度はKotlinか一目均衡表を学んでみようと思います。

おすすめ書籍

詳解 Swift 第4版 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) よくわかるAuto Layout iOSレスポンシブデザインをマスター

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

祝!iOS15でハーフモーダルが追加

1 はじめに2 早速使ってみる2.1 準備2.2 実装2.3 detents2.4 コードでの高さ切り替え2.5 モーダル内のスクロール許可2.6 グラバーの表示2.7 角丸2.8 親Viewとの併用 ...

swift

iOSで画像の任意の場所をぼかし処理する方法

1 はじめに1.1 前提条件2 準備3 実装3.1 ぼかし処理のイメージ画像3.2 サンプルコード4 さいごに はじめに iOSで写真の任意の場所にぼかし処理をしたいケースがありましたので、 iOSで ...

【Swift】iOS14 で変わるプライバシー主にIDFA周り

1 はじめに2 iOS14のプライバシーについて2.1 IDFAについて2.2 iOS14でどのような動きになるか2.3 今後の対策として3 その他のプライバシーについて4 さいごに5 おすすめ書籍 ...

swift

[Swift]ログフレームワーク「CocoaLumberjack」をSwiftで使ってみた

1 はじめに2 準備3 実装3.1 出力先の設定3.2 ログの出力レベルを設定する3.3 ログの出力4 さいごに はじめに こんにちは、nukkyです。 今回はログ管理に便利なライブラリ「CocoaL ...

swift

[Swift]UIViewからUIImageを作成しローカルに保存

1 はじめに1.1 前提条件2 実装2.1 UIViewからUIImageへ2.2 UIImageをローカルに保存2.3 おまけ:画像のリサイズ3 さいごに4 おすすめ書籍 はじめに こんにちは、nu ...

フォロー

blog-page_side_responsive

2019年3月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

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