import utility.windutility as wu from datetime import date # future daily basis beginDate = '2016-12-16' endDate = date.today().strftime('%Y-%m-%d') indexPrice = wu.wsd('000905.SH', 'close', beginDate, endDate) futurePrice = wu.wsd('IC1701.CFE', 'close', beginDate, endDate) basis = futurePrice - indexPrice # basis.plot()
# -*- coding: utf-8 -*- import utility.windutility as wu import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import date, timedelta from pptx import Presentation # tracking 50ETF historical volatility and implied volatility startdate = '2008-1-1' enddate = date.today() # 豆油vs棕榈油 price1 = wu.wsd('Y.DCE', 'close', startdate, enddate) price2 = wu.wsd('P.DCE', 'close', startdate, enddate) logPrice1 = np.log(price1) logPrice2 = np.log(price2) spread = logPrice1 - logPrice2 plt.figure() spread['close'].plot(label = u'豆油 vs 棕榈油') mean = pd.rolling_mean(spread,60) mean['close'].plot(label = u'60均线') plt.legend() plt.savefig('D:\\reports\\pic\\1.png') plt.figure() spread['close'][-120:].plot(label = u'豆油 vs 棕榈油') mean = pd.rolling_mean(spread,20) mean['close'][-120:].plot(label = u'20均线')
import utility.windutility as wu from datetime import date # ticker = input('ticker') today = date.today() startdate = wu.tdaysoffset(-30, today) enddate = wu.tdaysoffset(-1, today) bars = wu.wsd('000001.SH','high, low, pre_close', startdate, enddate) bars['a'] = bars.high - bars.low bars['b'] = bars.high - bars.pre_close bars['c'] = bars.pre_close - bars.low bars1 = bars[['a','b','c']] bars['atr'] = bars1.max(axis = 1) writer = pd.ExcelWriter('D://reports//volatility.xlsx', engine='xlsxwriter') bars.to_excel(writer) writer.save()
import utility.windutility as wu from datetime import date import seaborn as sns today = date.today() startdate = wu.tdaysoffset(-120, today) enddate = wu.tdaysoffset(-1, today) bars = wu.wsd('000001.SH','open, close', startdate, enddate) bars['return'] = bars.close / bars.open - 1 sns.distplot(bars['return'])
# -*- coding: utf-8 -*- import utility.windutility as wu import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import date, timedelta from pptx import Presentation # tracking 50ETF historical volatility and implied volatility startdate = '2008-1-1' enddate = date.today() # 豆油vs棕榈油 price1 = wu.wsd('Y.DCE', 'close', startdate, enddate) price2 = wu.wsd('P.DCE', 'close', startdate, enddate) logPrice1 = np.log(price1) logPrice2 = np.log(price2) spread = logPrice1 - logPrice2 plt.figure() spread['close'].plot(label=u'豆油 vs 棕榈油') mean = pd.rolling_mean(spread, 60) mean['close'].plot(label=u'60均线') plt.legend() plt.savefig('D:\\reports\\pic\\1.png') plt.figure() spread['close'][-120:].plot(label=u'豆油 vs 棕榈油') mean = pd.rolling_mean(spread, 20) mean['close'][-120:].plot(label=u'20均线') plt.legend(loc='upper left')
from pyalgotrade import bar import utility.windutility as wu from utility import dataframefeed from strategy import singleMA from pyalgotrade.stratanalyzer import drawdown, sharpe, returns, trades import pandas as pd instrument = '000001.SH' fromDate = '20000101' toDate = '20160314' frequency = bar.Frequency.DAY initialCash = 1000000 filepath = 'D://strategyResults//timing//ma//test5.csv' dat = wu.wsd(instrument, 'open, high, low, close, volume, adjfactor', fromDate, toDate) dat['adjclose'] = dat['close'] * dat['adjfactor'] / dat['adjfactor'][-1] def run_strategy(paras): feed = dataframefeed.Feed() feed.addBarsFromDataFrame(instrument, dat) strat = singleMA.SingleMA(feed, instrument, paras, initialCash) # attach analyzersgc returnsAnalyzer = returns.Returns() strat.attachAnalyzer(returnsAnalyzer) drawdownAnalyzer = drawdown.DrawDown() strat.attachAnalyzer(drawdownAnalyzer) sharpeRatioAnalyzer = sharpe.SharpeRatio() strat.attachAnalyzer(sharpeRatioAnalyzer)
import utility.windutility as wu from datetime import date # ticker = input('ticker') today = date.today() startdate = wu.tdaysoffset(-30, today) enddate = wu.tdaysoffset(-1, today) bars = wu.wsd('000001.SH', 'high, low, pre_close', startdate, enddate) bars['a'] = bars.high - bars.low bars['b'] = bars.high - bars.pre_close bars['c'] = bars.pre_close - bars.low bars1 = bars[['a', 'b', 'c']] bars['atr'] = bars1.max(axis=1) writer = pd.ExcelWriter('D://reports//volatility.xlsx', engine='xlsxwriter') bars.to_excel(writer) writer.save()
print bars[self.__instrument].getDateTime(), bars[self.__instrument].getPrice() if __name__ == "__main__": strat = RSIReversal instrument = '510180.SH' fromDate = '20100416' toDate = '20150717' period = 6 plot = True #############################################don't change ############################33 import utility.windutility as wu from utility import dataframefeed data = wu.wsd(instrument, 'open, high, low, close, volume, adjfactor', fromDate, toDate) data['adjclose'] = data['close'] * data['adjfactor'] / data['adjfactor'][-1] feed = dataframefeed.Feed() feed.addBarsFromDataFrame(instrument, data) strat = strat(feed, instrument, period) if plot: plt = plotter.StrategyPlotter(strat, True, True, True) # rsi = strat.getRSI() # # print type(ma1) # plt.getInstrumentSubplot('indicator').addDataSeries("rsi", rsi) # position = strat.getTest() # plt.getOrCreateSubplot("position").addDataSeries("position", position) strat.run()
import utility.windutility as wu diff = wu.wsd("000001.SH", "MACD", "2014-11-01", "2016-02-18", "MACD_L=26;MACD_S=12;MACD_N=9;MACD_IO=1;Fill=Previous") dea = wu.wsd("000001.SH", "MACD", "2014-11-01", "2016-02-18", "MACD_L=26;MACD_S=12;MACD_N=9;MACD_IO=2;Fill=Previous") macd = diff - dea szzz = wu.wsd("000001.SH", "close", "2014-11-01", "2016-02-18") rt = szzz.pct_change() ind = macd.shift(1) ind.plot()
import utility.windutility as wu import numpy as np from datetime import date import talib tickerList = ['000001.SH'] # enddate = wu.tdaysoffset(-1, date.today()) enddate = date.today() startdate = wu.tdaysoffset(-240, date.today()) data = wu.wsd(tickerList, 'close', startdate, enddate) close = np.array(list(data['close'])) talib.MACD(close)
import utility.windutility as wu import numpy as np import talib import matplotlib.pyplot as plt szzz = wu.wsd("000001.SH", "close", "2016-1-1", "2016-6-21") szzz1 = np.array(szzz["close"]) diff, dea, macd = talib.MACD(szzz1)
# -*- coding: utf-8 -*- import utility.windutility as wu import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import date, timedelta from pptx import Presentation # tracking 50ETF historical volatility and implied volatility enddate = wu.tdaysoffset(-1, date.today()) startdate = enddate - timedelta(60) firstdate = date(2015,12,31) sh510050 = wu.wsd('000016.SH', 'close', startdate, enddate) sh510050['ret'] = sh510050['close'].pct_change() sh510050['vol_10d'] = pd.rolling_std(sh510050['ret'], window = 10) * np.sqrt(240) sh510050['vol_20d'] = pd.rolling_std(sh510050['ret'], window = 20) * np.sqrt(240) ivix = wu.wsd('IVIX.SH', 'close', startdate, enddate) / 100 # pic 1: price vs implied volatility plt.figure() sh510050['close'].plot(label = u'上证50') ivix['close'].plot(label = 'IVIX', secondary_y = True) plt.legend() plt.savefig('D:\\reports\\pic\\1.png') # pic 2: implied vol and rolling 5 day volatility plt.figure() sh510050['vol_10d'].plot(label = '10 days vol')
import utility.windutility as wu import numpy as np from datetime import date import matplotlib.pyplot as plt startdate = '2016-1-1' enddate = date.today() price1 = wu.wsd('000905.SH', 'close', startdate, enddate) price2 = wu.wsd('000016.SH', 'close', startdate, enddate) log_price1 = np.log(price1) log_price2 = np.log(price2) spread = log_price1 - log_price2 spread.plot() ''' years = range(2008,2017) yearlist = [str(year) for year in years] for year in yearlist: spread[year].plot() '''
import utility.windutility as wu import numpy as np from datetime import date import matplotlib.pyplot as plt startdate = '2005-1-1' enddate = date.today() price1 = wu.wsd('801120.SI', 'close', startdate, enddate) price2 = wu.wsd('000300.SH', 'close', startdate, enddate) log_price1 = np.log(price1) log_price2 = np.log(price2) spread = log_price1 - log_price2 spread.plot() ''' years = range(2008,2017) yearlist = [str(year) for year in years] for year in yearlist: spread[year].plot() '''