iOS

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

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

はじめに

こんにちは鈴木です。最近ローソク足の記事を書いているにあたり、テスト用のランダムデータではなく、実際のOHLCのデータを使いたい思っておりました。今回色々調べた結果CryptoWatchのAPIが簡単にJSONデータの取得ができそうだったため実装しました。

CryptoWatchについて

仮想通貨のチャートサイトであり、APIを提供してくれています。
APIの詳細な情報はこちらから確認ができます。
本記事ではCryptWatchのAPIは詳しく触れていませんので詳しく知りたい方は是非!

OHLC

OHLCとはローソク足の描画に使われる。下記の情報の頭文字です。

  • Open/始値
  • High/高値
  • Low/安値
  • Close/終値

上記の情報をCryptWatchAPIで取得します。

リクエスト方法

CryptoWatchのAPI

ローソク足で表示するため

  • OHLCのデータが複数取得できる
  • スパンは1日ごと

CryptWatchの下記のリンクからリクエストを作成します。
https://cryptowat.ch/docs/api#market-ohlc
下記が基本の形式です。ExchangeとPairが気になる方はそれぞれリストをJSON形式で取得することも可能です。
market/[Exchange]/[Pair]/ohlc
例として値を入力するとhttps://api.cryptowat.ch/markets/coinbase-pro/btcusd/ohlc
アクセスするとJSON形式でデータが取得できます。

今回は一日ごとのデータだけが欲しいため下記の様に指定を行います。
https://api.cryptowat.ch/markets/coinbase-pro/btcusd/ohlc?periods=86400

Swiftでの実装方法

通信周りは外部ライブラリを使用しないで下記で実装しました。

  • Codable
  • JSONDecoder
  • URLSession

Codable

JSONDecoder・URLSession
関数として成功時にOHLCListをコールバックする様な実装です。エラー処理は特に考えていません。

以前の実装の移動平均線の描画箇所をコールバックの値を使用するように変更しました。
細かな説明は不要かとは思いますので今回の変更を含めてまとめて記述します。

さいごに

最後までありがとうございます。今回JSONDecoder+Codableを使いたかったため、通信周りはよそのライブラリを使用しないで実装しました。
APIにもよりますがライブラリ不要でシンプルな実装ができるのは嬉しいですね。

おすすめ書籍

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

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:

免責事項

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


comment

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

CAPTCHA


関連記事

【Swift】whose view is not in the window hierarchyで画面遷移に失敗する

1 はじめに2 エラーの概要3 今回出会った事象4 行った対応5 さいごに6 おすすめ書籍 はじめに こんにちはsuzukiです。今回は備忘としてwhose view is not in the wi ...

swift

Swift3で動的にUIViewを切り替える Part2

1 はじめに1.1 前提条件2 完成イメージ3 StoryBoardの準備3.1 Viewの配置3.1.1 ① Segmentを配置するView3.1.2 ② ContainerViewを表示するVi ...

swift

Swift3 コードでの画面遷移

1 はじめに1.1 環境2 performSegue2.1 事前準備2.2 遷移先を示すSegueを作成2.3 遷移させるイベントを作成2.4 画面遷移させる3 prepare3.1 事前準備3.2 ...

swift

SwiftでLTMorphingLabelを使ってみた

1 はじめに2 LTMorphingLabelとは3 準備4 実装 はじめに 今回はLTMorphingLabelというライブラリが面白そうなので使ってみました。 LTMorphingLabelとは ...

【Swift】MemoryLeakの簡単な確認方法

1 はじめに2 テストの準備3 開発中のテスト4 テストコードの作成5 さいごに6 おすすめ書籍 はじめに こんにちは、suzukiです。前回の記事で循環参照について触れました。今回は問題の発見に役立 ...

フォロー

blog-page_side_responsive

2019年4月
 123456
78910111213
14151617181920
21222324252627
282930  

アプリ情報

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