欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python调用通达信公式_对照通达信一些指标的Python实现

发布时间:2025/3/19 python 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python调用通达信公式_对照通达信一些指标的Python实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

行情软件里习惯了通达信的简介,虽然很多时候还是要依赖大智慧,但平时看图形基本都是用通达信。因此在有时候做数据分析的时候,不可避免的需要再次的实现一些指标功能,所以在Python里整理了一下,写了部分的指标工具。

# 威廉指标

def williams(df, n, column='williams'):

# 100*(10日内最高价的最高值-收盘价)/(10日内最高价的最高值-10日内最低价的最低值)

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

# 布林指标

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

# 轨道线

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

所有数据都是Dataframe类型,以时间为Index顺序排列。关于getSMA这个函数可以在本博另一帖子《

行情软件里的平均函数以及Python的实现》中可以找到。

总结

以上是生活随笔为你收集整理的python调用通达信公式_对照通达信一些指标的Python实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。