只是根據K,D形成金叉死叉進行買賣。
KDJ概念¶
KDJ指標又叫隨機指標,是一種相當新穎、實用的技術分析指標,它起先用於期貨市場的分析,後被廣泛用於股市的中短期趨勢分析,是期貨和股票市場上最常用的技術分析工具。
KDJ計算方法¶
KDJ的計算比較複雜,首先要計算周期(n日、n周等)的RSV值,即未成熟隨機指標值,然後再計算K值、D值、J值等。
以n日KDJ數值的計算為例,其計算公式為
n日RSV=(Cn-Ln)/(Hn-Ln)×100
公式中,Cn為第n日收盤價;Ln為n日內的最低價;Hn為n日內的最高價。
其次,計算K值與D值:
當日K值=2/3×前一日K值+1/3×當日RSV 當日D值=2/3×前一日D值+1/3×當日K值
若無前一日K 值與D值,則可分別用50來代替。
J值=3*當日K值-2*當日D值
以9日為周期的KD線為例,即未成熟隨機值,計算公式為
9日RSV=(C-L9)÷(H9-L9)×100
公式中,C為第9日的收盤價;L9為9日內的最低價;H9為9日內的最高價。
K值=2/3×第8日K值+1/3×第9日RSV D值=2/3×第8日D值+1/3×第9日K值 J值=3*第9日K值-2*第9日D值
若無前一日K值與D值,則可以分別用50代替。
JQuant中的KD函數,語法如下:
KD(security_list, check_date, N=9, M1=3, M2=3)
注意,在使用前必須導入technical_analysis包
函數解析:
Signature: KD(security_list, check_date, N=9, M1=3, M2=3)
Docstring:
計算公式:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); RSV賦值:(收盤價-N日內最低價的最低值)/(N日內最高價的最高值-N日內最低價的最低值)100 輸出K:RSV的M1日[1日權重]移動平均 輸出D:K的M2日[1日權重]移動平均
輸入:
security_list:股票列表 check_date:要查詢數據的日期 N:統計的天數 N M1:統計的天數 M1 M2:統計的天數 M2
輸出:
K和D 的值。
輸出結果類型:
字典(dict):鍵(key)為股票代碼,值(value)為數據。 File: /opt/conda/lib/python3.5/site-packages/jqlib/technical_analysis.py Type: function
from jqlib.technical_analysis import *#定義股票列表池security_list = '000001.XSHE'#計算並輸出security_list的KD值K, D = KD(security_list = security_list,check_date = '2018-10-30',N = 9,M1 =3,M2=3)print("kdj 指標的k值:",K)print('kdf is 指標中的D::',D)
kdj 指標的k值: {'000001.XSHE': 67.55597260529946} kdf is d: {'000001.XSHE': 68.7597395019035}
KDJ應用:¶
KDJ適合做短線,比較好的搭檔有MACD和RSI。KD值在80以上,則進入超賣區,進入20以下,則進入超買區
K線向上穿越D線時,形成金叉,如果能在20附近形成金叉,則買入信息強烈
K線向下這穿越D線時,形成死叉,如果以80附近形成死叉,則賣出信號強烈
但我這里沒有設置具體的數值,只是在形成金叉的時候,利用全部資金全買,形成死叉的時候,利用全部資金全賣,操作的股票可以隨意更換。