SShareStratbuilder-first algo tradingContinue with Google
Builder

Compose strategies from reusable modules

Visual strategy authoring is the primary workflow. Users snap together indicators, filters, entries, exits, risk, and execution.

Module palette

Available blocks

Click modules to add or remove them from the current strategy graph.

Strategy canvas

New Modular Strategy

These modules form the current graph and the generated JSON payload for upload.

1Price Feed

Normalize candles, volume, and spread into the graph.

2Fast EMA

Detect near-term direction and momentum shifts.

3Slow EMA

Track the broader trend so entries have context.

4Crossover Entry

Enter when fast momentum crosses above the slower trend.

5Trailing Exit

Exit when momentum rolls over or a stop is hit.

6Risk Engine

Cap per-trade exposure and portfolio drawdown.

7Webhook Executor

Emit buy/sell signals to connected API endpoints.

Definition

Upload payload

This is the JSON object the backend will persist as a strategy version.

{
  "name": "New Modular Strategy",
  "assetClass": "Multi-asset",
  "timeframe": "1h",
  "published": false,
  "modules": [
    {
      "id": "price-feed",
      "kind": "price_feed",
      "label": "Price Feed",
      "description": "Normalize candles, volume, and spread into the graph.",
      "params": {
        "source": "ohlcv"
      },
      "dependsOn": []
    },
    {
      "id": "fast-ema",
      "kind": "indicator",
      "label": "Fast EMA",
      "description": "Detect near-term direction and momentum shifts.",
      "params": {
        "period": 8,
        "source": "close"
      },
      "dependsOn": [
        "price-feed"
      ]
    },
    {
      "id": "slow-ema",
      "kind": "indicator",
      "label": "Slow EMA",
      "description": "Track the broader trend so entries have context.",
      "params": {
        "period": 21,
        "source": "close"
      },
      "dependsOn": [
        "price-feed"
      ]
    },
    {
      "id": "entry-engine",
      "kind": "entry",
      "label": "Crossover Entry",
      "description": "Enter when fast momentum crosses above the slower trend.",
      "params": {
        "direction": "long"
      },
      "dependsOn": [
        "fast-ema",
        "slow-ema",
        "volatility-filter"
      ]
    },
    {
      "id": "exit-engine",
      "kind": "exit",
      "label": "Trailing Exit",
      "description": "Exit when momentum rolls over or a stop is hit.",
      "params": {
        "trailingStopPct": 2.2
      },
      "dependsOn": [
        "entry-engine"
      ]
    },
    {
      "id": "risk-engine",
      "kind": "risk",
      "label": "Risk Engine",
      "description": "Cap per-trade exposure and portfolio drawdown.",
      "params": {
        "maxRiskPct": 0.75
      },
      "dependsOn": [
        "entry-engine",
        "exit-engine"
      ]
    },
    {
      "id": "webhook-executor",
      "kind": "execution",
      "label": "Webhook Executor",
      "description": "Emit buy/sell signals to connected API endpoints.",
      "params": {
        "retries": 3
      },
      "dependsOn": [
        "risk-engine"
      ]
    }
  ]
}