Skip to Content
TradingStrategiesAI StrategyOverview

AI Strategy Helper

Generate strategy JSON with the AI assistant of your choice, then paste it into the SharkBlock editor.

How It Works

SharkBlock doesn’t run any AI model itself. Instead, the strategy editor includes a prompt helper that produces a long, structured prompt you can copy into ChatGPT, Claude, or any chat AI. The AI generates a JSON strategy that you paste back into the editor.

The flow:

  1. Open the AI prompt helper in the strategy editor (the sparkle icon)
  2. Pick the prompt typeClassic or Onboarding (see below)
  3. Pick the generation modeFilters or Algorithm
  4. Copy the prompt to your AI assistant
  5. Describe what you want to the AI (risk, target tokens, position size)
  6. Paste the AI’s JSON output back into SharkBlock
  7. Review and adjust before saving

If you want an AI agent that connects directly to SharkBlock and can manage strategies through the API, use our MCP integration instead.


Prompt Types

TypeFor whomStyle
ClassicExperienced tradersDirect: asks targeted questions, generates the JSON
OnboardingBeginnersGuided 7-phase walkthrough with explanations

Generation Modes

ModeOutputComplexity
FiltersFlat filter list (all ANDed)Basic to Intermediate
AlgorithmWorkflow tree with branchesIntermediate to Advanced

Filters Mode — JSON Schema

Use this schema when generating with "editorMode": "filters".

{ "version": 1, "editorMode": "filters", "amount": number | null, "maxConcurrentPositions": number | null, "filterCategories": { "[categoryId]": { "isEnabled": boolean, "activeFilters": [{ "fieldId": string, "operator": "=" | ">" | "<" | ">=" | "<=" | "between", "value": number | [number, number] | boolean, "timeframe"?: "1min" | "5min" | "15min" | "1h" | "4h" | "6h" | "12h" | "24h", "useOrganic"?: boolean }] } }, "buyPreset": { "slippage": number, "priorityFees": "low" | "medium" | "high", "antiMev": "off" | "reduced" | "secured" } | null, "sellPreset": { "slippage": number, "priorityFees": "low" | "medium" | "high", "antiMev": "off" | "reduced" | "secured" } | null, "takeProfitTargets": [{ "type": "take-profit", "triggerPercentageBps": number, "amountPercentageBps": number }], "stopLossTargets": [{ "type": "stop-loss", "triggerPercentageBps": number, "amountPercentageBps": number }] }

Algorithm Mode — JSON Schema

Use this schema when generating with "editorMode": "algorithm".

{ "version": 1, "editorMode": "algorithm", "amount": number | null, "maxConcurrentPositions": number | null, "workflowTree": { "rootId": "start", "nodes": { "start": { "id": "start", "type": "start", "parentId": null, "branchType": null, "childId": string | null }, "[condition-N]": { "id": string, "type": "condition", "parentId": string, "branchType": "yes" | "no" | null, "query": QueryGroup | null, "yesChildId": string | null, "noChildId": string | null, "label"?: string }, "[action-N]": { "id": string, "type": "action", "parentId": string, "branchType": "yes" | "no" | null, "action": "take_position" | "do_nothing" } } }, "buyPreset": { ... } | null, "sellPreset": { ... } | null, "takeProfitTargets": [...], "stopLossTargets": [...] }

QueryGroup Structure

{ "id": string, "combinator": "and" | "or", "not"?: boolean, "conditions": [{ "id": string, "fieldId": string | null, "operator": "=" | ">" | "<" | ">=" | "<=" | "between", "value": number | [number, number] | boolean, "timeframe"?: "1min" | "5min" | "15min" | "1h" | "4h" | "6h" | "12h" | "24h", "useOrganic"?: boolean }], "groups": [QueryGroup] }

Common Parameters Reference

Presets

FieldValuesDescription
slippage1 – 10000 (BPS)100 BPS = 1%, max 100%
priorityFeeslow, medium, highValidator priority fee
antiMevoff, reduced, securedPrivate bundle protection

Targets

FieldValuesDescription
triggerPercentageBpstake-profit: 1 to 10000 (POSITIVE) · stop-loss: -10000 to -1 (NEGATIVE)100 BPS = 1%
amountPercentageBps1 – 10000% of position to sell (10000 = 100%)

Position Settings

FieldValuesDescription
amount> 0 (SOL)Position size per trade
maxConcurrentPositions1 – 50Maximum simultaneous positions

Timeframes

1min · 5min · 15min · 1h · 4h · 6h · 12h · 24h

(Price change does not support 15min.)

Filter Operators

= · > · < · >= · <= · between · before · after · in · not_in


Target Examples

Values in basis points (100 BPS = 1%).

Stop-loss at -20%, sell 100%:

{ "type": "stop-loss", "triggerPercentageBps": -2000, "amountPercentageBps": 10000 }

Take-profit at +50%, sell 30%:

{ "type": "take-profit", "triggerPercentageBps": 5000, "amountPercentageBps": 3000 }

Last updated on