前提・実現したいこと
日々の株価の、各移動平均線の上下の位置関係を判別するコードをPythonで書きたいです。
前提としては、各日ごとの株価データはあり、それをもとに移動平均の数値を計算しています。その数値(計算式)を使ってif文で大小を比較し、それをデータフレームに反映させたいと考えているのですが、うまく表現できずに困っています。
発生している問題・エラーメッセージ
if文がうまく書けません。
該当のソースコード
# 指数平滑移動平均計算 def calc_ema(prices, period): ema = np.zeros(len(prices)) ema[:] = np.nan # NaN で初期化 ema[period-1] = prices[:period].mean() # 最初だけ単純移動平均 for d in range(period, len(prices)): ema[d] = (ema[d-1] * (period - 1) + prices[d] * 2) / (period + 1) return ema df['ema5'] = calc_ema(df.close, 5) df['ema20'] = calc_ema(df.close, 20) df['ema40'] = calc_ema(df.close, 40) この計算をもとに、 ema5 > ema20 > ema40なら「1」と返して、ema20 > ema5 > ema40なら「2」と返して… などとしたいができない、という状況です。どなたか、シンプルに書ける方法を教えていただけると助かります。よろしくお願いします。
試したこと
(上記記載済み)
補足情報(FW/ツールのバージョンなど)
(特になし)
pandas の質問をする際はサンプルデータを提示してください
回答1件
あなたの回答
tips
プレビュー