git-svn-id: http://moon:8086/svn/projects/Stock@297 fda53097-d464-4ada-af97-ba876c37ca34
44 lines
837 B
Python
44 lines
837 B
Python
import pandas as pd
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
def ema(data, key, alpha=0.5, ic=None):
|
|
result = []
|
|
if ic is None:
|
|
r = data[key][0]
|
|
else:
|
|
r = ic
|
|
for v in data[key]:
|
|
r = alpha*r + (1-alpha)*v
|
|
result.append(r)
|
|
|
|
return np.array(result)
|
|
|
|
def colsum(data, keys):
|
|
result = np.zeros(data.shape[0])
|
|
for key in keys:
|
|
result += data[key]
|
|
|
|
return result
|
|
|
|
store = pd.HDFStore('test.h5')
|
|
if 1:
|
|
df = pd.DataFrame(np.array([[1, 2, 3, 101], [4, 5, 6, 102], [7, 8, 9, 103], [10, 11, 12, 104]]),columns=['high', 'low', 'open', 'close'])
|
|
store['df'] = df
|
|
else:
|
|
df = store['df']
|
|
|
|
df['ema(close)'] = ema(df, 'close')
|
|
df['colsum'] = colsum(df, ['high', 'low', 'open', 'close'])
|
|
df['ema(colsum)'] = ema(df, 'colsum')
|
|
|
|
# Print table
|
|
print(df)
|
|
|
|
# Plot graph
|
|
df.plot()
|
|
plt.legend()
|
|
plt.grid()
|
|
plt.show()
|
|
|
|
store.close() |