到目前已經透過 pandas 的 resample 和 rolling 以取得 K 棒和均線資訊,但還有一種指標是透過每根 K 棒的收價計算均線,一樣可以透過 resample 和 rolling 計算取得。
import pandas
import plotly.graph_objects
TXF_TICKS = pandas.read_csv('TXFJ9-20191001.csv')
TXF_TICKS = TXF_TICKS[1:]
TXF_TICKS = TXF_TICKS.rename(
columns={
'成交時間': 'time',
'成交價位': 'price'
}
)
TXF_TICKS = TXF_TICKS.filter([
'time',
'price'
], axis=1)
TXF_TICKS['time'] = pandas.to_datetime(TXF_TICKS['time'], format='%Y%m%d%H%M%S%f')
TXF_TICKS = TXF_TICKS.set_index('time')
# 1MINK
TXF_1MINK = TXF_TICKS['price'].resample('1MIN').ohlc()
# 1MINK 5MA
TXF_1MINK5MA = TXF_1MINK['close'].rolling('5MIN').mean()
# 1MINK 20MA
TXF_1MINK20MA = TXF_1MINK['close'].rolling('20MIN').mean()
figure = plotly.graph_objects.Figure(
data=[
# 1MIN K
plotly.graph_objects.Candlestick(
x=TXF_1MINK.index,
open=TXF_1MINK['open'],
high=TXF_1MINK['high'],
low=TXF_1MINK['low'],
close=TXF_1MINK['close'],
name='1MINK',
),
# 1MINK 5MA
plotly.graph_objects.Scatter(
x=TXF_1MINK5MA.index,
y=TXF_1MINK5MA,
name='1MINK 5MA',
mode='lines',
line=plotly.graph_objects.scatter.Line(
color='#E58B6B'
)
),
# 1MINK 20MA
plotly.graph_objects.Scatter(
x=TXF_1MINK20MA.index,
y=TXF_1MINK20MA,
name='1MINK 20MA',
mode='lines',
line=plotly.graph_objects.scatter.Line(
color='#6FC37B'
)
)
],
# 設定 XY 顯示格式
layout=plotly.graph_objects.Layout(
xaxis=plotly.graph_objects.layout.XAxis(
tickformat='%Y-%m-%d %H:%M'
),
yaxis=plotly.graph_objects.layout.YAxis(
tickformat='.2f'
)
)
)
figure.show()
日 K 收價均線就是 SMA 指標,所以會算分 K 收價均線就可用同樣的邏輯取得 SMA 指標
團隊系列文:
CSScoke - 金魚都能懂的這個網頁畫面怎麼切 - 金魚都能懂了你還怕學不會嗎
Clarence - LINE bot 好好玩 30 天玩轉 LINE API
Hina Hina - 陣列大亂鬥
King Tzeng - IoT沒那麼難!新手用JavaScript入門做自己的玩具
Vita Ora - 好 Js 不學嗎 !? JavaScript 入門中的入門。
TaTaMo - 用Python開發的網頁不能放到Github上?Lektor說可以!!