概要
TradingViewはサーバから情報を取得して、チャートデータを表示することができる。その時に利用するのが「datafeed」。
パラメータとしては、下記の用に指定する
datafeed: new Datafeeds.UDFCompatibleDatafeed("https://demo_feed.tradingview.com")
第一引数はデータを取得するサーバのURL。第二引数はデータを更新するインターバルデフォルト10秒、省略可能。
ただ、独自データをリアルタイムで反映する際は、独自にJavaScriptでクラスを実装し。指定する必要がある。
datafeed: new MyChartDataFeed("https://api.hogehoge.jp")
独自クラス実装方針
- 参考となるクラス(UDFCompatibleDatafeed)がES5で記述されているが、ES6でも問題なく動作する。
- 下記メソッドを必ず実装する。(メソッドの英語資料のリンク:要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 | サーバの時間を指定して実行する関数 |