8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TradingViewのdatafeedクラス詳細

Last updated at Posted at 2017-04-22

概要

TradingViewはサーバから情報を取得して、チャートデータを表示することができる。その時に利用するのが「datafeed」。
パラメータとしては、下記の用に指定する

test.js
datafeed: new Datafeeds.UDFCompatibleDatafeed("https://demo_feed.tradingview.com")

第一引数はデータを取得するサーバのURL。第二引数はデータを更新するインターバルデフォルト10秒、省略可能。
ただ、独自データをリアルタイムで反映する際は、独自にJavaScriptでクラスを実装し。指定する必要がある。

test.js
datafeed: new MyChartDataFeed("https://api.hogehoge.jp")

独自クラス実装方針

  1. 参考となるクラス(UDFCompatibleDatafeed)がES5で記述されているが、ES6でも問題なく動作する。
  2. 下記メソッドを必ず実装する。(メソッドの英語資料のリンク:要TradingView認証)。実装内容がわからなければ、Datafeeds.UDFCompatibleDatafeedの同名メソッドを参考にするといい
  • onReady
  • searchSymbolsByName
  • resolveSymbol
  • getBars
  • subscribeBars
  • unsubscribeBars
  • calculateHistoryDepth
  • getMarks
  • getTimescaleMarks
  • getServerTime

メソッド詳細

onReady

引数

名前 詳細
callback 基本設定をセットするためのコールバック関数

説明

最初に実行される。
TradingViewで利用される全体設定をディクショナリ形式で指定して、コールバック変数を実行する。
setTimeoutを利用しないと警告がでるので注意。
全体設定の具体的な中身

searchSymbolsByName

引数

名前 詳細
userInput ユーザが入力した文字列
exchange 取引所名
symbolType シンボル名称
onResultReadyCallback シンボル情報をセットするコールバック関数

補足

左上のシンボル(AAPLとか)を変更した時に実行される。
onResultReadyCallbackには配列形式で引数に対応するシンボル情報をセットすればいい。
データ形式は辞書型の配列。
具体的な中身

resolveSymbol

引数

名前 詳細
symbolName 設定されたシンボル名称
onSymbolResolvedCallback 正常処理時にシンボル情報を設定する
onResolveErrorCallback エラー発生時にエラーメッセージをセットする

補足

シンボルの設定に完了した時に実行される。
正常処理時にはonSymbolResolvedCallbackにシンボル情報をセットする。
異常発生時にはonResolveErrorCallbackにエラーメッセージをセットする
シンボル情報の詳細

getBars

チャートを表示するためのデータを取得する時に実行される。
独自データを表示したい場合、サーバと非同期通信を行い、チャートデータを取得する必要がある。

引数

名前 詳細
symbolInfo シンボル情報
resolution 日付単位。"D"とか"M"とか
from 欲しいデータの日付範囲開始時間(エポック)
to 欲しいデータの日付範囲終了時間(エポック)
onHistoryCallback データをセットする関数
onErrorCallback エラーが発生した場合、引数にエラーメッセージをセットして実行する
firstDataRequest 一番最初のデータ読み込み時、trueが設定される

subscribeBars

シンボルが決定された時実行される。
独自データを表示したい場合、サーバと非同期通信を行い、チャートデータを取得する必要がある。

引数

名前 詳細
symbolInfo シンボル情報
resolution 日付単位。"D"とか"M"とか
onRealtimeCallback リアルタイム情報表示時にデータを登録する関数
listenerGUID データを呼び出すときの一意のID
onResetCacheNeededCallback ごめん、わからん

unsubscribeBars

シンボルが決定される前に実行される。

引数

名前 詳細
subscriberUID データを呼び出すときの一意のID

calculateHistoryDepth

getBars実行時、データを読み込む期間をカスタマイズしたい時に実装する。
不要な場合は関数だけ作成して未実装でもよい。

引数

名前 詳細
resolution 指定した日付単位。"D"とか"M"とか
resolutionBack 呼び込む期間の単位。"D"とか"M"とか
intervalBack 実際に読み込む期間

getMarks

チャート下部にマークを表示させたい時に実装する。
必要ない場合はコールバック関数に空の配列を渡して実行していればok

名前 詳細
symbolInfo シンボル情報
startDate 開始日時
endDate  終了日時
onDataCallback マーク表示情報設定関数
resolution 指定した日付単位。"D"とか"M"とか

getTimescaleMarks

チャートにマークを表示させたい時に実装する。
必要ない場合はコールバック関数に空の配列を渡して実行していればok

名前 詳細
symbolInfo シンボル情報
startDate 開始日時
endDate  終了日時
onDataCallback マーク表示情報設定関数
resolution 指定した日付単位。"D"とか"M"とか

getServerTime

サーバからの時間を取得する関数

名前 詳細
callback サーバの時間を指定して実行する関数
8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?