# # 下準備 # ## サンプルデータの作成 # In[17]: import sys, os sys.path.append('../../common/') # In[18]: np.random.seed(9) from randomwalk import randomwalk df = randomwalk(60 * 24 * 90, freq='T', tick=0.01, start=pd.datetime(2017, 3, 20) ).resample('B').ohlc() + 115 # 90日分の1分足を日足に直す # ランダムウォークの作成。 # 詳しくは[pythonでローソク足(candle chart)の描画](http://qiita.com/u1and0/items/1d9afdb7216c3d2320ef)をご覧ください。 # ## pd.DataFrame型をStockDataFrame型に変換 # In[19]: from stockstats import StockDataFrame sdf = StockDataFrame(df.copy()) # # StockPlotクラスの使用方法
# conda install plotly # pip install stockstats # ``` # * User Moduleのstockplotについては過去記事も併せてご覧ください。今回は**指標の追加・削除ができるようになりました。** # * [Qiita - u1and0 / Plotlyでぐりぐり動かせる為替チャートを作る(1)](http://qiita.com/u1and0/items/e2273bd8e03c670be45a) # * [Qiita - u1and0 / plotlyでキャンドルチャートプロット](http://qiita.com/u1and0/items/0ebcf097a1d61c636eb9) # * random_walkについては[Qiita - u1and0 / pythonでローソク足(candle chart)の描画](http://qiita.com/u1and0/items/1d9afdb7216c3d2320ef) # ## サンプルデータの作成 # In[4]: # Make sample data np.random.seed(10) df = randomwalk( 60 * 60 * 24 * 90, freq='S', tick=0.01, start=pd.datetime( 2017, 3, 20)).resample('T').ohlc() + 115 # 90日分の1分足, 初期値が115 # ランダムな為替チャートを作成します。 # randomwalk関数で**2017/3/20からの1分足を90日分**作成します。 # ## インスタンス化 # In[5]: # Convert DataFrame as StockPlot fx = sp.StockPlot(df) # StockPlotクラスでインスタンス化します。 # # ローソク足の描画
import pandas as pd import sys sys.path.append('../common/') from stockplot import set_span from randomwalk import randomwalk n = 10 index = pd.date_range(pd.datetime(2017, 1, 1), pd.datetime(2018, 1, 1)) df = randomwalk(60 * 60 * 24 * 300, freq='S').resample('T').ohlc() # df = pd.DataFrame(np.random.randn(len(index), 4), index=index) print( '---TEST1---\n', set_span(df, start=pd.datetime(2017, 2, 1), end=pd.datetime(2017, 2, 11), freq='H')) print('---TEST2---\n', set_span(df, periods=n, end=pd.datetime(2017, 5, 1), freq='H')) print('---TEST3---\n', set_span(df, start=pd.datetime(2017, 2, 1), periods=n, freq='H')) print('---TEST4---\n', set_span(df, start='first', end='last', freq='H')) print('---TEST5---\n', set_span(df, start='first', periods=n, freq='H')) print('---TEST6---\n', set_span(df, end='last', periods=n, freq='H')) """ OUT ---TEST1--- DatetimeIndex(['2017-02-01 00:00:00', '2017-02-01 01:00:00', '2017-02-01 02:00:00', '2017-02-01 03:00:00', '2017-02-01 04:00:00', '2017-02-01 05:00:00', '2017-02-01 06:00:00', '2017-02-01 07:00:00', '2017-02-01 08:00:00', '2017-02-01 09:00:00', ... '2017-02-10 15:00:00', '2017-02-10 16:00:00',