Quick Start Guide
Overview
This guide will help you get started with ProAlgoTrader Core, a powerful algorithmic trading framework for Python. ProAlgoTrader is a comprehensive SaaS platform that consists of:
- proalgotrader.com - Web platform for project management and strategy marketplace
- proalgotrader_core - Python framework for building and running trading strategies locally
How It Works
- Sign up at proalgotrader.com
- Create a project with your chosen broker and strategy
- Get session credentials (ALGO_SESSION_KEY and ALGO_SESSION_SECRET)
- Clone strategy repository (for custom strategies) or use marketplace strategy
- Install proalgotrader_core locally
- Run your strategy with
python main.py
Prerequisites
- Web Browser: For accessing proalgotrader.com
- Python 3.13+: Required for proalgotrader_core
- Git: For cloning strategy repositories (for custom strategies)
- pip (Python package installer)
- Broker Account: Active account with Fyers, Angel One, or Shoonya
- GitHub Account: For custom strategy development (optional)
Installation
1. Sign Up and Create Project
- Sign up at proalgotrader.com
- Create a project with your chosen broker and strategy
- Get session credentials (ALGO_SESSION_KEY and ALGO_SESSION_SECRET)
2. Clone Strategy Repository (Custom Strategies)
# Clone your strategy repository
git clone <your-strategy-repo-url>
cd <strategy-name>
3. Set Up Virtual Environment
# Create a virtual environment
python -m venv .venv
# Activate the virtual environment
# On Windows:
.venv\Scripts\activate
# On macOS/Linux:
source .venv/bin/activate
4. Install Dependencies
# Install all dependencies (including proalgotrader-core)
pip install -r requirements.txt
5. Project Structure
Your strategy repository already includes the following structure:
my-trading-bot/
├── main.py # Entry point
├── project/
│ ├── strategy.py # Your trading strategy
│ └── position_manager.py # Position management logic
├── requirements.txt # Dependencies
├── .env.example # Environment template
└── .env # Your environment variables (created from .env.example)
Basic Setup
1. Your main.py is Ready!
Your strategy repository already includes main.py with the correct setup:
# main.py
from project.strategy import Strategy
from proalgotrader_core.start import run_strategy
if __name__ == "__main__":
run_strategy(strategy=Strategy)
2. Your Strategy Files Are Ready!
Your strategy repository already includes all the necessary files:
project/strategy.py- Main trading strategy (ready to customize)project/position_manager.py- Position management logic
You can start editing these files to implement your trading logic.
4. Configure Environment Variables
Your strategy repository comes with a .env.example file. You need to:
# Copy the environment template
cp .env.example .env
# Edit with your actual credentials
nano .env # or use your preferred editor
What's in .env.example:
# ProAlgoTrader session credentials
ALGO_SESSION_KEY=your_session_key_here
ALGO_SESSION_SECRET=your_session_secret_here
Important: Replace the placeholder values with your actual credentials from proalgotrader.com
Running Your First Strategy
1. Install Dependencies
# Install all dependencies (including proalgotrader-core)
pip install -r requirements.txt
2. Configure Session Credentials
Edit the .env file with your ProAlgoTrader session credentials:
- ALGO_SESSION_KEY: From your project dashboard at proalgotrader.com
- ALGO_SESSION_SECRET: From your project dashboard at proalgotrader.com
Note: Your strategy repository includes a .env.example file as a template.
3. Run the Strategy
python main.py
Your strategy will start running and:
- Connect to your broker
- Subscribe to market data
- Execute trades based on your logic
- Manage positions automatically
Understanding the Code
The Strategy Class
The Strategy class is the heart of your trading algorithm. It's where you'll define your trading logic, manage symbols, and configure the behavior of your bot.
Here is a basic strategy.py file to get you started:
from datetime import timedelta
from proalgotrader_core.algorithm import Algorithm
from proalgotrader_core.enums.account_type import AccountType
from project.position_manager import PositionManager
class Strategy(Algorithm):
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.set_account_type(account_type=AccountType.DERIVATIVE_POSITIONAL)
self.set_position_manager(position_manager=PositionManager)
self.set_interval(interval=timedelta(seconds=1))
async def initialize(self) -> None:
# This is where you will add symbols, charts, and indicators
pass
async def next(self) -> None:
# This is where you will implement your trading logic
pass
Key Components
Strategy(Algorithm): Your main class inherits fromAlgorithm, giving you access to all the trading functionalities.__init__(): This is the constructor of your strategy. It's the perfect place to set up your algorithm's configuration.set_account_type(): Define the account type you'll be trading with (e.g.,DERIVATIVE_POSITIONAL,CASH_INTRADAY).set_position_manager(): Assign your customPositionManagerto handle position-related events.set_interval(): Set the frequency (intimedelta) for thenext()method to be called.
Data Access
Both charts and indicators provide easy access to their data:
Chart Data Access:
# Get current close price
current_close = await chart.get_data(0, "close")
# Get previous high price
previous_high = await chart.get_data(1, "high")
# Get full DataFrame
chart_data = chart.data
Indicator Data Access:
# Get current RSI value
current_rsi = await rsi.get_data(0, "rsi")
# Get previous RSI value
previous_rsi = await rsi.get_data(1, "rsi")
# Get full indicator DataFrame
indicator_data = rsi.data
Row Number System:
-
Row 0: Most recent data point
-
Row 1: Previous data point
-
Row 2: Two periods ago
-
initialize(): This asynchronous method is called once at the start of the trading session. Use it to:- Add the symbols you want to trade (
add_equity,add_future,add_option). - Create charts for your symbols (
add_chart). - Register any indicators you need.
- Add the symbols you want to trade (
-
next(): This asynchronous method is called repeatedly at the interval you defined. This is where you'll implement your core trading logic, such as:- Checking for trading signals.
- Placing
buyorsellorders. - Managing your open positions.
Next Steps
Now that you have a basic understanding of the Strategy class, you can move on to:
- Adding Indicators: Learn how to add technical indicators to your charts.
- Implementing Risk Management: Set up rules to manage your risk.
- Trading with Multiple Symbols: Expand your strategy to trade more than one symbol.
- Exploring Options Trading: Dive into the world of options trading.
Check out the rest of the documentation for more in-depth guides and examples.
Ready to start trading? Follow this guide to create your first algorithmic trading strategy with ProAlgoTrader Core! 🚀