Help & Documentation

Understanding your trading platform

Our platform supports three types of trading strategies, each designed for different use cases and skill levels.

Strategy Type Comparison

Loading comparison data...

Scanner presets define how the platform finds trading opportunities. Different preset types offer varying levels of control and customization.

Scanner Preset Type Comparison

Loading comparison data...

Frequently Asked Questions

What's the difference between Imported, Template, and Custom strategies?

Imported: Professional code-based strategies written in Python files. Best for algorithmic traders who want full control and version control.

Template: Pre-built strategies with proven setups. Best for beginners who want to start trading quickly.

Custom: User-created strategies via visual wizard. Best for traders who want to build their own strategies without coding.

Can I edit an Imported strategy through the UI?

Partially. You can edit:

  • ✅ Schedule (when it runs)
  • ✅ Risk management (stop loss, take profit)
  • ✅ Position sizing
  • ✅ Trading mode (paper/live)

However, you cannot edit:

  • ❌ Strategy logic (entry/exit signals)
  • ❌ Strategy parameters (min_price, max_price, gap_percent, etc.)
  • ❌ Scanner preset (uses dynamic filters from .py file)
  • ❌ Filter criteria

Why? Imported strategies are code-based and version-controlled. All logic must be edited in the .py file to maintain consistency.

Want to customize? Clone the strategy to create an editable custom version!

Can I change strategy parameters like min_price or max_price for imported strategies?

No. For imported (code-based) strategies, all strategy-specific parameters are locked and defined in the .py file.

Examples of locked parameters:

  • min_price, max_price (price range)
  • min_gap_percent (gap percentage)
  • patterns (technical patterns to detect)
  • min_volume, min_avg_volume

Why are they locked?

These parameters directly affect the strategy's trading logic and scanner filters. Allowing UI edits would create confusion about the "source of truth" - is it the .py file or the database?

To change these values:

  1. Edit the .py file in app/strategies/
  2. Restart the Docker container
  3. Changes apply on next run

Alternative: Clone the strategy to create a custom version where all parameters are editable via UI!

How do I deploy changes to an Imported strategy?

For code-based (Imported) strategies:

  1. Edit the .py file in app/strategies/
  2. Restart the Docker container to reload the code
  3. The strategy will use the updated logic on next run

Note: Template and Custom strategies update instantly without restart.

Can I convert between strategy types?

Conversion options:

  • Template → Custom: Yes, automatically converts when you customize
  • Custom → Imported: Possible by exporting logic to .py file (future feature)
  • Imported → Custom: Not recommended - would lose code-based benefits
Which strategy type should I start with?

Recommendations by experience level:

  • Beginner: Start with Template strategies to learn
  • Intermediate: Create Custom strategies via wizard
  • Advanced: Build Imported strategies with Python for full control

You can always clone and modify existing strategies as you learn!

How do I create a new Imported (.py) strategy?

We provide a comprehensive strategy template to get you started!

Quick Start:

  1. Copy app/strategies/STRATEGY_TEMPLATE.py to a new file
  2. Follow the inline comments and placeholders
  3. Implement your trading logic
  4. Register in database and restart container

The template includes:

  • ✅ Clean architecture (pure strategy logic, no risk management)
  • ✅ Separation of strategy parameters vs risk config
  • ✅ Dynamic scanner filter generation
  • ✅ Entry/exit signal methods with examples
  • ✅ Comprehensive inline documentation

Full Documentation:

For detailed guidance, examples, and best practices, see:

app/strategies/README_STRATEGY_DEVELOPMENT.md

Key Architectural Principles:

  • Strategy defines WHAT to trade (logic, parameters)
  • Database defines HOW to manage risk (stop loss, position sizing)
  • StrategyExecutor combines both for execution

Example strategies to reference:

  • weekend_warrior.py - Gap trading with dynamic scanner
  • opening_range.py - Opening range breakouts
What happens to my trades if I edit a strategy?

Active Positions: Open positions continue with their original parameters. Changes only affect new trades.

Schedule Changes: Take effect on next scheduled run.

Risk Management: Changes apply to new positions immediately.

Tip: Test strategy changes in Paper Trading mode first!

Getting Started

1. Choose Your First Strategy

Navigate to the Strategies page and explore available strategies. We recommend starting with a Template strategy in Paper Trading mode.

2. Configure Risk Management

Set your stop loss, take profit, and position sizing. Start conservative - you can always increase risk later.

3. Set Schedule

Choose which days and times your strategy should run. Most day trading strategies run in the morning (9:30 AM - 11:30 AM EST).

4. Enable & Monitor

Toggle the strategy to Active and monitor its performance. Check the Dashboard regularly to review trades and P&L.