{"repo":"pranjal-joshi/Screeni-py","free":true,"listed":false,"github":"https://github.com/pranjal-joshi/Screeni-py","clone":"git clone https://github.com/pranjal-joshi/Screeni-py.git","description":"A Python-based stock screener to find stocks with potential breakout probability from NSE India.","language":"Python","stars":698,"topics":["nse","python","stock-market","stock-screener","technical-analysis"],"license":"MIT","category":"financial_analysis_tool","readme_excerpt":"| |\n| :-: |\n| ![Screeni-py](https://user-images.githubusercontent.com/6128978/217816268-74c40180-fc47-434d-938b-3639898ee3e0.png) |\n| [![GitHub release (latest by date)](https://img.shields.io/github/v/release/pranjal-joshi/Screeni-py?style=for-the-badge)](https://github.com/pranjal-joshi/Screeni-py/releases/latest) [![GitHub all releases](https://img.shields.io/github/downloads/pranjal-joshi/Screeni-py/total?color=Green&label=Downloads&style=for-the-badge)](#) ![Docker Pulls](https://img.shields.io/docker/pulls/joshipranjal/screeni-py?style=for-the-badge&logo=docker) [![GitHub](https://img.shields.io/github/license/pranjal-joshi/Screeni-py?style=for-the-badge)](https://github.com/pranjal-joshi/Screeni-py/blob/main/LICENSE) [![CodeFactor](https://www.codefactor.io/repository/github/pranjal-joshi/screeni-py/badge?style=for-the-badge)](https://www.codefactor.io/repository/github/pranjal-joshi/screeni-py) [![MADE-IN-INDIA](https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange?style=for-the-badge)](https://en.wikipedia.org/wiki/India) [![BADGE](https://img.shields.io/badge/PULL%20REQUEST-GUIDELINES-red?style=for-the-badge)](https://github.com/pranjal-joshi/Screeni-py/blob/new-features/CONTRIBUTING.md) |\n| [![Screenipy Test - New Features](https://github.com/pranjal-joshi/Screeni-py/actions/workflows/workflow-test.yml/badge.svg?branch=new-features)](https://github.com/pranjal-joshi/Screeni-py/actions/workflows/workflow-test.yml) [![Screenipy Build - New Release](https://github.com/pranjal-joshi/Screeni-py/actions/workflows/workflow-build-matrix.yml/badge.svg)](https://github.com/pranjal-joshi/Screeni-py/actions/workflows/workflow-build-matrix.yml) |\n| ![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white) ![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black) ![Mac OS](https://img.shields.io/badge/mac%20os-D3D3D3?style=for-the-badge&logo=apple&logoColor=000000) ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white) |\n| <img width=\"240\" src=\"https://user-images.githubusercontent.com/6128978/217814499-7934edf6-fcc3-46d7-887e-7757c94e1632.png\"><h2>Scan QR Code to join [Official Telegram Group](https://t.me/+0Tzy08mR0do0MzNl) for Additional Discussions</h2> |\n\n| **YouTube** | **Use** | **Discussion** | **Bugs/Issues** | **Documentation** |\n| :---: | :---: | :---: | :---: | :---: |\n| [![youtube](https://github.com/pranjal-joshi/Screeni-py/assets/6128978/9673bbcf-4798-48f4-918d-692b90e28d37)](https://www.youtube.com/playlist?list=PLsGnKKT_974J3UVS8M6bxqePfWLeuMsBi) | [![docker](https://github.com/pranjal-joshi/Screeni-py/assets/6128978/f44054b8-9fcb-465c-a38b-63f6ecc4a0c9)](https://hub.docker.com/r/joshipranjal/screeni-py/tags) | [![meeting](https://user-images.githubusercontent.com/6128978/149935812-31266023-cc5b-4c98-a416-1d4cf8800c0c.png)](https://github.com/pranjal-joshi/Screeni-py/discussions) | [![warning](https://user-images.githubusercontent.com/6128978/149936142-04d7cf1c-5bc5-45c1-a8e4-015454a2de48.png)](https://github.com/pranjal-joshi/Screeni-py/issues?q=is%3Aissue) | [![help](https://user-images.githubusercontent.com/6128978/149937331-5ee5c00a-748d-4fbf-a9f9-e2273480d8a2.png)](https://github.com/pranjal-joshi/Screeni-py/blob/main/README.md#what-is-screeni-py) |\n| Watch our [YouTube](https://www.youtube.com/playlist?list=PLsGnKKT_974J3UVS8M6bxqePfWLeuMsBi) playlist | Get started quickly using Docker | Join/Read the Community Discussion | Raise an Issue about a Problem | Get Help about Usage |\n\n<!-- ## [**Click to Download the Latest Version**](https://github.com/pranjal-joshi/Screeni-py/releases/latest) -->\n\n---\n\n## What is Screeni-py?\n\n### A Python-based stock screener for NSE, India\n\n**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.\nScreenipy is totally customizable and it can screen stocks with the settings that you have provided.\n\n## How to use? (New Version - GUI Based)\n\n[![Screeni-py - Detailed Installation Guide](https://markdown-videos-api.jorgenkh.no/url?url=https%3A%2F%2Fyoutu.be%2F2HMN0ac4H20)](https://youtu.be/2HMN0ac4H20)\n[![Screeni-py - Configuration and Usage | Screenipy - Python NSE Stock Screener](https://markdown-videos-api.jorgenkh.no/url?url=https%3A%2F%2Fyoutu.be%2FJCn6z1A7INI)](https://youtu.be/JCn6z1A7INI)\n[![Screeni-py - How to install Software Updates? | Screenipy - Python NSE Stock Screener](https://markdown-videos-api.jorgenkh.no/url?url=https%3A%2F%2Fyoutu.be%2FT41m13iMyJc)](https://youtu.be/T41m13iMyJc)\n\n* Install Docker Desktop and pull the `latest` docker image from the [release](https://github.com/pranjal-joshi/Screeni-py/releases/latest) page.\n* Checkout this [YouTube Video](https://youtu.be/2HMN0ac4H20) for detailed installation guide.\n  \n<img width=\"1438\" alt=\"image\" src=\"https://github.com/pranjal-joshi/Screeni-py/assets/6128978/2016be00-5892-4735-8ab3-5f5b70add103\">\n<img width=\"1438\" alt=\"image\" src=\"https://github.com/pranjal-joshi/Screeni-py/assets/6128978/28947290-7f42-4f6f-9fc0-0bae1ee6d6f4\">\n<img width=\"1438\" alt=\"image\" src=\"https://github.com/pranjal-joshi/Screeni-py/assets/6128978/857f8acc-a4e8-4b86-a748-c26057b0e8b1\">\n<img width=\"1438\" alt=\"image\" src=\"https://github.com/pranjal-joshi/Screeni-py/assets/6128978/360b5faa-f4f4-4df6-bec1-90985889bee6\">\n<img width=\"1438\" alt=\"image\" src=\"https://github.com/pranjal-joshi/Screeni-py/assets/6128978/99903d67-d450-4c04-93ae-1f5bb4b905a5\">\n\n## How to use? (Older Version - CLI Based - DEPRECATED)\n\n* Download the suitable file according to your OS or install Docker Desktop and pull the `latest` docker image.\n* Linux & Mac users should make sure that the `screenipy.bin or screenipy.run` has `execute` permission.\n* **Run** the file. The following window will appear after a brief delay.\n\n    ![home](screenshots/screenipy_demo.gif)\n\n* **Configure** the parameters as per your requirement using `Option > 8`.\n\n    ![config](screenshots/config.png)\n\n* Following are the screenshots of screening and output results.\n\n    ![screening](screenshots/screening.png)\n    ![results](screenshots/results.png)\n    ![done](screenshots/done.png)\n\n* Once done, you can also save the results in an Excel file.\n\n## Understanding the Result Table\n\nThe 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.\n\n| Sr | Parameter | Description | Example |\n|:---:|:---:|:---|:---|\n|1|**Stock**|This is a NSE scrip symbol. If your OS/Terminal supports unicode, You can directly open **[TradingView](https://in.tradingview.com/)** charts by pressing `Ctrl+Click` on the stock name.|[TATAMOTORS](https://in.tradingview.com/chart?symbol=NSE%3ATATAMOTORS)|\n|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 %`|\n|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)|\n|4|**LTP**|LTP is the Last Traded Price of an asset traded on NSE.|`298.7` (Stock is trading at this price)|\n|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`|\n|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|\n|7|**RSI**|For the momentum traders, it describes 14-period RSI for quick decision-making about their trading plans|`0 to 100`|\n|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.|\n|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.|\n\n## Hack it your way\n\nFeel free to Edit the parameters in the `screenipy.ini` file which will be generated by the application.\n\n```ini\n[config]\nperiod = 300d\ndaystolookback = 30\nduration = 1d\nminprice = 30\nmaxprice = 10000\nvolumeratio = 2\nconsolidationpercentage = 10\nshuffle = y\ncachestockdata = y\nonlystagetwostocks = y\nuseema = n\n```\n\nTry to tweak these parameters as per your trading styles. For example, If you're comfortable with weekly charts, make `duration=5d` and so on.\n\n## Installation Guide\n\n### YouTube Video of Detailed Installation Guide\n\n[![YouTube Video Views](https://img.shields.io/youtube/views/2HMN0ac4H20?style=for-the-badge&logo=youtube)](https://youtu.be/2HMN0ac4H20)\n\n[![Screeni-py - Detailed Installation Guide](https://markdown-videos-api.jorgenkh.no/url?url=https%3A%2F%2Fyoutu.be%2F2HMN0ac4H20)](https://youtu.be/2HMN0ac4H20)\n\n![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white) ![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black) ![Mac OS](https://img.shields.io/badge/mac%20os-D3D3D3?style=for-the-badge&logo=apple&logoColor=000000) ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&","default_branch":"main","files":145,"tree":[".dockerignore",".flake8",".github/ISSUE_TEMPLATE/bug_report.md",".github/ISSUE_TEMPLATE/feature_request.md",".github/dependencies/TA_Lib-0.4.19-cp39-cp39-win_amd64.whl",".github/dependencies/sqlite3.dll",".github/dependencies/ta-lib-0.4.0-src.tar.gz",".github/workflows/squash.py",".github/workflows/workflow-build-matrix.yml",".github/workflows/workflow-download-data.yml",".github/workflows/workflow-stale.yml",".github/workflows/workflow-test.yml",".gitignore","CONTRIBUTING.md","Dockerfile","INSTALLATION.md","LICENSE","LICENSE_Third_Party","Makefile","README.md","actions-data-download/stock_data_140823.pkl","docker-compose.yml","patterns/IPO1.png","patterns/IPO2.png","patterns/IPO3.png","patterns/MomentumGainer.png","pyproject.toml","requirements.txt","run_screenipy.sh","screenipy.yaml","screenshots/NSE_Logo.svg","screenshots/config.png","screenshots/done.png","screenshots/home.png","screenshots/results.png","screenshots/screening.png","screenshots/screenipy_demo.gif","src/.streamlit/config.toml","src/agents/__init__.py","src/agents/agent_loader.py","src/agents/kite_auth_test.py","src/agents/kite_session.py","src/agents/llm_config.py","src/agents/personas/day_trader.yaml","src/agents/personas/momentum_analyst.yaml","src/agents/personas/option_buyer.yaml","src/agents/personas/swing_trader.yaml","src/agents/personas/value_screener.yaml","src/agents/scheduler.py","src/agents/screener_tools.py","src/agents/screeni_agent.py","src/chromadb_store/chroma.sqlite3","src/classes/BrowserConfigStore.py","src/classes/CandlePatterns.py","src/classes/Changelog.py","src/classes/ColorText.py","src/classes/ConfigManager.py","src/classes/Database.py","src/classes/Fetcher.py","src/classes/OtaUpdater.py","src/classes/ParallelProcessing.py","src/classes/Screener.py","src/classes/ScreenipyTA.py","src/classes/SuppressOutput.py","src/classes/Utility.py","src/icon-old.ico","src/icon.ico","src/last_screened_results.pkl","src/last_screened_unformatted_results.pkl","src/release.md","src/screenipy.egg-info/PKG-INFO","src/screenipy.egg-info/SOURCES.txt","src/screenipy.egg-info/dependency_links.txt","src/screenipy.egg-info/requires.txt","src/screenipy.egg-info/top_level.txt","src/screenipy.ini","src/screenipy.py","src/screenipy.spec","src/screenipy.yaml","src/static/tablefilter/style/colsVisibility.css","src/static/tablefilter/style/filtersVisibility.css","src/static/tablefilter/style/tablefilter.css","src/static/tablefilter/style/themes/blank.png","src/static/tablefilter/style/themes/btn_clear_filters.png","src/static/tablefilter/style/themes/btn_filter.png","src/static/tablefilter/style/themes/btn_first_page.gif","src/static/tablefilter/style/themes/btn_last_page.gif","src/static/tablefilter/style/themes/btn_next_page.gif","src/static/tablefilter/style/themes/btn_previous_page.gif","src/static/tablefilter/style/themes/default/default.css","src/static/tablefilter/style/themes/default/images/bg_infDiv.jpg","src/static/tablefilter/style/themes/default/images/bg_th.jpg","src/static/tablefilter/style/themes/default/images/btn_eraser.gif","src/static/tablefilter/style/themes/default/images/btn_first_page.gif","src/static/tablefilter/style/themes/default/images/btn_last_page.gif","src/static/tablefilter/style/themes/default/images/btn_next_page.gif","src/static/tablefilter/style/themes/default/images/btn_over_eraser.gif","src/static/tablefilter/style/themes/default/images/btn_over_first_page.gif","src/static/tablefilter/style/themes/default/images/btn_over_last_page.gif","src/static/tablefilter/style/themes/default/images/btn_over_next_page.gif","src/static/tablefilter/style/themes/default/images/btn_over_previous_page.gif","src/static/tablefilter/style/themes/default/images/btn_previous_page.gif","src/static/tablefilter/style/themes/default/images/img_loading.gif","src/static/tablefilter/style/themes/downsimple.png","src/static/tablefilter/style/themes/icn_clp.png","src/static/tablefilter/style/themes/icn_exp.png","src/static/tablefilter/style/themes/icn_filter.gif","src/static/tablefilter/style/themes/icn_filterActive.gif","src/static/tablefilter/style/themes/mytheme/images/bg_headers.jpg","src/static/tablefilter/style/themes/mytheme/images/bg_infDiv.jpg","src/static/tablefilter/style/themes/mytheme/images/btn_filter.png","src/static/tablefilter/style/themes/mytheme/images/btn_first_page.gif","src/static/tablefilter/style/themes/mytheme/images/btn_last_page.gif","src/static/tablefilter/style/themes/mytheme/images/btn_next_page.gif","src/static/tablefilter/style/themes/mytheme/images/btn_previous_page.gif","src/static/tablefilter/style/themes/mytheme/images/img_loading.gif","src/static/tablefilter/style/themes/mytheme/mytheme.css","src/static/tablefilter/style/themes/skyblue/images/bg_skyblue.gif","src/static/tablefilter/style/themes/skyblue/images/btn_first_page.gif","src/static/tablefilter/style/themes/skyblue/images/btn_last_page.gif","src/static/tablefilter/style/themes/skyblue/images/btn_next_page.gif","src/static/tablefilter/style/themes/skyblue/images/btn_prev_page.gif","src/static/tablefilter/style/themes/skyblue/images/icn_clear_filters.png","src/static/tablefilter/style/themes/skyblue/images/img_loading.gif","src/static/tablefilter/style/themes/skyblue/skyblue.css","src/static/tablefilter/style/themes/transparent/images/btn_first_page.gif","src/static/tablefilter/style/themes/transparent/images/btn_last_page.gif","src/static/tablefilter/style/themes/transparent/images/btn_next_page.gif","src/static/tablefilter/style/themes/transparent/images/btn_prev_page.gif","src/static/tablefilter/style/themes/transparent/images/icn_clear_filters.png","src/static/tablefilter/style/themes/transparent/images/img_loading.gif","src/static/tablefilter/style/themes/transparent/transparent.css","src/static/tablefilter/style/themes/upsimple.png","src/static/tablefilter/tablefilter.js","src/static/tablefilter/tf-1-2aa33b10e0e549020c12.js","src/streamlit_app.py","src/ui/__init__.py","src/ui/ai_native_tab.py","src/ui/charts.py","src/ui/classic_tab.py","test/screenipy_test.py","test/test_agent_tools.py","test/test_database.py","test/test_llm_config.py","uv.lock"],"storefront":"/r/pranjal-joshi","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/pranjal-joshi/Screeni-py/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}