Of course. The term "TradeBlazer Python" refers to the integration of the Python programming language with the TradeStation / MultiCharts platform (which was historically built on the "TradeBlazer" engine). This integration is primarily achieved through Python Script, a powerful feature in MultiCharts that allows you to use Python for creating indicators, strategies, and signals.

Here’s a comprehensive breakdown covering what it is, why it's useful, how it works, and where to get started.
What is "TradeBlazer Python"?
In simple terms, it's the ability to write your trading logic and analysis in Python instead of the proprietary PowerLanguage (used by TradeStation) or PowerLanguage.NET (used by MultiCharts).
- Platform: MultiCharts (and to a lesser extent, via third-party tools, TradeStation).
- Language: Python.
- Engine: The core execution engine is still MultiCharts' or TradeStation's, but your strategy logic is handled by a Python interpreter running alongside the platform.
Think of it as a bridge. Python Script allows you to use Python's vast ecosystem of libraries (like NumPy, Pandas, Scikit-learn, Matplotlib) to perform complex calculations, data analysis, and machine learning, and then feed the results back into the MultiCharts charting and execution environment.
Why Use Python with MultiCharts / TradeStation?
This is the key question. If you already have PowerLanguage, why switch or add Python?

| Feature | PowerLanguage (PL) | Python Script |
|---|---|---|
| Learning Curve | Steep, proprietary language. | If you know Python, it's easy. Huge global community. |
| Data Analysis | Good for basic to intermediate calculations. | Excellent. Native access to NumPy, Pandas, Scikit-learn for complex backtesting, statistical analysis, and ML. |
| Visualization | Limited to standard indicator plotting. | Excellent. Use Matplotlib and Seaborn to create complex, custom charts and heatmaps directly from your strategy. |
| Third-Party Libraries | None. You are limited to what TradeStation/MultiCharts provides. | Unlimited. Access to millions of packages from PyPI for almost any task imaginable (web scraping, APIs, NLP, etc.). |
| Execution Speed | Highly optimized C++ engine. Very fast. | Slower. Python is an interpreted language. Heavy calculations can slow down backtesting. |
| Platform Integration | Seamless. Native support for all order types, stops, profit targets, and portfolio analytics. | Good, but requires mapping. You need to map Python variables and signals to MultiCharts' order management system. |
In short, you use Python Script when:
- You want to leverage your existing Python skills.
- Your strategy requires complex mathematical or statistical analysis that is cumbersome in PowerLanguage.
- You want to use machine learning models to generate trading signals.
- You need to perform data preprocessing or analysis using Pandas before applying your strategy logic.
- You want to create highly customized, publication-quality charts.
How Does It Work? (The Architecture)
The integration works through a well-defined interface. Your Python code interacts with the MultiCharts environment through a set of predefined functions and objects.
The Core Components:
pythonscript.dll: This is the bridge. It's a Dynamic Link Library that MultiCharts loads to communicate with the Python interpreter.- The Python Environment: MultiCharts comes bundled with a specific version of Python and its necessary libraries (like
numpy,pandas). It's a self-contained environment to avoid conflicts with your system's Python. - The
mcObject: This is the most important part. When your Python script runs, it gets access to a special global object calledmc. This object is your gateway to the MultiCharts environment. Throughmc, you can access:- Data:
mc.Data(gets information about the current bar, symbol, timeframe, etc.) - Trading:
mc.Order,mc.Position(to place and manage orders) - Indicators:
mc_indicator(to plot values on the chart) - Market Data:
mc.GetSeries()(to get historical data into a NumPy array)
- Data:
A Simple Example: A Moving Average Crossover Strategy
This strategy goes long when the 10-period simple moving average crosses above the 30-period SMA, and short when it crosses below.
# This is the Python code for a MultiCharts Strategy
import numpy as np
def main():
# --- Inputs ---
# These are parameters you can change from the MultiCharts strategy settings
fast_len = 10
slow_len = 30
# --- Data Handling ---
# Get the closing price series for the chart's symbol and period
# The data is returned as a NumPy array
close_series = mc.GetSeries(mc.DataType.CLOSE, -1) # -1 means all available bars
# --- Calculate Indicators ---
# Calculate the Simple Moving Averages using NumPy
# We use len() to handle the case where not enough data is available yet
if len(close_series) >= slow_len:
fast_ma = np.convolve(close_series, np.ones(fast_len)/fast_len, mode='valid')
slow_ma = np.convolve(close_series, np.ones(slow_len)/slow_len, mode='valid')
# Align the arrays to the current bar index
current_fast_ma = fast_ma[-1]
current_slow_ma = slow_ma[-1]
previous_fast_ma = fast_ma[-2]
previous_slow_ma = slow_ma[-2]
# --- Generate Signals ---
# Check for crossover (fast_ma crosses above slow_ma)
if current_fast_ma > current_slow_ma and previous_fast_ma <= previous_slow_ma:
# If not already long, enter a long position
if mc.Position.MarketPosition == 0: # 0 means flat
mc.Order.SendMarket("Enter Long", 1) # Buy 1 contract
# Check for crossunder (fast_ma crosses below slow_ma)
elif current_fast_ma < current_slow_ma and previous_fast_ma >= previous_slow_ma:
# If not already short, enter a short position
if mc.Position.MarketPosition == 0: # 0 means flat
mc.Order.SendMarket("Enter Short", -1) # Sell 1 contract (short)
How to Get Started (in MultiCharts)
- Check Your Version: Python Script is a feature available in MultiCharts version 12.0 and later. Make sure you have a recent build.
- Enable the Feature: In MultiCharts, go to
Tools->Options->Language. Ensure that "Enable Python language" is checked. - Create a New Signal/Indicator:
- Open a chart and right-click.
- Select
Insert StudyorInsert Signal. - In the "Insert Study/Signal" window, click the
Newbutton. - Choose "Python Signal" or "Python Indicator" as the type.
- Write the Code: A text editor will open where you can paste your Python code.
- Define Inputs: Use the
input()function at the top of your script to create parameters that can be adjusted from the MultiCharts interface.fast_len = input(10, "Fast MA Length") slow_len = input(30, "Slow MA Length")
- Compile and Apply: Click "OK" or "Apply." MultiCharts will compile your script. If there are syntax errors, it will let you know. If it compiles successfully, it will be applied to your chart.
Important Considerations and Limitations
- Performance: For intensive backtesting (e.g., looping through 20 years of daily data for 100 symbols), Python will be significantly slower than PowerLanguage.NET or C++. For most strategies, it's fast enough, but be mindful of this.
- No Multi-Threading: Python in MultiCharts runs in a single thread. You cannot parallelize your backtesting process within a single script like you might with a standalone Python application.
- Error Handling: Errors in your Python script can cause MultiCharts to become unstable. Always wrap critical code in
try...exceptblocks to catch and handle potential errors gracefully. - Documentation: The official documentation for Python Script within MultiCharts is good but can be sparse. The best resource is often the community forum and example scripts shared by other users.
- TradeStation: While MultiCharts has first-class Python support, TradeStation does not natively support Python. To use Python with TradeStation, you must use third-party tools like TS-Py or Lean, which involve more complex setup and are not officially supported.
Conclusion
TradeBlazer Python (Python Script in MultiCharts) is a fantastic bridge between the robust, professional-grade backtesting and execution environment of MultiCharts and the powerful, flexible, and widely-used Python programming language. It's not a replacement for PowerLanguage but a powerful complement, allowing traders and quants to bring advanced data analysis and machine learning capabilities directly into their workflow. If you are a Python user, it's a compelling reason to choose MultiCharts over other platforms.

