@@ -15,85 +15,88 @@ const supportedResolutions = [
1515const config = {
1616 supported_resolutions : supportedResolutions ,
1717} ;
18- export default {
19- onReady : ( cb ) => {
20- setTimeout ( ( ) => cb ( config ) , 0 ) ;
21- } ,
22- resolveSymbol : ( symbolName , onSymbolResolvedCallback ) => {
23- var splitData = symbolName . split ( / [: / ] / ) ;
24- var projectTitle = localStorage . getItem ( "project_title" ) ;
25- if ( ! projectTitle ) {
26- projectTitle = "Crypto exchange" ;
27- }
28- var symbolStub = {
29- name : symbolName ,
30- description : "" ,
31- type : "crypto" ,
32- session : "24x7" ,
33- timezone : "Etc/UTC" ,
34- has_empty_bars : true ,
35- ticker : symbolName ,
36- exchange : projectTitle ,
37- minmov : 1 ,
38- pricescale : 100000 ,
39- has_intraday : true ,
40- intraday_multipliers : [ "1" , "60" ] ,
41- supported_resolution : supportedResolutions ,
42- volume_precision : 8 ,
43- data_status : "streaming" ,
44- } ;
45- if ( splitData [ 1 ] . match ( / U S D | E U R | R U B | J P Y | A U D | G B P | K R W | C N Y / ) ) {
46- symbolStub . pricescale = 100 ;
47- }
48- setTimeout ( function ( ) {
49- onSymbolResolvedCallback ( symbolStub ) ;
50- } , 0 ) ;
51- } ,
52- getBars : function ( symbolInfo , resolution , periodParams , onHistoryCallback ) {
53- historyProvider
54- . getBars ( symbolInfo , resolution , periodParams . from , periodParams . to )
55- . then ( async ( data ) => {
56- let ohlc = [ ] ;
57- let dataLength = data . data [ "records" ] . length ;
58- let i = 0 ;
59- for ( i ; i < dataLength ; i += 1 ) {
60- if ( data . data [ "records" ] [ i ] [ 1 ] > 0 ) {
61- ohlc . push ( {
62- time : data . data [ "records" ] [ i ] [ 0 ] , // the date
63- open : data . data [ "records" ] [ i ] [ 4 ] , // open
64- high : data . data [ "records" ] [ i ] [ 1 ] , // high
65- low : data . data [ "records" ] [ i ] [ 2 ] , // low
66- close : data . data [ "records" ] [ i ] [ 5 ] , // close
67- volume : data . data [ "records" ] [ i ] [ 3 ] , // volume
68- } ) ;
18+ export default ( precision = null ) => {
19+ return {
20+ onReady : ( cb ) => {
21+ setTimeout ( ( ) => cb ( config ) , 0 ) ;
22+ } ,
23+ resolveSymbol : ( symbolName , onSymbolResolvedCallback ) => {
24+ var projectTitle = localStorage . getItem ( "project_title" ) ;
25+ if ( ! projectTitle ) {
26+ projectTitle = "Crypto exchange" ;
27+ }
28+ var symbolStub = {
29+ name : symbolName ,
30+ description : "" ,
31+ type : "crypto" ,
32+ session : "24x7" ,
33+ timezone : "Etc/UTC" ,
34+ has_empty_bars : true ,
35+ ticker : symbolName ,
36+ exchange : projectTitle ,
37+ minmov : 1 ,
38+ pricescale : Math . round ( 1 / ( precision || 0.01 ) ) ,
39+ has_intraday : true ,
40+ intraday_multipliers : [ "1" , "60" ] ,
41+ supported_resolution : supportedResolutions ,
42+ volume_precision : 8 ,
43+ data_status : "streaming" ,
44+ } ;
45+ setTimeout ( function ( ) {
46+ onSymbolResolvedCallback ( symbolStub ) ;
47+ } , 0 ) ;
48+ } ,
49+ getBars : function (
50+ symbolInfo ,
51+ resolution ,
52+ periodParams ,
53+ onHistoryCallback
54+ ) {
55+ historyProvider
56+ . getBars ( symbolInfo , resolution , periodParams . from , periodParams . to )
57+ . then ( async ( data ) => {
58+ let ohlc = [ ] ;
59+ let dataLength = data . data [ "records" ] . length ;
60+ let i = 0 ;
61+ for ( i ; i < dataLength ; i += 1 ) {
62+ if ( data . data [ "records" ] [ i ] [ 1 ] > 0 ) {
63+ ohlc . push ( {
64+ time : data . data [ "records" ] [ i ] [ 0 ] , // the date
65+ open : data . data [ "records" ] [ i ] [ 4 ] , // open
66+ high : data . data [ "records" ] [ i ] [ 1 ] , // high
67+ low : data . data [ "records" ] [ i ] [ 2 ] , // low
68+ close : data . data [ "records" ] [ i ] [ 5 ] , // close
69+ volume : data . data [ "records" ] [ i ] [ 3 ] , // volume
70+ } ) ;
71+ }
72+ }
73+ historyProvider . history [ symbolInfo . name ] = {
74+ lastBar : ohlc [ ohlc . length - 1 ] ,
75+ } ;
76+ if ( ohlc . length ) {
77+ onHistoryCallback ( ohlc , { noData : false } ) ;
78+ } else {
79+ onHistoryCallback ( ohlc , { noData : true } ) ;
6980 }
70- }
71- historyProvider . history [ symbolInfo . name ] = {
72- lastBar : ohlc [ ohlc . length - 1 ] ,
73- } ;
74- if ( ohlc . length ) {
75- onHistoryCallback ( ohlc , { noData : false } ) ;
76- } else {
77- onHistoryCallback ( ohlc , { noData : true } ) ;
78- }
79- } ) ;
80- } ,
81- subscribeBars : (
82- symbolInfo ,
83- resolution ,
84- onRealtimeCallback ,
85- subscribeUID ,
86- onResetCacheNeededCallback
87- ) => {
88- stream . subscribeBars (
81+ } ) ;
82+ } ,
83+ subscribeBars : (
8984 symbolInfo ,
9085 resolution ,
9186 onRealtimeCallback ,
9287 subscribeUID ,
9388 onResetCacheNeededCallback
94- ) ;
95- } ,
96- unsubscribeBars : ( ) => {
97- stream . unsubscribeBars ( ) ;
98- } ,
89+ ) => {
90+ stream . subscribeBars (
91+ symbolInfo ,
92+ resolution ,
93+ onRealtimeCallback ,
94+ subscribeUID ,
95+ onResetCacheNeededCallback
96+ ) ;
97+ } ,
98+ unsubscribeBars : ( ) => {
99+ stream . unsubscribeBars ( ) ;
100+ } ,
101+ } ;
99102} ;
0 commit comments