[第23天]理财达人Mx. Ada-KDJ指标

前言

本文说明KDJ技术指标。

KDJ指标

KDJ指标运用一段期间内的收盘价、最高价和最低价三个元素,来衡量股价与正常范围的变异程度KD,藉此可以判断是否要进场、退场。
介於20~80 K>D多头可以进场;J<0 底部;J>100头部。

程序实作

import pandas as pd
import yfinance as yf
import datetime as dt

def kdj(df):
  low_list = df["Close"].rolling(9, min_periods=1).min()
  high_list = df["High"].rolling(9, min_periods=1).max()
  #RSV=(第n天的收盘价-最近n天内的最低价)÷(最近n天内的最高价-最近n天内的最低价)*100
  rsv = (df["Close"] - low_list) / (high_list - low_list) * 100
  #2/3*前一天的K值+1/3*当日RSV
  df["K"] = rsv.ewm(com=2, adjust=False).mean()
  #2/3*前一天的D值+1/3*当日的K值
  df["D"] = df["K"].ewm(com=2, adjust=False).mean()
  #3D-2K
  df["J"] = 3 * df["K"] - 2 * df["D"]
  return df

# 开始时间
start=dt.datetime.today()-dt.timedelta(9)
# 结束时间
end=dt.datetime.today()
# 台股
df_2603=pd.DataFrame(yf.download("2603.TW", start=start, end=end))
print("df_2603:\n",df_2603)
kdj_df = kdj(df_2603)
print("kdj_df:\n" ,kdj_df)

程序执行结果

https://ithelp.ithome.com.tw/upload/images/20211008/20107143JO1tZ2at3k.png

小结

使用yfinance取得个股历史资料及进行KDJ指标计算。


<<:  【Day23】隐写技术 ─ 工具实作篇(二)

>>:  [C 语言笔记--Day27] 6.S081 Lab syscall: Sysinfo ( I )

Day 09 : 用於生产的机械学习 - 定义范畴 Scope

在 Day 05 ML 专案生命周期介绍分为 4 个阶段与 7 大主题,第 1 个阶段为「定义范畴...

Day08:部门与工程团队间协作的技巧(下)

一、前言   承上一篇的部门与工程团队间协作的技巧(上)已有稍微提到一些工程师间的协作软件工具,那如...

DAY22 这边先帮你上一个按钮喔~(四)

「欸!?阿按了这个按钮怎麽没反应阿?」 这是我妈最常问我的问题,大部分情况都是她遥控器忘记装电池。 ...

【Day 30】总结

终於写完三十天,原本中途二十天就想放弃了,每天嚷嚷可不可以不要继续了。 原以为自己做的东西很多,很够...

Wrapping up

终於来到最後一篇了!不经不觉已经写了三十篇文章。我们由 Ktor client 接驳 API 一直讲...