SynthesizeAnalyseWave
メモ
株価変動の分解と合成
元の株価変動を、以下の4つの★に分解する
★ A : 元値の75日平均
B : 元値 - A
★ C : Bの25日平均
D : B - C
★ E : Dの5日平均
★ F : D - E(最終的な日足の値)
# 配列計算
import pandas as pd
import numpy
# グラフ描画
import matplotlib as mpl
import matplotlib.pyplot as plt
csv_data = pd.read_csv('./4719_all.csv',
header=0,
encoding="shift-jis")
"""
N日平均を求め、列追加する.
値がNaNとなった行(先頭からN-1行)は削除する.
Parameters
----------
df : pandas.DataFrame
target_column : N日平均を求める列
result_column : 計算結果の列
days : 平均を求める日数(N)
"""
def appendAverageColumn(df, target_column, result_column, days):
df[result_column] = df[target_column].rolling(window=days).mean()
return(df[days-1:])
# debug OK
# print(csv_data) # => [2386 rows x 7 columns]
# print(appendAverageColumn(csv_data, '終値調整値', 'A', 75)) # => [2312 rows x 8 columns]
"""
(列1 - 列2)の差を求め、列追加する.
Parameters
----------
df : pandas.DataFrame
column1 : 減算される列
column2 : 減算する列
result_column : 計算結果の列
"""
def appendDiffColumn(df, column1, column2, result_column):
df2 = df.copy()
df2[result_column] = df2.loc[:,[column2, column1]].astype('float32').diff(axis=1).loc[:,[column1]]
return(df2)
# debug OK
# df2 = appendAverageColumn(csv_data, '終値調整値', 'A', 75)
# print(df2) # => [2312 rows x 8 columns]
# print(appendDiffColumn(df2, '終値調整値', 'A', 'B')) # => [2312 rows x 9 columns]
def analyse4waves(df, days1, days2, days3):
appendAverageColumn(df, '終値調整値', result_column, days)
メモ
株価変動の分解と合成
元の株価変動を、以下の4つの★に分解する
★ A : 元値の75日平均
B : 元値 - A
★ C : Bの25日平均
D : B - C
★ E : Dの5日平均
★ F : D - E(最終的な日足の値)
# 配列計算
import pandas as pd
import numpy
# グラフ描画
import matplotlib as mpl
import matplotlib.pyplot as plt
csv_data = pd.read_csv('./4719_all.csv',
header=0,
encoding="shift-jis")
"""
N日平均を求め、列追加する.
値がNaNとなった行(先頭からN-1行)は削除する.
Parameters
----------
df : pandas.DataFrame
target_column : N日平均を求める列
result_column : 計算結果の列
days : 平均を求める日数(N)
"""
def appendAverageColumn(df, target_column, result_column, days):
df[result_column] = df[target_column].rolling(window=days).mean()
return(df[days-1:])
# debug OK
# print(csv_data) # => [2386 rows x 7 columns]
# print(appendAverageColumn(csv_data, '終値調整値', 'A', 75)) # => [2312 rows x 8 columns]
"""
(列1 - 列2)の差を求め、列追加する.
Parameters
----------
df : pandas.DataFrame
column1 : 減算される列
column2 : 減算する列
result_column : 計算結果の列
"""
def appendDiffColumn(df, column1, column2, result_column):
df2 = df.copy()
df2[result_column] = df2.loc[:,[column2, column1]].astype('float32').diff(axis=1).loc[:,[column1]]
return(df2)
# debug OK
# df2 = appendAverageColumn(csv_data, '終値調整値', 'A', 75)
# print(df2) # => [2312 rows x 8 columns]
# print(appendDiffColumn(df2, '終値調整値', 'A', 'B')) # => [2312 rows x 9 columns]
def analyse4waves(df, days1, days2, days3):
appendAverageColumn(df, '終値調整値', result_column, days)