Skip to content

Trading Pattern Scanner Identifies complex patterns like head and shoulder, wedge and many more.

License

Notifications You must be signed in to change notification settings

rabongithub/TradingPatternScanner

 
 

Repository files navigation

TradingPatternScanner

Python CI

Author: Preetam Sharma

Overview

Trading Pattern Scanner Identifies complex patterns like head and shoulder, wedge and many more.

New Enhancements

Four new features for pattern detection have been added:

  1. Basic Head-Shoulder Detection: The initial unfiltered version of pattern detection. It uses a rolling window to track high and low points, then identifies Head and Shoulder and Inverse Head and Shoulder patterns.
  2. Head-Shoulder Detection with Savitzky-Golay Filter: This feature uses the Savitzky-Golay filter to reduce noise and improve pattern detection. It also considers the height of the "Head" or "Inverse Head" to avoid false pattern recognition.
  3. Head-Shoulder Detection with Kalman Filter: This feature utilizes the Kalman Filter, a recursive filter that estimates the state of a system in real time. It's particularly suitable for financial data due to its inherent noise and uncertainties.
  4. Head-Shoulder Detection with Wavelet Denoising: This final feature applies wavelet denoising to eliminate noise while preserving key features in the data. It makes pattern detection more robust and reliable, especially in the presence of high-frequency noise.

These enhancements provide more accurate pattern detection for your financial analysis needs.

Analysis

Each method has been rigorously tested and analysed on synthetic data that closely mirrors real-world financial data. However, it's important to note that synthetic data is not an exact representation of the real-world, and the performance of each algorithm may vary in a live setting. Therefore, users are encouraged to test each algorithm against their own datasets and pick the one that best suits their needs.

  • Accuracy for head_shoulder_pattern_window: 78.50%
  • Accuracy for head_shoulder_pattern_filter: 78.50%
  • Accuracy for head_shoulder_pattern_kf: 73.50%
  • Accuracy for head_shoulder_pattern_wavelet: 84.50%

Analysis

Heatmap Interpretation

  • For instance, let's consider a cell in the 2nd row and 2nd column. the score is 10, it means that a significant number of instances were correctly identified as "Head and Shoulder" pattern (abbreviated as HS).

  • On the contrary, a dark cell outside this diagonal indicates a high number of misclassifications. For example, a dark cell at the intersection of "HS" row and "I-HS" column would mean that a large number of instances were true "HS" but were incorrectly predicted as "Inverse Head and Shoulder" (abbreviated as I-HS) by the scanner.

Abbreviations

The abbreviations used in the heatmap and the code are as follows:

  • HS - Head and Shoulder pattern
  • I-HS - Inverse Head and Shoulder pattern

Installation / Usage

Install using pip:

$ pip install tradingpattern

TradingPatternScanner

Trading patterns:

  • 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.
  • Multiple top and bottom: These patterns indicate a range-bound market, with multiple highs and lows forming a horizontal range.
  • Horizontal support and resistance: These patterns indicate key levels at which the market has previously struggled to break through.
  • 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.
  • Wedge up and down: These patterns indicate a potential reversal in the market, with the trendlines converging towards each other.
  • Channel up and down: These patterns indicate a strong trend in the market, with price moving within a well-defined upper and lower trendline.
  • 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.
  • 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.
  • Finding Higher-High and Lower-Low

Designed for fast performance:

  • Uses only Pandas as Numpy, no other external libraries: This approach helps to keep the library lightweight and fast.
  • 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.

New and Unique:

  • 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.

Lets check if its works for simplicity I used finviz and checked the pattern with the respective stock.

  • Head and Shoulder: Head and Shoulder

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. Finviz

  • We can see that Finviz also detects on 9th Januray 2023 in 1 day interval.
  • 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.

Future add-ons:

  • Request your favourite pattern to get added in the list: The library is open for suggestions for adding new patterns.
  • Work on visualization and plotting: The library can be extended to include visualization and plotting features to help users better understand the patterns identified.
  • 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.

About

Trading Pattern Scanner Identifies complex patterns like head and shoulder, wedge and many more.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.3%
  • Shell 1.7%