One Command, More Timeframes, Plugins, and a Better Charting Experience #328
BennyThadikaran
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This release brings a major update to the charting workflow. The old
plot.pyandplot_breadth.pyscripts have been combined into a single entry point—chart.py—along with a redesigned CLI, new indicator plugins, improved drawing tools, and several quality-of-life improvements.One script for stock and breadth charts
You no longer need to choose between separate scripts for regular charts and market-breadth charts. Both are now available through
chart.py.The command-line help has also been reorganized into clear sections for chart sources, indicators, plugins, and management commands. Options that are required to run a chart are now identified more clearly.
Updated timeframe options
The
--tfoption now supports four timeframes:d— Dailyw— Weeklym— Monthlyq— QuarterlyThis replaces the previous
dailyandweeklyvalues.Simplified support and resistance option
The separate
--snrand--snr-v2options have been combined into one option.Use
--snrby itself for the original version:This is equivalent to:
Use version 2 for support and resistance levels based on multiple touch points:
Load symbols directly from a file
The new
-f/--fileoption lets you load symbols from a file without first registering it as a watchlist.python chart.py -f ~/Documents/symbols.txtThe file should contain one symbol per line. This is useful for temporary scans, generated symbol lists, and files that you do not want to keep in your watchlist configuration.
Existing named watchlists continue to work:
Short aliases for popular indices
Frequently used indices can now be referenced through shorter aliases with both
--symand-i/--index.Instead of:
python chart.py --sym "nifty financial services"you can use:
Other examples include:
Run the following command to see all available aliases, presets, and watchlists:
Presets now work with any symbol source
Presets now store chart settings only. They are no longer tied to the watchlist, file, symbol, or breadth source used when the preset was created.
A preset named
rs, for example, can be reused with individual symbols:The same preset can be applied to a file:
python chart.py --preset rs -f ~/Documents/symbols.txtOr to a saved watchlist:
This makes presets more useful as reusable chart layouts rather than saved commands tied to a specific source.
Configurable indicator plugins
This release introduces a configurable plugin system for custom chart indicators.
Built-in plugin support includes:
Plugins are exposed as normal CLI options and are loaded only when used. This keeps the standard charting path lightweight while making it easier to add new indicators.
The exact option names are shown under the Plugins section of:
The plugin system is configuration-driven, so additional indicators can be integrated without adding their behavior directly to the main charting workflow.
Smarter indicator panels
Lower indicators now receive panels dynamically instead of relying on fixed panel numbers.
Compatible indicators can share the same panel by using primary and secondary y-axes. Indicators that require an independent scale or both axes receive their own panel automatically.
For example:
This reduces unused chart space and produces cleaner layouts when several indicators are enabled together.
Improved chart interaction
Several improvements make interactive chart navigation easier:
On-chart notifications
Important actions and errors are now displayed inside the chart. This includes feedback when adding selections, reaching the first or last chart, or entering an invalid jump destination.
Visible shortcut reminders
The chart title now displays quick reminders for help and quitting:
Jump directly to a chart
To jump to a specific chart in the current symbol list, type its number and press
j.For example:
jumps directly to chart number 25.
This is particularly useful when working through large watchlists or symbol files.
Better drawing tools
Draw mode now provides clearer guidance and more responsive feedback.
When
CTRL,SHIFT, orCTRL + SHIFTis pressed, the chart displays the drawing action associated with that modifier:SHIFT— TrendlineCTRL— Continuous segmentsCTRL + SHIFT— Horizontal segmentAfter selecting the first point, an animated preview line follows the cursor so you can see the result before placing the next point.
The preview uses blitting to keep interaction responsive while the mouse is moving.
Drawings now use JSON storage
Chart drawings are now stored in a single JSON file, organized by symbol and timeframe.
This replaces the previous pickle-based storage format. JSON storage is easier to inspect, back up, migrate, and process using external tools.
A migration script is included to convert existing pickle drawings to the new JSON format, so previous annotations do not need to be recreated manually.
More reliable batch chart saving
Batch PNG saving now tracks the result of each operation instead of silently assuming every chart was saved successfully.
After processing a symbol list, the application reports failed saves so missing charts can be identified and retried.
python chart.py -f ~/Documents/symbols.txt --saveCLI migration summary
The main command changes are:
plot.pychart.pyplot_breadth.pychart.py --breadth--snr--snror--snr v1--snr-v2--snr v2--tf daily--tf d--tf weekly--tf w--tf m--tf q-f/--filen50andnfinThis release consolidates the charting tools into a more consistent interface while adding more flexible presets, additional timeframes, extensible indicators, improved navigation, and a smoother drawing experience.
Beta Was this translation helpful? Give feedback.
All reactions