/Screeni-py

A Python-based stock screener to find stocks with potential breakout probability from NSE India.

Primary LanguagePythonMIT LicenseMIT

Screeni-py
GitHub release (latest by date) GitHub all releases Docker Pulls GitHub CodeFactor MADE-IN-INDIA BADGE
Screenipy Test - New Features Screenipy Build - New Release
Windows Linux Mac OS Docker

Scan QR Code to join Official Telegram Group for Additional Discussions

YouTube Use Discussion Bugs/Issues Documentation
youtube docker meeting warning help
Watch our YouTube playlist Get started quickly using Docker Join/Read the Community Discussion Raise an Issue about a Problem Get Help about Usage

What is Screeni-py?

A Python-based stock screener for NSE, India.

Screenipy is an advanced stock screener to find potential breakout stocks from NSE and tell its possible breakout values. It also helps to find the stocks that are consolidating and may breakout, or the particular chart patterns that you're looking for specifically to make your decisions. Screenipy is totally customizable and it can screen stocks with the settings that you have provided.

How to use? (New Version - GUI Based)

Screeni-py - Detailed Installation Guide Screeni-py - Configuration and Usage | Screenipy - Python NSE Stock Screener Screeni-py - How to install Software Updates? | Screenipy - Python NSE Stock Screener

  • Install Docker Desktop and pull the latest docker image from the release page.
  • Checkout this YouTube Video for detailed installation guide.
image image image image image

How to use? (Older Version - CLI Based - DEPRECATED)

  • Download the suitable file according to your OS or install Docker Desktop and pull the latest docker image.
  • Linux & Mac users should make sure that the screenipy.bin or screenipy.run has execute permission.
  • Run the file. The following window will appear after a brief delay.

home

  • Configure the parameters as per your requirement using Option > 8.

config

  • Following are the screenshots of screening and output results.

screening results done

  • Once done, you can also save the results in an Excel file.

Understanding the Result Table:

The Result table contains a lot of different parameters which can be pretty overwhelming to the new users, so here's the description and significance of each parameter.

Sr Parameter Description Example
1 Stock This is a NSE scrip symbol. If your OS/Terminal supports unicode, You can directly open TradingView charts by pressing Ctrl+Click on the stock name. TATAMOTORS
2 Consolidating It gives the price range in which stock is trading since last N days. N is configurable and can be modified by executing Edit User Configuration option. If stock is trading between price 100-120 in last 30 days, Output will be Range = 20.0 %
3 Breakout (N Days) This is pure magic! The BO is Breakout level in last N days while R is the next resistance level if available. An investor should consider both BO & R level to decide entry/exits in their trades. B:302, R:313(Breakout level is 100 & Next resistance is 102)
4 LTP LTP is the Last Traded Price of an asset traded on NSE. 298.7 (Stock is trading at this price)
5 Volume Volume shows the relative volume of the recent candle with respect to 20 period MA of Volume. It could be Unknown for newly listed stocks. if 20MA(Volume) is 1M and todays Volume is 2.8M, then Volume = 2.8x
6 MA-Signal It describes the price trend of an asset by analyzing various 50-200 MA/EMA crossover strategies. 200MA-Support,BullCross-50MA etc
7 RSI For the momentum traders, it describes 14-period RSI for quick decision-making about their trading plans 0 to 100
8 Trend By using advanced algorithms, the average trendlines are computed for N days and their strength is displayed depending on the steepness of the trendlines. (This does NOT show any trendline on a chart, it is calculated internally) Strong Up, Weak Down etc.
9 Pattern If the chart or the candle itself forming any important pattern in the recent timeframe or as per the selected screening option, various important patterns will be indicated here. Momentum Gainer, Inside Bar (N),Bullish Engulfing etc.

Hack it your way:

Feel free to Edit the parameters in the screenipy.ini file which will be generated by the application.

[config]
period = 300d
daystolookback = 30
duration = 1d
minprice = 30
maxprice = 10000
volumeratio = 2
consolidationpercentage = 10
shuffle = y
cachestockdata = y
onlystagetwostocks = y
useema = n

Try to tweak these parameters as per your trading styles. For example, If you're comfortable with weekly charts, make duration=5d and so on.

Installation Guide:

YouTube Video of Detailed Installation Guide

YouTube Video Views

Screeni-py - Detailed Installation Guide

Windows Linux Mac OS Docker

Why we shifted to Docker from the Good old EXEs?

Executable/Binary File Docker
GitHub all releases Docker Pulls
Download Directly from the Release page (DEPRECATED) Need to Install Docker Desktop ⚠️
May take a long time to open the app Loads quickly
Slower screening Performance boosted as per your CPU capabilities
You may face errors/warnings due to different CPU arch of your system ⚠️ Compatible with all x86_64/amd64/arm64 CPUs irrespective of OS (including Mac M1/M2)
Works only with Windows 10/11 ⚠️ Works with older versions of Windows as well
Different file for each OS Same container is compatible with everyone
Antivirus may block this as untrusted file ⚠️ No issues with Antivirus
Need to download new file for every update Updates quickly with minimal downloading
No need of commands/technical knowledge Very basic command execution skills may be required
Incompatible with Vector Database ⚠️ Compatible with all Python libraries

How to set up and use Screeni-py with Docker?

  1. Download and Install Docker Desktop with default settings
  2. If you are using Windows, update WSL (Windows subsystem for linux) by running wsl --update command in the command prompt
  3. Restart your computer after installation
  4. Open Docker Desktop and keep it as it is
  5. Open Command Prompt (Windows) or Terminal (Mac/Linux) and run command docker pull joshipranjal/screeni-py:latest
  6. Once installed, always start screenipy by running this command:
    docker run -p 8501:8501 joshipranjal/screeni-py:latest
    
    OR
    
    docker run -it --entrypoint /bin/bash joshipranjal/screeni-py:latest -c "run_screenipy.sh --cli"
    

Check out this YouTube Video for a detailed installation guide.

Contributing:

  • Please feel free to Suggest improvements/report bugs by creating an issue.
  • Please follow the Guidelines for Contributing while making a Pull Request.

Disclaimer:

  • DO NOT use the result provided by the software 'solely' to make your trading decisions.
  • Always backtest and analyze the stocks manually before you trade.
  • The Author and the software will not be held liable for your losses.