トレンドとは何か?
- そもそもトレンドとは何か。
- ここでは単調非減少あるいは単調非増加列としてトレンドを定義する。
import pandas as pd import numpy as np from scipy import stats from matplotlib import pylab as plt import seaborn as sns sns.set() sns.set_style("darkgrid") import math import pymc3 as pm fx_data = pd.read_csv("/Users/ユーザー名/Documents/FX/foreign_exchange_historical_data/USDJPY/USDJPY_DAY.csv")#データの読み込み #pandasの計算は遅いので、全てnumpy配列に変換 opening = np.array(fx_data["opening"])#始値 high = np.array(fx_data["high"])#高値 low = np.array(fx_data["low"])#低音 closing = np.array(fx_data["closing"])#終値 trend = 1#いくつに分割されるのか調べるので、最初から0ではなく1としておく up_trend = 0 down_trend = 0 prev = closing[0] state = "na" for i in range(1, len(closing)): prev = closing[i-1] current = closing[i] if current > prev: if state == "dec": trend += 1 down_trend += 1 state = "na" else: state = "inc" elif current < prev: if state == "inc": trend += 1 up_trend += 1 state = "na" else: state = "dec"
- 結果はこちら
print(trend, up_trend, down_trend) 1117 542, 574
- 上昇トレンドと下落トレンドの比率は542:574でほぼ1:1として良い。
- また、全日数とトレンドの割合は
trend/len(closing) 0.34023758757234235
となる。これから、トレンドの平均日数の期待値は、この逆数をとって、約2.94日であることもわかる。