Skip to content

Instantly share code, notes, and snippets.

@dalejung
Created June 26, 2013 02:59
Show Gist options
  • Save dalejung/5864433 to your computer and use it in GitHub Desktop.
Save dalejung/5864433 to your computer and use it in GitHub Desktop.
pandas-composition gaps 5864433 #notebook #trtools
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "pandas-composition gaps 5864433",
"notebook_path": "https://gist.github.com/5864433"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"from pandas_composition import UserFrame, UserSeries\n",
"import pandas as pd\n",
"import pandas.io.data as pdd\n",
"import IPython\n",
"IPython.core.pylabtools.figsize(20, 15)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from matplotlib.finance import candlestick\n",
"from itertools import izip\n",
"def ohlc(df, width=0.3, secondary_y=False,\n",
" *args, **kwargs):\n",
" \"\"\"\n",
" Takes a df and plots a candlestick. \n",
" \"\"\"\n",
" dates = df.index.to_pydatetime() \n",
" times = date2num(dates)\n",
" quotes = izip(times, df['Open'], df['Close'], df['High'], df['Low'])\n",
" ax = gca()\n",
" candlestick(ax, quotes, width=width, colorup='g')\n",
" return ax"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Indicator Subclass\n",
"==================\n",
"\n",
"We want a subclass that knows what datasource it was derived from and can plot accordingly."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"class StockData(UserFrame):\n",
" def __init__(self, *args, **kwargs):\n",
" symbol = kwargs.get('symbol', None)\n",
" self.symbol = symbol\n",
" \n",
" def ohlc(self):\n",
" \" plot candlestick \"\n",
" ax = ohlc(self, label=self.symbol)\n",
" ax.set_title(self.symbol)\n",
" return ax\n",
" \n",
" def get_gaps(df, offset=0):\n",
" \t\" when open is above or below the previous days range \" \n",
" \tgap_up = df.Open > (df.High.shift(1) + offset)\n",
" \tgap_down = df.Open < (df.Low.shift(1) - offset)\n",
" \tgaps = gap_up | gap_down\n",
" \treturn Indicator(gaps, source=df, name=\"Gaps\") \n",
" \n",
" def ma(self, period):\n",
" \" moving average \"\n",
" ma = pd.rolling_mean(df.Close, period)\n",
" ma = Indicator(ma, source=self, name='MA {period}'.format(period=period))\n",
" return ma\n",
" \n",
"class Indicator(UserSeries):\n",
" def __init__(self, *args, **kwargs):\n",
" source = kwargs.pop('source', None)\n",
" self.source = source\n",
"\n",
" def plot(self, source_col='Close', *args, **kwargs):\n",
" \" plot the indicator. source_col only used for markers \"\n",
" df = self.source\n",
" label = kwargs.get('label', None) or self.name # use Series.name\n",
" kwargs['label'] = label\n",
" \n",
" if self.dtype == bool: # plot markers for bool\n",
" \tsig = self * df[source_col]\n",
" \tsig[sig == 0] = np.nan\n",
" \t\tplot_date(sig.index.to_pydatetime(), sig.values, *args, **kwargs)\n",
" \telse:\n",
" plot(self.index.to_pydatetime(), self, *args, **kwargs)\n",
" \tlegend() "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df = pdd.get_data_yahoo('AAPL')\n",
"df = StockData(df, symbol='AAPL')"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.tail(30).ohlc()\n",
"df.get_gaps().tail(30).plot('Open', color='pink', markersize=10)\n",
"df.ma(30).tail(30).plot()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nihKgAAAAAChKgAIAAACgKAEKAAAAgKIEKAAAAACKEqAAAAAAKEqAAgAAAKAoAQoAAACAogQoAAAA\nAIoSoAAAAAAoSoACAAAAoCgBCgAAAICiBCgAAAAAihKgAAAAAChKgAIAAACgKAEKAAAAgKIEKAAA\nAACKEqAAAAAAKEqAAgAAAKAoAQoAAACAogQoAAAAAIoSoAAAAAAoSoACAAAAoCgBCgAAAICiBCgA\nAAAAihKgAAAAAChKgAIAAACgKAEKAAAAgKIEKAAAAACKEqAAAAAAKEqAAgAAAKAoAQoAAACAogQo\nAAAAAIoSoAAAAAAoSoACAAAAoCgBCgAAAICiBCgAAAAAihKgAAAAAChKgAIAAACgKAEKAAAAgKIE\nKAAAAACKEqAAAAAAKEqAAgAAAKAoAQoAAACAogQoAAAAAIoSoAAAAAAoSoACAAAAoCgBCgAAAICi\nBCgAAAAAihKgAAAAAChKgAIAAACgKAEKAAAAgKIEKAAAAACKEqAAAAAAKEqAAgAAAKAoAQoAAACA\nogQoAAAAAIoSoAAAAAAoSoACAAAAoCgBCgAAAICiBCgAAAAAihKgAAAAAChKgAIAAACgKAEKAAAA\ngKIEKAAAAACKEqAAAAAAKEqAAgAAAKAoAQoAAACAogQoAAAAAIoSoAAAAAAoSoACAAAAoCgBCgAA\nAICiBCgAAAAAihKgAAAAAChKgAIAAACgKAEKAAAAgKIEKAAAAACKEqAAAAAAKEqAAgAAAKAoAQoA\nAACAogQoAAAAAIrqswFq2bJltR4BivIzzkDnZ5yBzM83A52fcQY6P+MMZH3157tbAaqzszMXXnhh\nzjvvvLS0tOTaa69NkqxZsyYTJ07Mm9/85kyfPj1bt27d/Tlz587NmDFjcuaZZ2bp0qWv+j366h8Y\n9BY/4wx0fsYZyPx8M9D5GWeg8zPOQNZXf767FaDq6+vzox/9KD//+c/z8MMP50c/+lF+8pOf5Oqr\nr84tt9yShx9+OO95z3syb968JElbW1vuuuuutLW1ZcmSJbnmmmuyc+fOXn0hAAAAAPRN3V6C19DQ\nkCTZvn17duzYkeOOOy5r167N29/+9iTJtGnT8t3vfjdJsnDhwsyYMSNDhw5Nc3NzRo8endWrV/fC\n+AAAAAD0eZVu2rFjR2Xs2LGVY489tvKJT3yiUqlUKpMmTarcfffdlUqlUvnCF75QaWxsrFQqlcqf\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x10bea8590>"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment