## Package for analyzing and visualizing financial time-series data
Developed by Poonam Deshmukh (c) 2023.
---
#### Requirements
`pyfin_trading` would need the following libraries to be installed
- `pandas`
- `numpy`
- `yfinance`
- `datetime`
#### Installation
You can install it via pip:
```bash
pip install pyfin-trading
```
#### Modules
- `stock_data`
- `stats`
- `indicators`
### 1. stock_data
This module majorly helps with getting stock data and can be accessed as follows:
```python
from pyfin_trading import stock_data as sd
df = sd.get_data(ticker, start_date, end_date, interval)
```
<br> - Input ticker symbol along with its corresponding exchange. <br> - Format for start_date & end_date must be "%Y-%m-%d" <br> - By default end_date is set to today <br> - Interval can take values like "1m", "2m", "5m", "15m", "30m", "60m", "90m", "1h", "1d", "5d", "1wk", "1mo", "3mo" <br> where m = minute, h = hour, d = day, wk = week, mo = month <br> - By default interval is set to "1d"
### Example
```python
df = sd.get_data("ITC.NS", "2023-11-06")
```
This will return ITC's data from NSE spanning from 6th Nov 2023 to present day with interval set to daily
### 2. stats
It helps with calculating returns as well as some financial ratios:
```python
from pyfin_trading import stats as st
returns = st.calculate_returns(df) # Calculates Daily & Cumulative Returns
st.beta(df, market, interval)
st.volatility(df, trading_days = 252) # Calculates SD & Annualized Volatility
st.sharpe(df, risk, trading_days = 252) # Sharpe Ratio
st.sortino(df, risk, trading_days = 252) # Sortino Ratio
st.alpha(df, market, interval, beta, risk)
st.treynor(df, beta, risk, trading_days = 252) # Treynor Ratio
st.info(df, market, interval, risk, trading_days = 252) # Information Ratio
```
<br> - By default Nifty 50 is used as a proxy for the market i.e. "^NSEI"
### 3. indicators
For calculating technical indicators:
```python
from pyfin_trading import indicators as pt
pt.sma(df, sma_period = 15)
pt.ema(df, ema_period = 15, adjust = False)
pt.rsi(df, rsi_period = 14)
pt.connors_rsi(df, rsi_period = 14, updown_length = 2)
pt.stoch(df, k = 14, d = 3) # Stochastic Oscillator
pt.bollinger_bands(df, sma_period = 20, std_dev = 2) # Bollinger Bands
pt.aroon(df, aroon_period = 25) # Aroon Oscillator
pt.macd(df, short_period = 12, long_period = 26, signal = 9, adjust = False) # Moving Average Convergence Divergence
pt.ichimoku_cloud(df, conversion = 9, base = 26, lead_b = 52) # Ichimoku Cloud
```
---
Raw data
{
"_id": null,
"home_page": "",
"name": "pyfin-trading",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "python,finance,algorithmic trading,technical indicators",
"author": "Poonam Deshmukh",
"author_email": "poonamdeshmukh616@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/e6/76/74db70f780b72950324de5f0c68d6ec839bdfe32e655eed814d3a76615c1/pyfin_trading-1.0.0.tar.gz",
"platform": null,
"description": "## Package for analyzing and visualizing financial time-series data\n\nDeveloped by Poonam Deshmukh (c) 2023.\n\n---\n\n#### Requirements\n\n`pyfin_trading` would need the following libraries to be installed\n\n- `pandas`\n- `numpy`\n- `yfinance`\n- `datetime`\n\n\n#### Installation\n\nYou can install it via pip:\n\n```bash\npip install pyfin-trading\n```\n\n#### Modules\n- `stock_data`\n- `stats`\n- `indicators`\n\n### 1. stock_data\n\nThis module majorly helps with getting stock data and can be accessed as follows:\n\n```python\nfrom pyfin_trading import stock_data as sd\n\ndf = sd.get_data(ticker, start_date, end_date, interval)\n```\n<br> - Input ticker symbol along with its corresponding exchange. <br> - Format for start_date & end_date must be \"%Y-%m-%d\" <br> - By default end_date is set to today <br> - Interval can take values like \"1m\", \"2m\", \"5m\", \"15m\", \"30m\", \"60m\", \"90m\", \"1h\", \"1d\", \"5d\", \"1wk\", \"1mo\", \"3mo\" <br> where m = minute, h = hour, d = day, wk = week, mo = month <br> - By default interval is set to \"1d\"\n\n### Example\n```python\ndf = sd.get_data(\"ITC.NS\", \"2023-11-06\")\n```\nThis will return ITC's data from NSE spanning from 6th Nov 2023 to present day with interval set to daily\n\n### 2. stats\n\nIt helps with calculating returns as well as some financial ratios:\n\n```python\nfrom pyfin_trading import stats as st\n\nreturns = st.calculate_returns(df) # Calculates Daily & Cumulative Returns\nst.beta(df, market, interval)\nst.volatility(df, trading_days = 252) # Calculates SD & Annualized Volatility\nst.sharpe(df, risk, trading_days = 252) # Sharpe Ratio\nst.sortino(df, risk, trading_days = 252) # Sortino Ratio\nst.alpha(df, market, interval, beta, risk)\nst.treynor(df, beta, risk, trading_days = 252) # Treynor Ratio\nst.info(df, market, interval, risk, trading_days = 252) # Information Ratio\n```\n<br> - By default Nifty 50 is used as a proxy for the market i.e. \"^NSEI\"\n\n### 3. indicators\n\nFor calculating technical indicators:\n\n```python\nfrom pyfin_trading import indicators as pt\n\npt.sma(df, sma_period = 15) \npt.ema(df, ema_period = 15, adjust = False)\npt.rsi(df, rsi_period = 14)\npt.connors_rsi(df, rsi_period = 14, updown_length = 2)\npt.stoch(df, k = 14, d = 3) # Stochastic Oscillator\npt.bollinger_bands(df, sma_period = 20, std_dev = 2) # Bollinger Bands\npt.aroon(df, aroon_period = 25) # Aroon Oscillator\npt.macd(df, short_period = 12, long_period = 26, signal = 9, adjust = False) # Moving Average Convergence Divergence\npt.ichimoku_cloud(df, conversion = 9, base = 26, lead_b = 52) # Ichimoku Cloud\n```\n\n\n---\n",
"bugtrack_url": null,
"license": "",
"summary": "Making Finance easy in Python!",
"version": "1.0.0",
"project_urls": null,
"split_keywords": [
"python",
"finance",
"algorithmic trading",
"technical indicators"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e6c746bd979e23527578eb70cd19e741cabeba3632a84fba999066fe8a5740f4",
"md5": "ec0fc55bbb7928f055081b958b495eec",
"sha256": "612510050ea358ad486483c55fb587384e46d5f393bb773234ea6cb16a1a8454"
},
"downloads": -1,
"filename": "pyfin_trading-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ec0fc55bbb7928f055081b958b495eec",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5957,
"upload_time": "2023-12-26T14:57:46",
"upload_time_iso_8601": "2023-12-26T14:57:46.636687Z",
"url": "https://files.pythonhosted.org/packages/e6/c7/46bd979e23527578eb70cd19e741cabeba3632a84fba999066fe8a5740f4/pyfin_trading-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e67674db70f780b72950324de5f0c68d6ec839bdfe32e655eed814d3a76615c1",
"md5": "c027fa3142a4f729a07ca9a05e531c78",
"sha256": "7ef6d806fbeba9dc7bfd9beb3535942091a0efee907ba820a3550a4e3bccb36c"
},
"downloads": -1,
"filename": "pyfin_trading-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "c027fa3142a4f729a07ca9a05e531c78",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4977,
"upload_time": "2023-12-26T14:57:48",
"upload_time_iso_8601": "2023-12-26T14:57:48.438068Z",
"url": "https://files.pythonhosted.org/packages/e6/76/74db70f780b72950324de5f0c68d6ec839bdfe32e655eed814d3a76615c1/pyfin_trading-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-26 14:57:48",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pyfin-trading"
}