Пример #1
0
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均线')
Пример #3
0
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()
Пример #4
0
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'])
Пример #5
0
# -*- 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')
Пример #6
0
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)
Пример #7
0
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()
Пример #8
0
                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()
Пример #9
0
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()
Пример #10
0
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)
Пример #11
0
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')
Пример #13
0
# -*- 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')
Пример #14
0
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()
    '''
Пример #15
0
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()
    '''