Skip to main content
Version: 1.0.0

Start with Python

If you just want an example strategy check here.

Create a new strategy

  1. On your homepage, click the plus button under "My Strategies" and give your new strategy a name
  2. Follow the todo-list on the right side of the builder. You'll choose a strategy type and an asset to trade

Swap to code-view

To use Python, swap to the "Logic" tab and then to the "Code" view to check out your new strategy's source code. You'll see an empty method that looks like this —

def handle_new_bar(data: VelocitySlice, emit: Emit, atoms: VelocityAtomManager):

Strategy Lifecycle

Strategies have a lifecycle. The lifecycle for historic tests, paper trading and live trading will be the same, just on different time scales.

  1. At the start of a test, Pluto collects indicators and data points the strategy requests. This collection process enables us to pre-fetch needed data for the test.
  2. Once we know what's needed; we fetch the OHCL data and compute derivate data like indicators
  3. Your strategy's defined handle_new_bar method is provided slices of data, one by one, but not in order.
  4. Your strategy emits signals — the emitted signals are collected for processing
  5. Signals are processed in chronological order to produce an order book, equity curve, and other test results

Run a Test

The next step to developing your strategy is to run your first test. You'll see "Test Options" beside your new strategy once you have completed the todo-list.

  1. Pick dates and an initial capital
  2. Click "Run Test"


For your strategy to do something, it has to emit a signal. There are signals for telemetry and for position management. Check out the pages below to get started.

Signal TypeUse Cases
TelemetryAdds markers to the chart view, logs important data, etc
Position ManagementEnter and exit long and short positions