@@ -21,9 +21,9 @@ export default (chart, newData, indicatorConfs) => {
2121 const seriesDataByIndicators = indicatorConfs . map ( conf => {
2222 switch ( conf . class . toLowerCase ( ) ) {
2323 case 'sma' :
24- return [ simpleMovingAverageArray ( yData , conf ) ] ;
24+ return [ { name : 'Simple moving average' , data : simpleMovingAverageArray ( yData , conf ) } ] ;
2525 case 'ema' :
26- return [ exponentialMovingAverageArray ( yData , conf ) ] ;
26+ return [ { name : 'Exponential moving average' , data : exponentialMovingAverageArray ( yData , conf ) } ] ;
2727 case 'bb' : {
2828 const bbData = bollingerBandsArray ( yData , conf ) ;
2929 const middle = [ ] ;
@@ -36,27 +36,34 @@ export default (chart, newData, indicatorConfs) => {
3636 lower . push ( d [ 2 ] ) ;
3737 } ) ;
3838
39- return [ middle , upper , lower ] ;
39+ return [
40+ { name : 'Bollinger band' , data : middle } ,
41+ { name : 'Bollinger band' , data : upper } ,
42+ { name : 'Bollinger band' , data : lower }
43+ ] ;
4044 }
4145 default :
4246 return [ ] ;
4347 }
4448 } ) ;
4549
46- const flattenSeriesData = [ ] . concat ( ...seriesDataByIndicators ) ;
50+ const flattenIndicatorsData = [ ] . concat ( ...seriesDataByIndicators ) ;
4751
4852 indicatorsSeriesPoolIds . forEach ( ( seriesId , idx ) => {
49- const seriesData = flattenSeriesData [ idx ] ;
53+ const indicatorObj = flattenIndicatorsData [ idx ] ;
5054 const indicatorSeries = chart . get ( seriesId ) ;
5155
52- if ( ! seriesData ) {
56+ if ( ! indicatorObj ) {
5357 indicatorSeries . setData ( [ ] , false ) ;
5458 return ;
5559 }
5660
61+ const seriesData = indicatorObj . data ;
62+
5763 const indexOffset = newData . length - seriesData . length ;
5864
5965 const indicatorData = seriesData . map ( ( y , i ) => [ + newData [ i + indexOffset ] . epoch * 1000 , y ] ) ;
6066 indicatorSeries . setData ( indicatorData , false ) ;
67+ indicatorSeries . update ( { name : indicatorObj . name } , false ) ;
6168 } ) ;
6269} ;
0 commit comments