Skip to main content

A Package for Point and Figure Charting

Project description

logo

A Python Package for Point & Figure Charting

license Python Version PyPi Version Package Status


Installation

pip install pypnf

Usage

Quickstart using integrated time-series example

from pypnf import PointFigureChart
from pypnf import dataset

symbol = 'AAPL'  # or 'MSFT'

ts = dataset(symbol)

pnf = PointFigureChart(ts=ts, method='cl', reversal=2, boxsize=5, scaling='abs', title=symbol)

print(pnf)
Point & Figure (abs|cl) 5 x 2 | AAPL
---  -  -  -  -  -  -  -  ---
135  .  .  .  .  .  .  X  135
130  .  .  X  .  .  .  X  130
125  .  .  X  O  .  .  X  125
120  .  .  X  O  X  .  X  120
115  .  .  X  O  X  O  X  115
110  .  .  X  O  .  O  .  110
105  .  .  X  .  .  .  .  105
100  .  .  X  .  .  .  .  100
 95  .  .  X  .  .  .  .   95
 90  .  .  X  .  .  .  .   90
 85  .  .  X  .  .  .  .   85
 80  X  .  X  .  .  .  .   80
 75  X  O  X  .  .  .  .   75
 70  .  O  X  .  .  .  .   70
 65  .  O  X  .  .  .  .   65
 60  .  O  .  .  .  .  .   60
---  -  -  -  -  -  -  -  ---
printed 7/7 columns.
Plotting Point&Figure Charts
from pypnf import PointFigureChart
from pypnf import dataset

data = dataset('^SPX')

pnf = PointFigureChart(ts=data, method='h/l', reversal=2, boxsize=50, scaling='abs', title='^SPX')
pnf.bollinger(5, 2)
pnf.donchian(8,2)
pnf.psar(0.02, 0.2)
pnf.show()

chart

Quickstart using time-series data loaded via the external package yfinance

If the yfinance and/or pandas package is not yet installed use:

pip install pandas
pip install yfinance

In order to process the downloaded data with the PointFigureChart-class the time-series data needs to be prepared.

import yfinance as yf

symbol = 'AAPL'

data = yf.Ticker(symbol)
ts = data.history(start='2018-01-01', end='2018-06-30')

# reset index
ts.reset_index(level=0, inplace=True)

# convert pd.timestamp to string
ts['Date'] = ts['Date'].dt.strftime('%Y-%m-%d')

# select required keys
ts = ts[['Date','Open','High','Low','Close']]

# convert DataFrame to dictionary
ts = ts.to_dict('list')

Initiate the PointFigureChart object with the prepared data and chart parameter, get the trendlines and print the resulting Point and Figure Chart.

from pypnf import PointFigureChart

pnf = PointFigureChart(ts=ts, method='cl', reversal=3, boxsize=2, scaling='abs', title='AAPL')
pnf.get_trendlines()
print(pnf)
Point & Figure (abs|cl) 2 x 3 | AAPL
--  -  -  -  -  -  -  -  -  -  -  -  --
90  .  .  .  .  .  .  .  .  .  .  X  90
88  .  .  .  .  .  .  .  .  .  .  X  88
86  .  .  .  .  .  .  .  .  .  .  X  86
84  .  .  .  .  .  .  .  .  .  .  X  84
82  .  .  .  .  .  .  .  .  .  .  X  82
80  .  .  .  .  X  .  .  .  .  .  X  80
78  .  .  .  .  X  O  .  .  .  .  X  78
76  .  .  .  .  X  O  .  .  .  .  X  76
74  .  .  .  .  X  O  X  .  .  .  X  74
72  .  .  .  .  X  O  X  O  .  .  X  72
70  .  .  .  .  X  O  X  O  .  .  X  70
68  .  .  .  .  X  O  .  O  X  .  X  68
66  .  .  .  .  X  .  .  O  X  O  X  66
64  .  .  .  .  X  .  .  O  X  O  X  64
62  .  .  .  .  X  .  .  O  .  O  X  62
60  .  .  .  .  X  .  .  .  .  O  X  60
58  *  .  .  .  X  .  .  .  .  O  X  58
56  X  *  .  .  X  .  .  .  .  O  .  56
54  X  O  *  .  X  .  .  .  .  .  .  54
52  X  O  .  *  X  .  .  .  .  .  *  52
50  X  O  X  .  X  .  .  .  .  *  .  50
48  X  O  X  O  X  .  .  .  *  .  .  48
46  X  O  X  O  X  .  .  *  .  .  .  46
44  X  O  X  O  .  .  *  .  .  .  .  44
42  X  O  X  .  .  *  .  .  .  .  .  42
40  X  O  X  .  *  .  .  .  .  .  .  40
38  .  O  X  *  .  .  .  .  .  .  .  38
36  .  O  *  .  .  .  .  .  .  .  .  36
--  -  -  -  -  -  -  -  -  -  -  -  --
last trendline: bullish support line of length 10
printed 11/11 columns.

Literature

Weber, Zieg (2003) The Complete Guide to Point-and-Figure Charting - The new science of an old art. Harriman House, ISBN: 1-897-5972-82

du Plessis (2012) The Definitive Guide to Point and Figure: A Comprehensive Guide to the Theory and Practical Use of the Point and Figure Charting Method. 2nd Edition. Harriman House, ISBN: 978-0857192455

du Plessis (2015) 21st Century Point and Figure - New and advanced techniques for using Point and Figure charts. Harriman House, ISBN: 978-0857194428

Shah (2018) Trading the Markets the Point & Figure way : become a noiseless trader and achieve consistent success in markets. Notion Press, ISBN: 978-1642492248


Copyright

pyPnF is licensed under a GNU General Public License v2 (GPLv2).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypnf-0.9.tar.gz (189.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypnf-0.9-py3-none-any.whl (190.0 kB view details)

Uploaded Python 3

File details

Details for the file pypnf-0.9.tar.gz.

File metadata

  • Download URL: pypnf-0.9.tar.gz
  • Upload date:
  • Size: 189.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pypnf-0.9.tar.gz
Algorithm Hash digest
SHA256 9d6c84684a4ccec838d20d11a3592012800fccafb67f97172b23c19e999dc5ad
MD5 ed355dcc88b4ce688c0d6857ac7345af
BLAKE2b-256 9dd56fb927f682a95f735fc3d99bf33735e12ff37f1236f2f358768aaf220476

See more details on using hashes here.

File details

Details for the file pypnf-0.9-py3-none-any.whl.

File metadata

  • Download URL: pypnf-0.9-py3-none-any.whl
  • Upload date:
  • Size: 190.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pypnf-0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c93f364f4f6446aca245e0cb8b4ae17308c16515fb8151788e7379ac78f88558
MD5 7ef4514080828ab4e890907b5050494d
BLAKE2b-256 60a0bcca9fc5e8ab919deaad4d23966c0517ec9c201db4a5ce1ea53c1f553773

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page