首页 > 解决方案 > 填补烛台图范围突破之间的空白

问题描述

我有一个包含财务数据的数据框。我正在使用 Plotly 创建烛台布局,并希望结合一些其他指标来帮助诊断价格范围。

样本数据帧数据(df):

                         Open      High       Low    Close      Volume  \
DATE                                                                     
2017-09-25 10:00:00  249.2800  249.3700  249.2800  249.370     19123.0   
2017-09-25 11:00:00  249.3900  249.4500  249.3400  249.400     40853.0   
2017-09-25 12:00:00  249.4500  249.4500  249.1400  249.170    153004.0   
2017-09-25 13:00:00  249.1700  249.3400  249.0500  249.230   3963325.0   
2017-09-25 14:00:00  249.2201  249.5532  248.5700  248.605  10122404.0   
2017-09-25 15:00:00  248.6000  248.8200  248.0800  248.530   9098104.0   
2017-09-25 16:00:00  248.5400  248.7950  248.1600  248.695   5550874.0   
2017-09-25 17:00:00  248.6900  248.8800  248.5600  248.720   3687280.0   
2017-09-25 18:00:00  248.7300  248.8500  248.3800  248.650   5779563.0   
2017-09-25 19:00:00  248.6600  249.0100  248.5300  248.940  10731186.0   
2017-09-25 20:00:00  248.9400  249.3600  248.9300  249.330   5970611.0   
2017-09-25 21:00:00  249.3300  249.3500  248.7074  249.330    125453.0   
2017-09-25 22:00:00  249.3400  249.3700  249.2800  249.300     65436.0   
2017-09-25 23:00:00  249.3000  249.3200  249.1500  249.230     79118.0   
2017-09-26 08:00:00  249.2600  249.2600  249.0500  249.140     18100.0   
2017-09-26 09:00:00  249.1700  249.2300  249.1700  249.230      1000.0   
2017-09-26 10:00:00  249.2200  249.2700  249.2000  249.210     13173.0   
2017-09-26 11:00:00  249.1300  249.2300  249.0200  249.150    102716.0   
2017-09-26 12:00:00  249.1400  249.3900  249.0100  249.370    262505.0   
2017-09-26 13:00:00  249.3600  249.7000  249.3100  249.570   4968021.0   
2017-09-26 14:00:00  249.5800  249.6700  249.1100  249.140   5959137.0   
2017-09-26 15:00:00  249.1400  249.1950  248.8050  249.150   4724855.0   
2017-09-26 16:00:00  249.1500  249.3256  248.9900  249.190   5557655.0   
2017-09-26 17:00:00  249.1800  249.4900  249.1600  249.420   3901895.0   
2017-09-26 18:00:00  249.4200  249.4800  249.1700  249.240   5939215.0   
2017-09-26 19:00:00  249.2400  249.4400  248.9000  249.050  10846907.0   
2017-09-26 20:00:00  249.0700  249.2893  248.9700  249.040   8378370.0   
2017-09-26 21:00:00  249.0100  249.0600  248.9800  249.010     46410.0   
2017-09-26 22:00:00  249.0100  249.0500  248.9600  249.000     30602.0   
2017-09-26 23:00:00  249.0100  249.0800  249.0100  249.080     17352.0   

                            ema  \
DATE                             
2017-09-25 10:00:00         NaN  
2017-09-25 11:00:00         NaN  
2017-09-25 12:00:00         NaN  
2017-09-25 13:00:00         NaN  
2017-09-25 14:00:00         NaN  
2017-09-25 15:00:00         NaN  
2017-09-25 16:00:00         NaN  
2017-09-25 17:00:00         NaN  
2017-09-25 18:00:00         NaN  
2017-09-25 19:00:00         NaN  
2017-09-25 20:00:00         NaN  
2017-09-25 21:00:00         NaN  
2017-09-25 22:00:00         NaN  
2017-09-25 23:00:00         NaN  
2017-09-26 08:00:00         NaN  
2017-09-26 09:00:00         NaN  
2017-09-26 10:00:00         NaN  
2017-09-26 11:00:00         NaN  
2017-09-26 12:00:00         NaN  
2017-09-26 13:00:00  249.108500  
2017-09-26 14:00:00  249.111500  
2017-09-26 15:00:00  249.115167  
2017-09-26 16:00:00  249.122294  
2017-09-26 17:00:00  249.150647  
2017-09-26 18:00:00  249.159156  
2017-09-26 19:00:00  249.148761  
2017-09-26 20:00:00  249.138402  
2017-09-26 21:00:00  249.126174  
2017-09-26 22:00:00  249.114157  
2017-09-26 23:00:00  249.110904 

                            kc_upper  
DATE                             
2017-09-25 10:00:00         NaN  
2017-09-25 11:00:00         NaN  
2017-09-25 12:00:00         NaN  
2017-09-25 13:00:00         NaN  
2017-09-25 14:00:00         NaN  
2017-09-25 15:00:00         NaN  
2017-09-25 16:00:00         NaN  
2017-09-25 17:00:00         NaN  
2017-09-25 18:00:00         NaN  
2017-09-25 19:00:00         NaN  
2017-09-25 20:00:00         NaN  
2017-09-25 21:00:00         NaN  
2017-09-25 22:00:00         NaN  
2017-09-25 23:00:00         NaN  
2017-09-26 08:00:00         NaN  
2017-09-26 09:00:00         NaN  
2017-09-26 10:00:00         NaN  
2017-09-26 11:00:00         NaN  
2017-09-26 12:00:00         NaN  
2017-09-26 13:00:00  249.108500  
2017-09-26 14:00:00  249.111500  
2017-09-26 15:00:00  249.115167  
2017-09-26 16:00:00  249.122294  
2017-09-26 17:00:00  249.150647  
2017-09-26 18:00:00  249.159156  
2017-09-26 19:00:00  249.148761  
2017-09-26 20:00:00  249.138402  
2017-09-26 21:00:00  249.126174  
2017-09-26 22:00:00  249.114157  
2017-09-26 23:00:00  249.110904
 

然后我有以下代码:

import pandas as pd
import plotly.graph_objs as go
data = [go.Candlestick(x=df.index, open=df['Open'], high=df['High'], low=df['Low'], close=df['Close'])]
fig = go.Figure(data=data)
fig.update_layout(xaxis_rangeslider_visible=False)
fig.add_scatter(x=df.index, y=df['ema'], mode='lines')
fig.add_scatter(x=df.index, y=df['kc_lower'], mode='lines')

fig.update_xaxes(rangebreaks=[
        dict(bounds=["sat", "mon"]),  # hide weekends, apparently?
        dict(bounds=[16, 8], pattern="hour"),
        ]
)
fig.show()

这会产生以下图像:

在此处输入图像描述

但是,线路和数据“跳跃”。如何平滑这条线和数据以隐藏市场关闭的所有时间,同时确保图中的线对于线和烛台布局都是连续的?

先感谢您。

标签: pythonplotlycandlestick-chart

解决方案


推荐阅读