上穿函数用于判断上穿信号的有无。输入为两条信号,obj和ref,两者数据类型为python列表。主要判断obj是否上穿ref。
import talib as tl
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#上穿信号
#obj上穿ref,返回上穿位置索引
def upcross(obj, ref):
print(ref[0] < 1)
assert len(obj) == len(ref), '上穿信号输入维度不相等'
assert len(obj) > 1, '上穿信号长度至少为2'
res =[]
for i in range(1, len(obj)):
if obj[i-1] < ref[i-1] and obj[i] > ref[i]:
res.append(i)
#print(res)
return res
if __name__ == '__main__':
df = pd.read_csv('600029.SH.csv')
close = df.close.values
close_avg = tl.MA(close, 20)
res = upcross(close, close_avg)
print(res)
plt.plot(range(len(close)), close)
plt.plot(range(len(close_avg)), close_avg)
for r in res:
plt.axvline(r, ls="-.",c="r")
plt.legend(['close', 'close_avg'])
plt.show()
ps:
1、公众号实时查询股票涨幅,无需打开交易软件,方便查看;
2、量化知识和策略分享。
请关注“量化之窗”公众号,如有疑问,请在文章下方留言,欢迎使用!