{"id":751,"date":"2026-03-15T15:26:55","date_gmt":"2026-03-15T15:26:55","guid":{"rendered":"http:\/\/www.qchartist.net\/blog\/?p=751"},"modified":"2026-03-15T15:26:55","modified_gmt":"2026-03-15T15:26:55","slug":"qchartist-can-now-interact-with-pandas-ta-130-new-indicators-and-utility-functions-available","status":"publish","type":"post","link":"https:\/\/www.qchartist.net\/blog\/qchartist-can-now-interact-with-pandas-ta-130-new-indicators-and-utility-functions-available\/","title":{"rendered":"QChartist can now interact with Pandas (TA): 130 new Indicators and Utility functions available"},"content":{"rendered":"\n<p>For the build 326 of QChartist TA:<\/p>\n\n\n\n<ul>\n<li>i installed theses python modules:<br>python -m pip install numpy==1.24.3<br>python -m pip install pandas==2.0.3<br>python -m pip install pandas-ta-classic<\/li>\n\n\n\n<li>i added example4.py<br>i tried example4.py : error\u2026<br>python -m pip uninstall numpy pandas pandas-ta-classic<br>python -m pip install numpy==1.19.5<br>python -m pip install pandas==1.1.5<br>python -m pip install pandas-ta-classic &#8211;no-deps<br>python -m pip install python-dateutil pytz<br>python -m pip list<br>python -m pip install mplfinance &#8211;no-deps<br>python -m pip install matplotlib==3.3.4<br>python -m pip install taleb &#8211;no-deps<br>In your code, you just use import taleb as talib and it works the same way.<br>python -m pip install scipy==1.9.1 &#8211;no-deps<\/li>\n\n\n\n<li>now i tried : python example4.py &#8220;YHOO1440.csv&#8221; &#8220;2014-01-01 00:00&#8221; &#8220;2<br>015-06-01 16:00&#8243; yes<br>and yes it works, i managed to use pandas_ta on python 32-bit ! Chart saved as custom_chart.bmp and custom_chart.png<\/li>\n<\/ul>\n\n\n\n<p>What is example4.py (which needs pandas):<br>This script is a command-line financial analysis tool designed to process stock\/forex data from a CSV file, apply various technical indicators from two different libraries, and generate a visual candlestick chart saved as a high-compatibility image (.bmp).<\/p>\n\n\n\n<p>Globally, the script operates in four distinct phases:<\/p>\n\n\n\n<ol>\n<li>Data Initialization and Filtering<\/li>\n<\/ol>\n\n\n\n<p>The script starts by taking four command-line arguments: a CSV filename, a start date, an end date, and a toggle for volume.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>It loads the CSV into a Pandas DataFrame.\n\nIt standardizes the columns to Open, High, Low, Close, and Volume.\n\nIt filters the data to only include the date range you specified in the terminal.<\/code><\/pre>\n\n\n\n<ol start=\"2\">\n<li>Indicator Discovery<\/li>\n<\/ol>\n\n\n\n<p>The script performs a &#8220;deep scan&#8221; of your installed libraries to see what tools are available:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pandas-ta-classic: It uses the inspect module to find every available function inside the library.\n\ntaleb (TA-Lib): It similarly scans for all uppercase built-in functions (standard for TA-Lib indicators like RSI, MACD, etc.).\n\nIt then prints a massive list of all combined indicators found so you know what you can choose from.<\/code><\/pre>\n\n\n\n<ol start=\"3\">\n<li>Interactive Configuration<\/li>\n<\/ol>\n\n\n\n<p>This is the &#8220;human-in-the-loop&#8221; part of the script:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Selection: It prompts you to type which indicators you want (e.g., sma, rsi, bbands).\n\nParameters: For every indicator you pick, it displays the help documentation for that specific function and asks you for parameters (like length=20).\n\nCalculation: It runs the math and appends the new data (the indicator values) as new columns in your main DataFrame.<\/code><\/pre>\n\n\n\n<ol start=\"4\">\n<li>Smart Visualization (Mplfinance)<\/li>\n<\/ol>\n\n\n\n<p>The final phase is the most complex part of the code logic:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Panel Management: It automatically decides where to draw the indicators.\n\n    Overlays: Indicators like Moving Averages or Bollinger Bands are drawn directly on top of the price candles (Panel 0).\n\n    Oscillators: Indicators like RSI or MACD are given their own separate \"panels\" below the price chart so they don't clutter the main view.\n\nImage Export: Instead of just popping up a window (which can be difficult in a Wine environment), it generates a plot, saves it as a .png, and then converts it to a .bmp. This is likely done for compatibility with older Windows image viewers or specific legacy software.<\/code><\/pre>\n\n\n\n<p>Pandas-TA is a popular and comprehensive Technical Analysis Library in Python 3 that leverages numba and numpy for accuracy and performance, and pandas for simplicity and bulk processing. The library contains more than 150 indicators and utilities as well as 60 Candlestick Patterns when TA Lib is installed.<\/p>\n\n\n\n<p>Now thats a very good news that example4.py script works because we&#8217;ll be able to add and use all 130 Indicators and Utility functions from pandas ta to QChartist and much more !<br>More info here: https:\/\/github.com\/Data-Analisis\/Technical-Analysis-Indicators&#8212;Pandas<\/p>\n\n\n\n<ul>\n<li>build 326<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>For the build 326 of QChartist TA: What is example4.py (which needs pandas):This script is a command-line financial analysis tool designed to process stock\/forex data from a CSV file, apply various technical indicators from two different libraries, and generate a visual candlestick chart saved as a high-compatibility image (.bmp). Globally, the script operates in four [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":""},"categories":[30,5,13],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/posts\/751"}],"collection":[{"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/comments?post=751"}],"version-history":[{"count":1,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/posts\/751\/revisions"}],"predecessor-version":[{"id":752,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/posts\/751\/revisions\/752"}],"wp:attachment":[{"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/media?parent=751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/categories?post=751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.qchartist.net\/blog\/wp-json\/wp\/v2\/tags?post=751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}