今回は指標とはちょっと違うかもしれませんが、平均足をお題に。ローソク足にした時にトレンドが把握しやすいよう始値・高値・安値・終値それぞれを調整したもので、国産の指標だそうです。詳しい説明は下記あたりを参照して下さい。
計算に使う株価データは毎度お馴染み、日経平均プロフィルさんから。CSV ファイルを読み出して Pandas データフレームに格納する処理のコードはシリーズ第1回目を参照ください。
平均足の計算方法は下記のとおりです。
平均足始値 = 前日始値と前日終値の中間値
平均足終値 = 当日の始値・高値・安値・終値の平均値
平均足高値 = 当日の平均足始値・平均足終値・高値の最大値
平均足安値 = 当日の平均足始値・平均足終値・安値の最小値
これだけなので、算出プログラムも今回は簡単ですな。
def calc_heikinashi(open, high, low, close): h_open = ((open + close) / 2).shift() h_close = (open + high + low + close) / 4 h_high = pd.concat([h_open, h_close, high], axis='columns').max(axis='columns') h_low = pd.concat([h_open, h_close, low], axis='columns').min(axis='columns') return h_open, h_high, h_low, h_close df['h_open'], df['h_high'], df['h_low'], df['h_close'] = calc_heikinashi(df.open, df.high, df.low, df.close)
では両者の直近250日ローソク足チャートを作画して比べてみましょー。上段が通常の日足、下段が平均足です。ご覧のとおり、平均足ではローソク本体のギャップが埋められるとともに、陽線・陰線が連続しやすくなっているのでトレンド途中の「踊り場」が視覚的に軽減され、判りやすくなった感じですね。
今回もコード一式と実行結果は Google Colaboratory でどうぞ↓。
https://colab.research.google.com/drive/10jXCUWqaYbyCCZmFiLsqON7u_gWWKMe6