Skip to content

Commit d16d4e8

Browse files
authored
init commit
0 parents  commit d16d4e8

15 files changed

+1176
-0
lines changed

LICENSE.md

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Copyright (c) 2017, Preetam Sharma
2+
All rights reserved.
3+
4+
#TradingPatternScanner
5+
6+
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license.
7+
8+
You are free to:
9+
10+
- Share: copy and redistribute the material in any medium or format
11+
- Adapt: remix, transform, and build upon the material
12+
13+
Under the following terms:
14+
15+
- Attribution: You must give appropriate credit, provide a link to the license, and indicate if changes were made. You must do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. The credit should be given in the following format: "Original work by [Preetam Sharma] is licensed under CC BY-NC-SA 4.0 and can be found at [link to the original work]."
16+
17+
- NonCommercial: You may not use the material for commercial purposes. This includes but is not limited to, selling the material, or using it to promote a product or service.
18+
19+
- ShareAlike: If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. This ensures that others can continue to use and build upon your work in the same way that you have.
20+
21+
For more information, see the [Creative Commons website](https://creativecommons.org/licenses/by-nc-sa/4.0/) and the [legal code of the license](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode).
22+

MANIFEST.in

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
include README.md
2+
include requirements.txt

README.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# TradingPatternScanner
2+
![Python CI](https://github.com/white07S/TradingPatternScanner/actions/workflows/python-ci.yml/badge.svg)
3+
4+
#### Author: Preetam Sharma
5+
6+
Overview
7+
--------
8+
9+
Trading Pattern Scanner Identifies complex patterns like head and shoulder, wedge and many more.
10+
11+
Installation / Usage
12+
--------------------
13+
14+
Install using pip:
15+
16+
$ pip install tradingpattern
17+
18+
19+
# TradingPatternScanner
20+
21+
# Trading patterns:
22+
* **Head and Shoulder and inverse Head and Shoulder**: These patterns indicate a potential reversal in the market, with the "head" being the highest point, and the "shoulders" being the points on either side at a slightly lower level.
23+
* **Multiple top and bottom**: These patterns indicate a range-bound market, with multiple highs and lows forming a horizontal range.
24+
* **Horizontal support and resistance**: These patterns indicate key levels at which the market has previously struggled to break through.
25+
* **Ascending and Descending Triangle pattern**: These patterns indicate a potential breakout in the market, with the upper trendline being resistance and the lower trendline being support.
26+
* **Wedge up and down**: These patterns indicate a potential reversal in the market, with the trendlines converging towards each other.
27+
* **Channel up and down**: These patterns indicate a strong trend in the market, with price moving within a well-defined upper and lower trendline.
28+
* **Double top and bottom**: These patterns indicate a potential reversal in the market, with the market hitting a high or low twice and then reversing.
29+
* **Trend line support and resistance**: These patterns indicate key levels at which the market is likely to experience support or resistance based on historical price action.
30+
* **Finding Higher-High and Lower-Low**
31+
32+
# Designed for fast performance:
33+
* **Uses only Pandas as Numpy, no other external libraries**: This approach helps to keep the library lightweight and fast.
34+
* **Uses the concept of vectorization**: This approach helps to improve performance by processing large amounts of data at once, rather than iterating over each individual data point.
35+
36+
# New and Unique:
37+
* **No other python** library exists for such task currently: This library is new and unique, as it aims to provide an all-in-one solution for identifying various trading patterns.
38+
39+
40+
### Lets check if its works for simplicity I used finviz and checked the pattern with the respective stock.
41+
42+
* Head and Shoulder:
43+
![Head and Shoulder](https://user-images.githubusercontent.com/58583011/212490681-6dfca525-cd2e-4c87-830a-655ac9294a8a.png)
44+
45+
We can see that it finds out that we have inverse head and shoulder pattern in the stock on 9th Januray 2023 in 1 day interval. Lets match with Finviz.
46+
![Finviz](https://user-images.githubusercontent.com/58583011/212490765-220182a5-e637-4f83-9a65-3031b7c99fee.png)
47+
48+
* We can see that Finviz also detects on 9th Januray 2023 in 1 day interval.
49+
* You can adjust the window size to your liking. A smaller window size will be more sensitive to detecting patterns, but it will also increase the chances of false positives. A larger window size will be less sensitive to detecting patterns, but it will also decrease the chances of false positives.
50+
51+
# Future add-ons:
52+
* **Request your favourite pattern to get added in the list**: The library is open for suggestions for adding new patterns.
53+
* **Work on visualization and plotting**: The library can be extended to include visualization and plotting features to help users better understand the patterns identified.
54+
* **Add unit testing**: The library can be extended to include unit testing to ensure that the code is working as expected and to catch any bugs early on.
55+

docs/Makefile

+230
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
# Makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line.
5+
SPHINXOPTS =
6+
SPHINXBUILD = sphinx-build
7+
PAPER =
8+
BUILDDIR = build
9+
10+
# User-friendly check for sphinx-build
11+
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
12+
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/)
13+
endif
14+
15+
# Internal variables.
16+
PAPEROPT_a4 = -D latex_paper_size=a4
17+
PAPEROPT_letter = -D latex_paper_size=letter
18+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
19+
# the i18n builder cannot share the environment and doctrees with the others
20+
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
21+
22+
.PHONY: help
23+
help:
24+
@echo "Please use \`make <target>' where <target> is one of"
25+
@echo " html to make standalone HTML files"
26+
@echo " dirhtml to make HTML files named index.html in directories"
27+
@echo " singlehtml to make a single large HTML file"
28+
@echo " pickle to make pickle files"
29+
@echo " json to make JSON files"
30+
@echo " htmlhelp to make HTML files and a HTML help project"
31+
@echo " qthelp to make HTML files and a qthelp project"
32+
@echo " applehelp to make an Apple Help Book"
33+
@echo " devhelp to make HTML files and a Devhelp project"
34+
@echo " epub to make an epub"
35+
@echo " epub3 to make an epub3"
36+
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
37+
@echo " latexpdf to make LaTeX files and run them through pdflatex"
38+
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
39+
@echo " text to make text files"
40+
@echo " man to make manual pages"
41+
@echo " texinfo to make Texinfo files"
42+
@echo " info to make Texinfo files and run them through makeinfo"
43+
@echo " gettext to make PO message catalogs"
44+
@echo " changes to make an overview of all changed/added/deprecated items"
45+
@echo " xml to make Docutils-native XML files"
46+
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
47+
@echo " linkcheck to check all external links for integrity"
48+
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
49+
@echo " coverage to run coverage check of the documentation (if enabled)"
50+
@echo " dummy to check syntax errors of document sources"
51+
52+
.PHONY: clean
53+
clean:
54+
rm -rf $(BUILDDIR)/*
55+
56+
.PHONY: html
57+
html:
58+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
59+
@echo
60+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
61+
62+
.PHONY: dirhtml
63+
dirhtml:
64+
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
65+
@echo
66+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
67+
68+
.PHONY: singlehtml
69+
singlehtml:
70+
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
71+
@echo
72+
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
73+
74+
.PHONY: pickle
75+
pickle:
76+
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
77+
@echo
78+
@echo "Build finished; now you can process the pickle files."
79+
80+
.PHONY: json
81+
json:
82+
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
83+
@echo
84+
@echo "Build finished; now you can process the JSON files."
85+
86+
.PHONY: htmlhelp
87+
htmlhelp:
88+
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
89+
@echo
90+
@echo "Build finished; now you can run HTML Help Workshop with the" \
91+
".hhp project file in $(BUILDDIR)/htmlhelp."
92+
93+
.PHONY: qthelp
94+
qthelp:
95+
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
96+
@echo
97+
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
98+
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
99+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/twitterpandas.qhcp"
100+
@echo "To view the help file:"
101+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/twitterpandas.qhc"
102+
103+
.PHONY: applehelp
104+
applehelp:
105+
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
106+
@echo
107+
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
108+
@echo "N.B. You won't be able to view it unless you put it in" \
109+
"~/Library/Documentation/Help or install it in your application" \
110+
"bundle."
111+
112+
.PHONY: devhelp
113+
devhelp:
114+
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
115+
@echo
116+
@echo "Build finished."
117+
@echo "To view the help file:"
118+
@echo "# mkdir -p $$HOME/.local/share/devhelp/twitterpandas"
119+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/twitterpandas"
120+
@echo "# devhelp"
121+
122+
.PHONY: epub
123+
epub:
124+
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
125+
@echo
126+
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
127+
128+
.PHONY: epub3
129+
epub3:
130+
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
131+
@echo
132+
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
133+
134+
.PHONY: latex
135+
latex:
136+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
137+
@echo
138+
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
139+
@echo "Run \`make' in that directory to run these through (pdf)latex" \
140+
"(use \`make latexpdf' here to do that automatically)."
141+
142+
.PHONY: latexpdf
143+
latexpdf:
144+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
145+
@echo "Running LaTeX files through pdflatex..."
146+
$(MAKE) -C $(BUILDDIR)/latex all-pdf
147+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
148+
149+
.PHONY: latexpdfja
150+
latexpdfja:
151+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
152+
@echo "Running LaTeX files through platex and dvipdfmx..."
153+
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
154+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
155+
156+
.PHONY: text
157+
text:
158+
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
159+
@echo
160+
@echo "Build finished. The text files are in $(BUILDDIR)/text."
161+
162+
.PHONY: man
163+
man:
164+
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
165+
@echo
166+
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
167+
168+
.PHONY: texinfo
169+
texinfo:
170+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
171+
@echo
172+
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
173+
@echo "Run \`make' in that directory to run these through makeinfo" \
174+
"(use \`make info' here to do that automatically)."
175+
176+
.PHONY: info
177+
info:
178+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
179+
@echo "Running Texinfo files through makeinfo..."
180+
make -C $(BUILDDIR)/texinfo info
181+
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
182+
183+
.PHONY: gettext
184+
gettext:
185+
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
186+
@echo
187+
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
188+
189+
.PHONY: changes
190+
changes:
191+
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
192+
@echo
193+
@echo "The overview file is in $(BUILDDIR)/changes."
194+
195+
.PHONY: linkcheck
196+
linkcheck:
197+
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
198+
@echo
199+
@echo "Link check complete; look for any errors in the above output " \
200+
"or in $(BUILDDIR)/linkcheck/output.txt."
201+
202+
.PHONY: doctest
203+
doctest:
204+
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
205+
@echo "Testing of doctests in the sources finished, look at the " \
206+
"results in $(BUILDDIR)/doctest/output.txt."
207+
208+
.PHONY: coverage
209+
coverage:
210+
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
211+
@echo "Testing of coverage in the sources finished, look at the " \
212+
"results in $(BUILDDIR)/coverage/python.txt."
213+
214+
.PHONY: xml
215+
xml:
216+
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
217+
@echo
218+
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
219+
220+
.PHONY: pseudoxml
221+
pseudoxml:
222+
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
223+
@echo
224+
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
225+
226+
.PHONY: dummy
227+
dummy:
228+
$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
229+
@echo
230+
@echo "Build finished. Dummy builder generates no files."

0 commit comments

Comments
 (0)