python调用通达信公式_对照通达信一些指标的Python实现
行情軟件里習(xí)慣了通達(dá)信的簡(jiǎn)介,雖然很多時(shí)候還是要依賴(lài)大智慧,但平時(shí)看圖形基本都是用通達(dá)信。因此在有時(shí)候做數(shù)據(jù)分析的時(shí)候,不可避免的需要再次的實(shí)現(xiàn)一些指標(biāo)功能,所以在Python里整理了一下,寫(xiě)了部分的指標(biāo)工具。
# 威廉指標(biāo)
def williams(df, n, column='williams'):
# 100*(10日內(nèi)最高價(jià)的最高值-收盤(pán)價(jià))/(10日內(nèi)最高價(jià)的最高值-10日內(nèi)最低價(jià)的最低值)
for i in range(len(df)):
if i < n-1: continue
df.ix[i, column] = 100 * (df.high.values[i-n+1:i+1].max()-df.close.values[i])/(
df.high.values[i-n+1:i+1].max()-df.low.values[i-n+1:i+1].min())
return df
# 布林指標(biāo)
def bollinger(df,n):
for i in range(len(df)):
if i < n-1: continue
df.ix[i, 'BOLL'] = df.close.values[i-n+1:i+1].mean()
df.ix[i, 'UB'] = df.ix[i, 'BOLL'] + 2 * numpy.std(df.close.values[i-n+1:i+1], ddof=1)
df.ix[i, 'LB'] = df.ix[i, 'BOLL'] - 2 * numpy.std(df.close.values[i-n+1:i+1], ddof=1)
return df
# 軌道線(xiàn)
def ene(df,n,m1,m2):
for i in range(len(df)):
if i < n-1: continue
df.ix[i, 'UPPER'] = (1+m1/100)*df.close.values[i-n+1:i+1].mean()
df.ix[i, 'LOWER'] = (1-m2/100)*df.close.values[i-n+1:i+1].mean()
df.ix[i, 'ENE'] = (df.ix[i, 'UPPER'] + df.ix[i, 'LOWER'])/2
return df
def kdj(df,n,m1,m2):
for i in range(len(df)):
if i < n-1: continue
df.ix[i, 'rsv'] = (df.close.values[i]-df.low.values[i-n+1:i+1].min()) / (df.high.values[i-n+1:i+1].max()-df.low.values[i-n+1:i+1].min())*100
df = getSMA(df,m1,1,'rsv','K')
df = getSMA(df,m2,1,'K','D')
for i in range(len(df)):
df.ix[i, 'J'] = 3*df.K.values[i] - 2*df.D.values[i]
return df
所有數(shù)據(jù)都是Dataframe類(lèi)型,以時(shí)間為Index順序排列。關(guān)于getSMA這個(gè)函數(shù)可以在本博另一帖子《
行情軟件里的平均函數(shù)以及Python的實(shí)現(xiàn)》中可以找到。
總結(jié)
以上是生活随笔為你收集整理的python调用通达信公式_对照通达信一些指标的Python实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python外星人入侵游戏代码_Pyth
- 下一篇: python速成一小时_Python学习