Skip to main content

AI Makler — Intelligent Financial Agent With Memory and Multi-Workflow Orchestration

· 5 min read
ApudFlow OS
Platform Updates

Markets move fast, and making sense of them requires not just data but context — what happened yesterday, what decisions you made, how conditions have changed. The AI Makler worker brings that context to life: an intelligent financial agent that remembers past sessions, makes decisions, manages positions, and can even trigger other workflows.

Think of it as a tireless trading assistant that keeps notes on every session and gets smarter the more you use it.

What Is AI Makler?

AI Makler (Polish for "broker") is an AI-powered financial agent that lives in the AI category of the left sidebar. Unlike stateless AI workers that process one request at a time, AI Makler remembers its past analyses, decisions, and market observations across multiple runs within the same workflow.

This makes it ideal for:

  • Continuous market monitoring — the agent knows what it saw yesterday
  • Trading signal generation — it tracks its own accuracy over time
  • Portfolio management — it remembers open positions and reviews them
  • Multi-step workflows — it can trigger other workflows based on analysis

Key Features

🧠 Persistent Memory

  • One MongoDB document per workflow — all runs share the same memory
  • Remembers: market state, analysis, orders, triggered workflows
  • Configurable history (1–100 iterations, default 20)
  • No raw prompts saved — just the meaningful context and decisions

📊 Two Processing Modes

ModePurpose
AnalysisExamine market data and news, identify trends, assess risk
DecisionMake concrete trading calls: buy, sell, close, or hold

📈 Structured Orders

When the agent decides to trade, it returns proper order objects:

{
"action": "buy",
"symbol": "BTCUSD",
"entry_price": 86500.00,
"target_price": 92000.00,
"stop_loss": 84000.00,
"position_size": 0.5,
"order_type": "market",
"reason": "Bullish flag breakout on above-average volume",
"certainty_pct": 82
}

The agent only generates orders when certainty > 60%. If it's not confident, it just returns analysis — no false signals.

🔗 Workflow Orchestration

AI Makler can trigger other workflows to perform complex tasks. List the allowed workflow IDs in the configuration, and the agent will decide when to run them, passing data along. Triggered runs are fire-and-forget via the same Redis queue as manual runs.

💼 Position Management

Pass your current open positions as a JSON array, and the agent will review each one — deciding whether to close, hold, or modify based on current market conditions.

How to Use It

Adding the Worker

  1. Drag AI Makler from the AI category onto your canvas
  2. Connect it after your data sources (or trigger it on a schedule)
  3. Configure the parameters

Configuration

ParameterTypeDescription
modeselectanalysis (default) or decision
datamarkdownMarket data — prices, indicators, volumes
newsmarkdownNews and events
allowedWorkflowstextWorkflow IDs the agent may trigger (one per line)
investorTypeselectaggressive, moderate (default), conservative
instrumentTypesselectall, crypto, forex, stocks, commodities
orderTypesselectmarket, limit, stop-loss, take-profit
currentPositionshiddenJSON array of open positions
maxHistoryIterationsnumber1–100, default 20

Output Fields

FieldTypeWhat it contains
resultsstringFull analysis or decision reasoning
marketStatestringBrief market summary
ordersarrayTrading orders (empty if no decisions)
ordersCountnumberNumber of orders
triggeredWorkflowsarrayWorkflows that were triggered
triggeredCountnumberNumber of workflows triggered
memorySizenumberCurrent history depth
latestActionstringLast order's action (buy/sell/close/hold)
latestSymbolstringLast order's symbol
latestCertaintynumberLast order's confidence

Use Cases

1. Market Monitor With Memory

[Schedule Trigger] → [Fetch Market Data] → [AI Makler: analysis] → [Condition: alert?] → [Telegram Notify]

AI Makler runs every hour, sees how conditions evolved, and sends alerts when patterns change.

2. Signal Generator With Position Tracking

[Schedule] → [Fetch Data + News] → [AI Makler: decision] → [Save Orders to User List]

Agent analyses market data and news, returns buy/sell signals with targets and stop-losses.

3. Portfolio Manager

[Trigger] → [Fetch Positions + Market Data] → [AI Makler: decision] → [Run Workflow "Execute Orders"]

Agent receives current open positions, reviews each one, and decides what to do. The execution workflow handles the actual order placement.

4. Multi-Strategy Coordinator

[Trigger] → [AI Makler: analysis]
→ [Trigger: Run Backtest Workflow]
→ [Trigger: Run Risk Analysis Workflow]

Agent decides which analysis workflows to run based on market conditions, passing relevant data to each.

Memory in Action

When AI Makler runs for the first time, it has clean memory. After each session, it saves:

  • What the market looked like
  • What analysis it produced
  • What orders it generated
  • What workflows it triggered

On the next run, it gets a summary of previous sessions:

PREVIOUS SESSIONS (most recent first):
[1] 2026-06-21T08:00:00 | BTCUSD: Bullish, ETHUSD: Neutral | Orders: 2
[2] 2026-06-20T20:00:00 | BTCUSD: Ranging, high volume | Orders: 1 | Triggered: 1
[3] 2026-06-20T12:00:00 | BTCUSD: Bearish rejection at 88k

This context lets the agent spot trends in its own decision-making and adapt.

This is not financial advice. Trading involves substantial risk of financial loss. The AI Makler worker is a tool for analysis and automation — all trading decisions should be reviewed by a qualified professional. Past performance in memory does not guarantee future results.

List Change Trigger — Reactive Workflows That Fire When Your Data Changes

· 6 min read
ApudFlow OS
Platform Updates

Need a workflow that runs the moment someone adds a row to your trading journal, updates a watchlist price, or deletes an expired entry? The new List Change Trigger does exactly that — it watches a User List and fires your workflow whenever rows are added, updated, or deleted.

No polling, no manual kicks, no cron jobs guessing when data changes.

What Is the List Change Trigger?

The List Change Trigger is a new node type in the Triggers category of the left sidebar. Drag it onto your canvas, pick which list to watch and which operations matter to you, click Run Test, and you are done.

From that moment on, whenever the watched list changes — through the UI, through the User Lists worker in another workflow, or through the API — your workflow fires automatically with the updated data passed in as context variables.

Reactive, Not Polling

Under the hood, list mutations publish events to a Redis Stream, and a background listener picks them up using XREAD BLOCK — the same efficient mechanism used by message queues. There is no polling, no wasted compute, and near-zero latency (typically under 5 seconds).

Key Features

  • List autocomplete — start typing your list name and the dropdown finds it instantly
  • Multi-select trigger operations — choose exactly which changes matter: add_row, update_rows, delete_row, or any combination
  • Optional DSL filter — only fire the workflow when rows matching a condition are affected (e.g. only when status eq active AND price gt 100)
  • Pass list data — toggle to include the full list rows in the context variables so downstream workers can process them immediately
  • Operation filtering — if you only care about updates, the trigger ignores adds and deletes

How to Use It

Finding the Worker

Look in the Triggers category in the left sidebar, or search for "list change". The node has a 📋 icon with a pulse indicator showing it monitors for changes.

Adding to Your Workflow

  1. Drag the List Change Trigger node onto the canvas
  2. Connect it to the rest of your workflow nodes
  3. Configure — click the node to open the right panel

Configuration

ParameterWhat It Does
List to watchAutocomplete — search and select any User List you own
Trigger onCheckboxes: add_row, update_rows, delete_row. Pick one or more
DSL FilterOptional expression like status eq active — workflow only fires if matching rows exist
Pass list dataToggle — when on, the full list rows are available as trigger.listData in context variables

Run Test

Click Run Test on the trigger node. This saves the configuration and returns:

  • Statusactive if everything is set up correctly
  • List name — confirmation of which list is being watched
  • Trigger operations — which changes will fire the workflow
  • Row count — how many rows the list currently has

Once saved, the trigger is live — any matching change to that list will start a workflow run.

Context Variables

The following variables are available in downstream nodes when the trigger fires:

VariableDescriptionExample
trigger.listIdThe MongoDB ID of the list"6a3813519ddc3a467466c561"
trigger.listNameThe display name of the list"Trading Journal Q2"
trigger.operationWhat happened"update_rows"
trigger.listDataCurrent rows (array of objects)[{symbol: "AAPL", price: 190}]
trigger.matchedRows(if filter set) Only the rows that matchedfiltered subset

Use Cases

Reactive Trading Journal

When you update a trade's P&L in your journal list, the workflow recalculates performance metrics, updates a dashboard widget, and sends a Telegram summary.

[Journal List Update] → [List Change Trigger]
→ [Calculate Metrics] → [Update Dashboard] → [Send Summary]

Watchlist Price Monitor

A market data worker periodically updates prices in a watchlist. Every time a price changes, the List Change Trigger fires a workflow that checks for breakout signals, evaluates risk, and alerts you.

[Price Updater Worker] → [Update Watchlist] → [List Change Trigger]
→ [Check Breakouts] → [Evaluate Risk] → [Send Alert]

Multi-Step Data Pipeline

A data collection workflow adds rows to a source list. The List Change Trigger detects the new rows and kicks off a processing pipeline — enriching, analyzing, and storing results in another list.

[Data Collection] → [Add Rows to Source List] → [List Change Trigger]
→ [Enrich Data] → [AI Analysis] → [Store in Result List]

Approval Workflow

A team member adds a row with status: "pending_approval" to a shared list. The trigger fires, the workflow checks the DSL filter (status eq pending_approval), runs validation, and sends a Slack or email notification to the approver.

[List Change] → [DSL Filter: status eq pending_approval] → [Validate]
→ [Notify Approver via Telegram/Slack]

Audit Trail

Track every change to critical lists. The trigger fires on every operation, logs the change to a second list or MongoDB collection, and keeps a full audit history.

[Any List Change] → [List Change Trigger] → [Log to Audit List]
→ [Alert on Suspicious Changes]

Workflow Patterns

Single-Trigger Standalone

The simplest setup: one trigger, one workflow. Good for simple reactions.

[List Change] → [List Change Trigger] → [Process Data] → [Output]

Chained Triggers

Multiple workflows can watch the same list with different filters. Workflow A handles add_row for new entries, Workflow B handles status eq active updates only.

[Same List]
├─ [Trigger A: add_row] → [New Entry Handler]
└─ [Trigger B: update_rows + DSL filter] → [Active Item Processor]

Hybrid Timed + Reactive

Use the Schedule Trigger for periodic maintenance runs and the List Change Trigger for immediate reactions. Both point to shared downstream logic.

[Schedule Trigger (hourly)] → [Shared Logic: Validate → Clean → Report]
[List Change Trigger (instant)] → [Shared Logic: Validate → Clean → Report]

Parameter Loop + List Change

A Parameter Loop worker generates multiple configurations and stores them in a list. Each new row triggers a separate workflow run that backtests that configuration.

[Parameter Loop] → [Add Row to Config List] → [List Change Trigger (per row)]
→ [Backtest Config] → [Store Results]

Best Practices

  • Be specific with operations — if you only care about updates, uncheck add_row and delete_row. This keeps your workflows focused and avoids unnecessary runs.
  • Use DSL filters for large lists — if your list has hundreds of rows but you only care about rows with status eq active, set the filter. The triggered workflow receives matchedRows — only the relevant subset.
  • One trigger per (workflow, list) pair — you can have multiple workflows watching the same list, but only one trigger per workflow-list combination.
  • Pass list data — keep this enabled unless your list is extremely large. It saves a DB round-trip in downstream workers.
  • Test with Run Test — the "Run Test" button saves the trigger config and returns a summary. Make a change to the list and your workflow should fire within seconds.

How It Works (Architecture)

User List Mutation (UI / Worker / API)
→ publish_list_change_event()
→ XADD to Redis Stream "apudflow:stream:list-change-events"
→ Listener (XREAD BLOCK, 5s timeout)
→ Find matching subscriptions in MongoDB
→ Check triggerOn matches operation
→ Evaluate DSL filter (if set)
→ Create workflow run with context vars
→ Push to workflow queue
→ Executor picks up and runs the workflow

The entire pipeline is asynchronous and event-driven. There is no blocking, no polling, and no performance impact on the list mutation itself.

This is not financial advice. Trading involves significant risk of loss. Use reactive workflows at your own discretion.

Run Workflow — Chain, Orchestrate, and Reuse Workflows Like Building Blocks

· 5 min read
ApudFlow OS
Platform Updates

You've built a library of workflows — data pipelines, signal generators, backtesters, alert senders. Until now, each one ran in isolation. The new Run Workflow worker changes that: trigger any workflow from inside another workflow, pass variables between them, and (optionally) wait for results.

This turns your workflows into reusable building blocks — your data-processing workflow becomes a function call, your backtest runner becomes a sub-process, your entire analysis chain becomes a single parent workflow.

What Is the Run Workflow Worker?

The Run Workflow worker lives in the Flow category of the left sidebar. Drag it onto your canvas, select a target workflow (via autocomplete), optionally pass variables, and choose a mode. That's it.

It's a flow-control node — it orchestrates other workflows rather than processing data itself.

Key Features

  • Autocomplete target selection — search and pick any of your workflows by name
  • Variable passing — send key-value data that becomes available in the target workflow as {{ variable }}
  • Two execution modes — fire-and-forget for parallel execution, wait-for-result for sequential chaining
  • Timeout control — in wait mode, configure how long to wait (10–600 seconds)
  • Full result capture — wait mode returns every node's output from the target workflow

How to Use It

Finding the Worker

Look in the Flow category in the left sidebar, or search for "run workflow". The node shows a play-arrow icon with a gear.

Adding to Your Workflow

  1. Drag the Run Workflow node from the left sidebar onto your canvas
  2. Connect it to preceding nodes (e.g., a trigger or data source)
  3. Click the node — the right panel opens with configuration fields
  4. Select target workflow — the autocomplete field lets you search by name

Configuration

FieldDescription
Target WorkflowSearch and select the workflow to trigger (required)
Modefire-and-forget (default) or wait-for-result
VariablesJSON object with key-value pairs to pass to the target workflow
Timeout(Expert) Max seconds to wait — 10–600, default 300. Only applies in wait mode

Passing Variables

Any variables you pass become available in the target workflow's context. For example, if you pass:

{
"symbol": "BTCUSD",
"timeframe": "1h",
"limit": 200
}

The target workflow can reference them as {{ symbol }}, {{ timeframe }}, and {{ limit }} in any downstream node — just like webhook trigger variables.

Mode Comparison

AspectFire-and-ForgetWait-for-Result
BehaviorTrigger and continue immediatelyTrigger and wait for completion
Use caseParallel execution, fan-outSequential pipelines, data transformation
Outputrun_id for trackingtargetResults with all node outputs
BlockingNo — workflow continuesYes — pauses until target finishes
TimeoutN/AConfigurable (10–600s, default 300s)

Workflow Chaining Patterns

1. Simple Trigger Chain (Fire-and-Forget)

[Manual Trigger] → [Run Workflow "Fetch Data"] → [Run Workflow "Send Alert"]

The parent workflow triggers "Fetch Data" and "Send Alert" — both run independently.

2. Data Pipeline (Wait-for-Result)

[Schedule Trigger] → [Run Workflow "Fetch & Clean Data" (wait)] → [Run Workflow "Generate Signals" (wait)] → [Run Workflow "Store Results"]

Each step waits for the previous one to finish. The parent orchestrates a multi-stage pipeline.

3. Fan-Out / Parallel Processing

[Trigger] → [Run Workflow "Analyze BTC" (fire-and-forget)]
→ [Run Workflow "Analyze ETH" (fire-and-forget)]
→ [Run Workflow "Analyze SOL" (fire-and-forget)]

All three analysis workflows launch simultaneously — great for multi-symbol scans.

4. Reusable Report Generator

[Webhook Trigger] → [Fetch Data] → [Process Signals] → [Run Workflow "Generate Report" (wait)] → [Telegram Notify]

The "Generate Report" workflow is shared across many parent workflows — write once, reuse everywhere.

Financial Markets Applications

Strategy Pipeline

[Schedule Trigger] → [Run Workflow "Fetch OHLCV Data" (wait)]
→ [Run Workflow "Compute Indicators" (wait)]
→ [Run Workflow "Run Backtest" (wait)]
→ [Telegram Send Results]

Chain your data-fetching, indicator, and backtest workflows together. Each is independently testable and reusable.

Multi-Symbol Analysis

[Trigger] → [Parameter Loop] → [Run Workflow "Analyze Symbol"]

Use a Parameter Loop to iterate over symbols, passing each one to a shared analysis workflow via variables. Collect results in a final aggregation step.

Output

Fire-and-Forget

  • run_id — the ID of the triggered run (use to track progress)
  • targetWorkflowName — name of the triggered workflow
  • passedVariables — the variables that were passed along

Wait-for-Result (all of the above, plus)

  • targetStatusfinished, failed, error, or cancelled
  • targetResults — object mapping each node name to its output
  • targetFinishedAt — timestamp of completion

Tips

  • Name your workflows clearly — the autocomplete shows workflow names. Descriptive names make selection faster.
  • Use wait mode for dependencies — if step B needs step A's output, use wait-for-result.
  • Use fire-and-forget for independence — if steps don't depend on each other, let them run in parallel.
  • Watch timeouts — complex target workflows may need more than 300s. Adjust the timeout parameter in expert settings.
  • Variable names matter — pass variables with names that match what the target workflow expects.

This is not financial advice. Trading involves risk of financial loss. The Run Workflow worker is a tool for automation — you are responsible for the logic and outcomes of your workflows.

Webhook Trigger — Event-Driven Automation From Any External System

· 4 min read
ApudFlow OS
Platform Updates

Need to kick off a workflow from an external system — a CI/CD pipeline, a trading signal provider, a custom script, or even another ApudFlow workflow? The new Webhook Trigger worker lets you do exactly that: expose an HTTP endpoint that starts your workflow on demand.

Unlike the Schedule Trigger (which runs on a timer), the Webhook Trigger is passive — it waits for an incoming HTTP call, then passes the caller's data straight into your workflow as context variables.

What Is the Webhook Trigger?

The Webhook Trigger is a new node type in the Triggers category of the left sidebar. Drag it onto your canvas, define the variables you expect from the caller, click Run Test, and you get a stable URL like:

POST /api/t/{workflow_id}/{webhook_id}

Any external system — or even another workflow — can call that URL and your workflow runs with the data it sent.

Key Features

  • Both POST and GET — send variables in a JSON body (POST) or as query parameters (GET)
  • Typed variables — define each variable as string, integer, boolean, or list with validated choices
  • Required / optional — mark variables as required; the endpoint rejects calls that miss them
  • Default values — if a variable isn't provided, the default kicks in
  • Optional API key — secure the endpoint with a bearer token (or leave it open)
  • Isolated path — uses /api/t/ prefix, separate from the existing data provider endpoints under /api/w/

How to Use It

Finding the Worker

Look in the Triggers category in the left sidebar, or search for "webhook". The node has a distinctive lightning-bolt icon with an outgoing arrow.

Adding to Your Workflow

  1. Drag the Webhook Trigger node onto the canvas
  2. Connect it to the rest of your workflow nodes
  3. Configure variables — click the node and the right panel shows a visual variable editor

The Variable Editor

Each variable is a card with:

FieldWhat It Does
NameThe variable key (callers use this name when sending values)
Typestring (default), integer, boolean, or list
Default valueUsed if the caller doesn't provide a value
RequiredToggle — if on, the call must include this variable
Choices(list type only) One option per line, e.g. buy / sell / hold

Below the variable cards there's an optional API Key field — leave it blank for an open endpoint, or set a secret key to restrict access.

Run Test

Click Run Test on the trigger node. This saves the configuration and returns:

  • The endpoint URL you can share with external systems
  • The variables you defined, each shown as a top-level output field with its default value
  • The statussuccess if everything is configured correctly

Calling the Endpoint

POST (recommended for complex data)

curl -X POST "https://api.apudflow.io/api/t/{workflow_id}/{webhook_id}" \
-H "Content-Type: application/json" \
-d '{"symbol": "BTCUSD", "limit": 100, "mode": "backtest"}'

GET (quick tests / simple values)

curl "https://api.apudflow.io/api/t/{workflow_id}/{webhook_id}?symbol=BTCUSD&limit=100&mode=backtest"

If you set an API key, pass it as an Authorization: Bearer <key> header or api_key=<key> query parameter.

Variable Resolution Priority

  1. Values from the request (highest priority)
  2. Default values from the trigger configuration
  3. Empty string if neither is provided and the variable is optional

Use Cases

External Trading Signal Execution

A trading signal provider (e.g. MetaTrader, TradingView webhook, custom bot) calls your workflow with symbol, direction, and position size — your workflow validates, logs, and executes.

[TradingView Alert] → HTTP POST → [Webhook Trigger] → [Validate] → [Execute Trade] → [Log Results]

CI/CD Pipeline Trigger

After a deploy, your pipeline calls the webhook with the build version and environment — your workflow runs tests, sends notifications, and updates dashboards.

[CI/CD Pipeline] → HTTP POST → [Webhook Trigger] → [Run Tests] → [Send Notification]

Worker-to-Workflow Communication

One workflow's final node (e.g. a Signal Generator or AI Analyzer) triggers another workflow by calling its webhook URL. This decouples large automations into manageable sub-workflows.

[Workflow A: Data Collection] → [AI Analysis] → HTTP POST → [Workflow B: Execution]

Scheduled + Webhook Hybrid

Use the Schedule Trigger for regular runs (e.g. every hour) and the Webhook Trigger for ad-hoc event-driven runs — both point to the same downstream logic.

Best Practices

  • Set an API key if the endpoint is exposed to the internet — otherwise anyone who knows the URL can trigger your workflow
  • Use typed variables — mark boolean and integer fields with matching types so the endpoint validates incoming data
  • Default values are your safety net — set sensible defaults so the workflow runs even if the caller omits a field
  • Test with curl first before integrating into a production system

This is not financial advice. Trading involves significant risk of loss. Use webhook-triggered workflows at your own discretion.

User Lists — Microsoft Lists-Style Data Storage Now Available in Workflows

· 3 min read
ApudFlow OS
Platform Updates

Ever needed a quick table to track trade ideas, journal entries, watchlist notes, or custom reference data — without setting up a full database? With the new User Lists feature, you can create, edit, query, and delete structured data tables directly inside the platform, all without writing a single line of SQL.

Think of it as Microsoft Lists — but built right into your workflow engine.

What Are User Lists?

A User List is a simple table stored as one document in MongoDB. Each list has:

  • Columns — named fields (no strict type system — store strings, numbers, dates, or anything else in the same column)
  • Rows — the data itself, editable inline like a spreadsheet
  • User isolation — every list is owned by exactly one user. Nobody else can see, edit, or delete it
  • Workflow association — optionally link a list to a specific workflow

Lists live in the Profile → Lists tab, right next to Workflows and other tools.

Query With a Simple DSL

You don't need SQL to find what you're looking for. The built-in filter DSL uses plain words:

status eq active AND age gt 18
name contains john OR role eq admin
price gte 100 AND price lte 500

Supported operators: eq, neq, gt, gte, lt, lte, contains, startswith, endswith, in, exists. Combine with AND / OR and parentheses ( ).

Use Cases

Use CaseExample
Trading JournalLog each trade: entry, exit, P&L, notes
Watchlist with NotesTrack symbols with custom tags and comments
Parameter ReferenceStore tested parameter sets for quick recall
Task TrackerSimple todo / checklist per workflow
Reference DataStatic tables (symbol metadata, broker info, API keys mask)

Access From Workflows

The User Lists worker exposes all CRUD operations as workflow nodes. You can:

  1. Read a list → process with other workers
  2. Add a row from signal output (e.g. log trade signals)
  3. Update rows based on market conditions
  4. Delete old entries in a cleanup step

All operations go through the same WebSocket channel as the rest of the platform — no REST endpoints, no external dependencies.

Available Functions

FunctionWhat It Does
createNew list with columns
getFetch one list by ID
listAll lists (optionally scoped to a workflow)
update_rowsReplace all rows
add_rowAppend one row
delete_rowRemove by _rowId
delete_listRemove entire list
add_columnAdd a new field to existing data
rename_columnChange a column's label
queryFetch with a DSL filter

Start Using It

Open Profile → Lists in the sidebar, click New List, give it a name, define your columns, and start entering data. To use lists in a workflow, add the User Lists worker and select the function you need.

Disclaimer: User Lists are designed for convenience storage — configuration, reference data, notes, and small-to-medium datasets. For high-volume or analytical workloads, use MongoDB directly or export to DuckDB.

From Grid Search to Live Trading - Automate Strategy Deployment with Parameter Loop

· 4 min read
ApudFlow OS
Platform Updates

The gap between "this strategy looks good in backtest" and "this strategy is running live" is where most trading ideas die. You optimized the parameters, saved the results, and then what? Manually type the numbers into a live workflow? Run the full sweep on every trigger?

The Parameter Loop worker was designed to bridge that gap. Here's how to go from sweeping to shipping in one workflow.

The Three-Mode Philosophy

Every Parameter Loop node has a prodMode dropdown with three options — and choosing the right one for each stage of development is the key to a smooth deployment pipeline.

Development Mode: prodMode = disabled

What happens: During manual "Run Test", the full sweep executes. During scheduled/webhook runs, the node is skipped (returns immediately).

When to use: When you're still exploring. You want full control — run sweeps manually, inspect results, refine the parameter grid, iterate.

Best practice: Set disabled for the first 10-20 sweeps while you narrow down the optimal region.

Staging Mode: prodMode = use_best

What happens: During "Run Test", the full sweep executes as normal. During scheduled runs, the worker loads the best parameters from the most recent saved session and uses them directly — no sweep runs.

When to use: Once you've found a good parameter set and want to use it in production, but still want the ability to re-sweep manually on demand.

How it works under the hood:

  1. Your last successful sweep saved a session (because you set sessionLabel)
  2. The session contains bestParameters and bestValue
  3. On production triggers, use_best loads bestParameters and writes them into the worker's vars
  4. The strategy executes with optimized values — no computational waste

Power Mode: prodMode = always_run

What happens: The sweep runs every single time — whether manual test, schedule, or webhook.

When to use: Rarely. Only when market regimes change fast enough that yesterday's optimum is today's loser, and you have enough compute budget to run a full sweep every 15 minutes.

The Complete Pipeline

┌─────────────────────────────────────────────────────────────────┐
│ Development │
│ prodMode: disabled │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────┐ │
│ │ Coarse │───▶│ Inspect │───▶│ Fine │───▶│ Inspect │ │
│ │ Sweep │ │ Results │ │ Sweep │ │ Results │ │
│ └──────────┘ └──────────┘ └──────────┘ └───────────┘ │
│ 3×3 grid 3×3 refined grid │
└─────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│ Production │
│ prodMode: use_best │
│ ┌──────────┐ ┌──────────────┐ ┌────────────────────────┐ │
│ │ Schedule │───▶│ Parameter │───▶│ Strategy runs with │ │
│ │ Trigger │ │ Loop (loads │ │ best parameters from │ │
│ │ │ │ best params) │ │ saved session │ │
│ └──────────┘ └──────────────┘ └────────────────────────┘ │
│ No sweep overhead │
└─────────────────────────────────────────────────────────────────┘

Example: The Session Lifecycle

Step 1 — Run a Sweep (Dev)

Parameter Loop → Run Test
Session Label: "eurusd_swing_q2_2026"

25 iterations complete. Best result: stop_loss=2.5, take_profit=4.0, sharpe=1.87.

The session is saved to the Sessions tab. You can revisit it anytime.

Step 2 — Pinned Deployment

Switch to prodMode: use_best.

To be extra safe, optionally add pinnedBestParameters:

"pinnedBestParameters": {
"stop_loss": 2.5,
"take_profit": 4.0
}

Pinned parameters take priority over the saved session — useful if you've manually verified the values and don't want any risk of loading a wrong session.

Step 3 — Schedule It

Add a Schedule Trigger to the workflow:

{
"everySeconds": 3600,
"type": "interval"
}

Every hour, the workflow runs. The Parameter Loop loads the best parameters, the Backtest runs with those values, and your strategy stays optimized without consuming compute on unnecessary sweeps.

Handling Regime Changes

Markets change. The parameters that worked in a trending market may fail in a ranging one.

The fix: Every week (or month), run a manual sweep to verify the current parameters are still optimal. If the results shift significantly, save a new session — production automatically picks up the latest session on the next scheduled run.

What You Get

StageprodModeSweep behaviorProduction behavior
ExplorationdisabledFull gridSkip (no compute waste)
Validationuse_bestFull gridLoad saved best params
Emergencyalways_runFull gridFull grid (heavy!)

One Parameter Loop node. Three modes. A complete path from discovery to deployment.


The takeaway: Don't re-invent strategy deployment. The Parameter Loop's production modes handle it — so you can focus on building strategies, not plumbing.

Multi-Symbol Parameter Optimization - Test Your Strategy Across All Markets at Once

· 3 min read
ApudFlow OS
Platform Updates

Your strategy's stop loss works great on Gold — but how does it hold up on Bitcoin? Will the same take-profit target that nails EURUSD also work for GBPJPY? Until now, you had to guess, or run separate workflows for every symbol and stitch the results together manually.

One Sweep, Multiple Symbols

The Parameter Loop worker doesn't care what symbols your strategy trades. Connect a multi-symbol data fetcher and your strategy runs exactly the same way for every asset — but the Parameter Loop adds a second dimension: it also sweeps the parameters.

The result is a 3D optimization grid:

Symbol × Stop Loss × Take Profit = Total Iterations
3 × 5 × 5 = 75

Every combination runs automatically. The best parameter set for XAUUSD might be different from the best set for BTCUSD — and the results table shows you both.

Workflow: Multi-Symbol Risk Optimization

[Trigger] → [Fetch Prices (XAUUSD, BTCUSD, EURUSD)] → [Swing Finder] → [Backtest] → [Parameter Loop]

Step 1: Fetch Multi-Symbol Data

Your Fetch Prices worker pulls OHLC data for all three symbols:

{
"symbols": ["XAUUSD", "BTCUSD", "EURUSD"],
"timeframe": "1h",
"limit": 2000
}

The Swing Finder detects swing points across all three independently. The Backtest evaluates each symbol's signals separately and returns combined statistics.

Step 2: Configure the Sweep

In the Parameter Loop's two-column dialog, set up the grid:

Sweep parameters:

[
{"name": "stop_loss", "values": [1.0, 2.0, 3.0, 4.0, 5.0]},
{"name": "take_profit", "values": [2.0, 3.0, 4.0, 5.0, 6.0]}
]

Ranking: Collect result.sharpe_ratio, rank by max.

Step 3: Read the Results

The results table shows every combination for every symbol. You can instantly see:

Iterationp.stop_lossp.take_profitr.sharpe_ratior.total_returnr.max_drawdown
123.04.01.92+28.4%-5.8%
372.03.01.45+18.2%-8.3%
554.05.01.21+15.1%-11.2%

The best combination works across all three symbols — not just one. This is portfolio-level optimization in a single click.

When to Use Multi-Symbol Sweeps

ScenarioWhy It Works
Portfolio strategyFind parameters that balance risk across all assets
Cross-market validationIf parameters only work on one symbol, they're overfitted
Volatility regime testingSee which symbol needs tighter SL vs wider TP
Strategy generalizationBuild strategies that adapt to any market, not just one

Live Production: Auto-Deploy Per-Symbol Parameters

Save the sweep results as a session, then set the Backtest's Production Mode to use_best. On every scheduled run, the optimized parameters load automatically — no re-sweep needed.


The takeaway: One workflow, one sweep, unlimited symbols. Stop guessing which parameters work where — let the Parameter Loop find out.

Parameter Loop - Search the Strategy Space with One Click

· 6 min read
ApudFlow OS
Platform Updates

Strategies are easy to invent and hard to tune. The same trading idea can be profitable with one combination of (stop_loss, take_profit, size) and a money pit with another. Until now ApudFlow forced you to either hand-pick numbers or write one-off Python scripts (sweep_workflow.py, optimize_swing_strategy.py) outside the platform. The new Parameter Loop worker changes that — you describe the parameter grid once, click Run sweep, and watch every iteration stream into a results table inside the workflow editor.

What it does

Parameter Loop runs a single sub-worker multiple times with a different combination of input parameters on every iteration and stores the result of every iteration. The cartesian product of all values lists is executed, so a 3 × 5 grid produces exactly 15 iterations. The result of every iteration is rendered as a row in the right-hand panel of the dialog; the winning iteration (per rankingField / rankingMode) is highlighted in green, failures in red.

It is the worker you reach for when you are trying to answer "which combination of parameters is best?":

  • backtest → find the best (stop_loss, take_profit, size) triple
  • signal_enricher / signal_generator → sweep indicator thresholds
  • python_exec → try many numeric / string configurations of a snippet
  • any other worker → pass a different value of one or more parameters on every iteration

A 2-column dialog, by design

The node has its own custom rendering: a dashed border on the canvas (it is a sink — it has no input handle and no output handle) and a two-column layout inside the dialog. The left column holds the sweep configuration (sub-worker selector, parameter grid, ranking settings); the right column holds the per-iteration results table. There is no "central settings" column and no "output of the previous node" column — neither makes sense for a sweep.

The same rendering mode is now available to any worker that wants it. WorkerDefinition gained a new ui_layout field — set it to "two-column" and the dialog switches to the new layout.

How to set up a sweep

sweepParameters is a list of {name, values} objects. Every entry defines one parameter to vary:

[
{"name": "stop_loss", "values": [1.0, 1.5, 2.0, 2.5, 3.0]},
{"name": "take_profit", "values": [2.0, 3.0, 4.0, 5.0, 6.0]}
]

The total number of iterations is the cartesian product of the values lists (2 × 5 = 10 in the example above). The values field accepts:

Input formExampleResult
JSON list[1, 2, 3, 4, 5][1, 2, 3, 4, 5]
Comma-separated string"1, 2, 3, 4, 5"[1, 2, 3, 4, 5]
Range string"1-5:0.5"[1.0, 1.5, 2.0, 2.5, 3.0]
Python expression"range(5)"[0, 1, 2, 3, 4]

Sub-worker parameters

subWorkerParameters is the base set of parameters passed to the sub-worker on every iteration. The sweep combination is deep-merged on top of it (the sweep value wins when the keys collide). For example, with:

"subWorkerParameters": {
"symbol": "XAUUSD",
"stop_loss": 1.0
},
"sweepParameters": [
{"name": "stop_loss", "values": [2.0, 3.0]}
]

…the sub-worker will see "symbol": "XAUUSD" on every iteration and "stop_loss" alternating between 2.0 and 3.0.

The sweep values are also reachable from the sub-worker's vars context as vars._sweep (a dict of all sweep values for the current iteration) and vars._sweepIndex / vars._sweepTotal, which is handy when the sub-worker wants to do early-exit logic or label its output.

Collecting & ranking results

  • collectField — dotted path of the field to extract from the sub-worker output (e.g. "result.sharpe"). Leave empty to keep the whole output.
  • rankingField — dotted path inside the collected result used to pick the best iteration (e.g. "sharpe_ratio").
  • rankingMode"max" (default) or "min".

The best iteration is exposed as vars.<nodeName>.bestParameters and vars.<nodeName>.bestValue for downstream workers, so you can act on the winner in a follow-up step (run the best parameters through a live trade, log them to a webhook, send a Telegram notification, …).

Safety options

  • continueOnError (default true) — keep going when an iteration throws. Set to false to stop at the first failure.
  • maxIterations (default 0 = no cap) — safety cap on the total number of iterations to run (useful to avoid accidentally running a 10 000-iteration sweep on a slow sub-worker).

Output

{
"subWorkerType": "backtest",
"totalIterations": 10,
"successfulIterations": 10,
"failedIterations": 0,
"iterations": [
{
"iteration": 1,
"parameters": {"stop_loss": 1.0, "take_profit": 2.0},
"result": {"sharpe_ratio": 0.42, "trades": 38},
"fullOutput": {...},
"durationMs": 137
}
],
"bestIteration": 7,
"bestParameters": {"stop_loss": 2.5, "take_profit": 5.0},
"bestValue": 1.87,
"rankingField": "sharpe_ratio",
"rankingMode": "max"
}

Real-World Example: Gold & EURUSD Swing Strategy Optimization

Here's a complete workflow that shows Parameter Loop optimizing a multi-symbol swing trading strategy for Gold (XAUUSD) and EURUSD:

[Trigger] → [Fetch Prices] → [Swing Finder] → [Backtest Strategy] → [Parameter Loop]
WorkerRolePurpose
TriggerStartLaunches the workflow manually or on schedule
Fetch PricesDataDownloads 5-minute OHLC data for XAUUSD and EURUSD
Swing FinderAnalysisDetects swing highs and lows in price action
Backtest StrategyEvaluationTests swing signals with configurable risk parameters
Parameter LoopOptimizationSweeps across stop-loss and take-profit combinations

Setting Up the Sweep

With the Backtest Strategy connected to the Parameter Loop's left (out) handle, configure the sweep grid in the two-column dialog:

Sweep parameters — test 5 stop-loss values × 5 take-profit values:

[
{"name": "stop_loss", "values": [1.0, 1.5, 2.0, 2.5, 3.0]},
{"name": "take_profit", "values": [2.0, 3.0, 4.0, 5.0, 6.0]}
]

25 total iterations. Each combination runs the complete swing detection + backtest pipeline.

Ranking settings:

  • Collect field: result.sharpe_ratio
  • Ranking mode: max (higher Sharpe = better)
  • Session label: gold_eurusd_swing_v1

Live Results

As each iteration completes, the right panel updates in real time:

#p.stop_lossp.take_profitr.sharpe_ratior.total_returnr.max_dd
11.02.00.42+8.3%-12.1%
72.54.01.87+24.3%-6.2%
82.55.01.65+21.1%-7.4%

The best iteration (Sharpe 1.87) is highlighted in green. Clicking its row sets stop_loss: 2.5 and take_profit: 4.0 on the Backtest Strategy worker.

Going Live

Set Production Mode to use_best on the Parameter Loop. Now when your scheduled trigger fires:

  • The sweep does not run (avoiding unnecessary computation)
  • The best parameters from the saved session are loaded automatically
  • The Backtest Strategy executes with the optimized values

Tips & best practices

  • Start with a coarse grid (3 × 3 = 9 iterations) to find the rough optimum, then refine around the winner with a finer grid.
  • When the sub-worker is slow, set maxIterations to a small number during development and lift it for the final run.
  • Use continueOnError: true while exploring so a single bad combination does not abort the whole sweep.
  • Always set a session label — saved sessions let you load results later and enable Production Mode's use_best functionality.
  • The Parameter Loop node does not route execution to a downstream graph — it is a sink. If you want to act on the result, read vars.<nodeName>.bestParameters in the next node.

Available today

Parameter Loop is in the flow category. Drop it onto a canvas, pick the sub-worker, fill in sweepParameters, and the new two-column dialog takes over from there. Happy hunting.

Signal Enricher - Enhance Trading Signals with 46+ Technical Indicators

· 7 min read
ApudFlow OS
Platform Updates

Trading signals are only as good as the data they carry. Raw price action signals lack the context needed for confident decision-making. The Signal Enricher worker transforms basic signals into comprehensive trading opportunities by adding 46+ technical indicators calculated at each signal's exact timestamp.

Key Advantages

1. 46+ Professional Indicators in One Worker No need to juggle multiple tools or write custom code. Access institutional-grade indicators:

  • Momentum: RSI, Stochastic, Williams %R, CCI, ROC, MFI, PPO, TSI, UO, STOCHRSI
  • Trend: SMA, EMA, MACD, ADX, OBV, Vortex, Trend Strength, ATR Trend
  • Volatility: Bollinger Bands, ATR, ATR Channel, Keltner Channels, Donchian Channels
  • Volume: OBV, CMF, Force Index, Ease of Movement, Volume Oscillator
  • Statistical: Standard Deviation, Z-Score, Hurst Exponent, R-Squared
  • Advanced: Williams Alligator, Fractal Adaptive MA, Triple EMA, Adaptive MA

2. Strategy Optimization & Parameter Discovery Explore how different indicators transform your data to find optimal strategy conditions. The Signal Enricher helps you:

  • Test multiple indicators on the same dataset
  • Discover which indicators work best for specific market conditions
  • Identify parameter ranges that maximize profitability
  • Compare indicator effectiveness across different timeframes

3. Multi-Asset Portfolio Support Handle signals across multiple symbols simultaneously:

  • Automatic symbol-based matching with OHLC data
  • Process entire portfolios in single workflow
  • No duplicate data processing per symbol

4. Advanced Change Detection Detect indicator crossovers and momentum shifts with bar offset capability:

  • Compare current vs previous bar values
  • Identify when RSI crosses above 30 or below 70
  • Track MACD signal line crossovers
  • Monitor trend strength changes

5. Seamless Workflow Integration Connects perfectly with your trading ecosystem:

  • Feed enriched signals to Signal Generator for rule-based filtering
  • Send to Backtest Strategy for lightning-fast vectorized profitability analysis
  • Combine with Ratio Rates Pattern Analysis for advanced parameter optimization
  • Display on Multi Chart widgets for visual confirmation
  • Store in MongoDB or Redis for persistence
  • Send alerts via Telegram Notify

What is Signal Enricher?

The Signal Enricher calculates technical indicators from OHLC data at each signal's timestamp, adding powerful analytical context to your trading signals. Whether you're enhancing existing signals or exploring how different indicators transform your data to find optimal strategy conditions, this worker provides the flexibility to test and discover profitable approaches.

Core Features

FeatureBenefit
46+ IndicatorsComplete technical analysis toolkit
Multi-Asset ModeProcess portfolio signals efficiently
Bar OffsetDetect changes and crossovers
Time-Based LookupPrecise indicator values at signal times
ResamplingCalculate on any timeframe (1m to 1w)
Custom ColumnsName output fields as needed
Strategy DiscoveryTest indicators to find best-performing combinations

Supported Indicators

Momentum Oscillators

  • RSI (Relative Strength Index) - Overbought/oversold levels
  • Stochastic - Price momentum vs range
  • Williams %R - Momentum oscillator
  • CCI (Commodity Channel Index) - Deviation from mean
  • ROC (Rate of Change) - Percentage price change
  • MFI (Money Flow Index) - Volume-weighted momentum
  • PPO (Percentage Price Oscillator) - MACD percentage version
  • TSI (True Strength Index) - Double-smoothed momentum
  • UO (Ultimate Oscillator) - Multi-timeframe momentum
  • STOCHRSI - Stochastic applied to RSI

Trend Indicators

  • SMA/EMA - Moving averages
  • MACD - Convergence/divergence
  • ADX - Trend strength
  • OBV - Volume-based momentum
  • Vortex - Trend direction strength
  • Trend Strength - EMA difference percentage
  • ATR Trend - Volatility-based trend strength

Volatility & Channels

  • Bollinger Bands - Price channels
  • ATR - True range volatility
  • ATR Channel - Dynamic support/resistance
  • Keltner Channels - ATR-based channels
  • Donchian Channels - Price extremes

Volume & Flow

  • Chaikin Money Flow - Buying/selling pressure
  • Force Index - Price-volume force
  • Ease of Movement - Price movement efficiency
  • Volume Oscillator - Volume momentum

Statistical & Advanced

  • Standard Deviation - Price volatility
  • Z-Score - Standard deviations from mean
  • Hurst Exponent - Long-term memory
  • R-Squared - Trend strength coefficient
  • Williams Alligator - Three EMA system
  • FRAMA - Adaptive moving average
  • TEMA - Triple exponential MA
  • AMA - Adaptive moving average

How Bar Offset Enables Change Detection

The bar offset feature allows you to access indicator values from different bars relative to the signal time, enabling sophisticated signal confirmation.

Bar Offset Examples

{
"indicator": "rsi",
"bar_offset": 0,
"new_column_name": "RSI_current"
}

Gets RSI at signal time.

{
"indicator": "rsi",
"bar_offset": -1,
"new_column_name": "RSI_previous"
}

Gets RSI from previous bar.

Change Detection Workflow

  1. Enrich with current RSI (bar_offset: 0)
  2. Enrich with previous RSI (bar_offset: -1)
  3. Use Signal Generator to create condition:
    • RSI_previous < 30 AND RSI_current > 30 (RSI crosses above 30)
    • RSI_previous > 70 AND RSI_current < 70 (RSI crosses below 70)

This creates signals only when indicators actually change state, filtering out noise.


Multi-Asset Portfolio Enrichment

Process signals across multiple symbols in one operation:

Input Signals (Multi-Asset)

[
{"swing_time_str": "2024-01-15 10:30:00", "action": "buy", "symbol": "AAPL"},
{"swing_time_str": "2024-01-15 10:30:00", "action": "sell", "symbol": "GOOGL"},
{"swing_time_str": "2024-01-15 10:31:00", "action": "buy", "symbol": "MSFT"}
]

OHLC Data (Multi-Asset)

[
{"time": 1705312200, "open": 180.0, "high": 182.0, "low": 179.0, "close": 181.0, "symbol": "AAPL"},
{"time": 1705312200, "open": 3000.0, "high": 3020.0, "low": 2990.0, "close": 3010.0, "symbol": "GOOGL"}
]

Output: Enriched Signals

[
{"swing_time_str": "2024-01-15 10:30:00", "action": "buy", "symbol": "AAPL", "RSI": 65.2, "MACD": 1.23},
{"swing_time_str": "2024-01-15 10:30:00", "action": "sell", "symbol": "GOOGL", "RSI": 72.8, "MACD": -0.45}
]

Complete Trading Workflow Integration

RSI Mean Reversion Strategy

  1. Fetch Price → Get OHLC data for your symbols
  2. Signal Enricher → Add RSI, Stochastic, and Bollinger Bands
  3. Signal Generator → Create buy signals when:
    • RSI crosses above 30 (oversold bounce)
    • Price touches lower Bollinger Band
    • Stochastic is oversold (< 20)
  4. Backtest Strategy → Validate performance with stop losses and take profits
  5. Telegram Notify → Send alerts when signals trigger

Trend Following Strategy

  1. Fetch Yahoo → Get price data from Yahoo Finance
  2. Signal Enricher → Calculate ADX, Trend Strength, and ATR
  3. Signal Generator → Generate signals when:
    • ADX > 25 (strong trend)
    • Trend Strength > 2% (significant momentum)
  4. Support Resistance → Add key levels for entry/exit
  5. Multi Chart → Visualize signals on price chart

Market Regime Detection

  1. Twelve Data → Fetch comprehensive market data
  2. Signal Enricher → Calculate Market Regime and Hurst Exponent
  3. AI Classifier → Route signals based on market conditions:
    • High volatility → Use wider stops
    • Trending market → Follow trend
    • Mean-reverting → Counter-trend signals
  4. MongoDB → Store regime classifications for analysis

Getting Started Examples

Basic RSI Enrichment

Add RSI to your existing signals:

{
"signals": [{"time": "2024-01-15T10:30:00Z", "symbol": "AAPL"}],
"data": [{"time": 1705312200, "open": 180, "close": 181, "symbol": "AAPL"}],
"indicator": "rsi",
"field": "close",
"new_column_name": "RSI"
}

Multi-Indicator Setup

Enrich with multiple indicators in sequence:

  1. First enricher: RSI
  2. Second enricher: MACD
  3. Third enricher: Bollinger Bands
  4. Signal Generator uses all three for complex conditions

Change Detection Setup

Detect RSI crossovers:

  1. Enrich with bar_offset: 0RSI_current
  2. Enrich with bar_offset: -1RSI_previous
  3. Signal Generator: RSI_previous <= 30 AND RSI_current > 30

Strategy Optimization & Analysis

Perfect Partner with Ratio Rates Pattern Analysis

The Signal Enricher works exceptionally well with Ratio Rates Pattern Analysis for advanced strategy optimization:

  1. Signal Enricher → Add multiple indicators (RSI, MACD, ATR, etc.) to your signals
  2. Ratio Rates → Calculate profitability ratios and pattern correlations across different indicator combinations
  3. Discover Optimal Parameters → Identify which indicator thresholds and combinations produce the highest win rates

This combination helps you:

  • Find Profitable Indicator Combinations - Test RSI + MACD vs RSI + Stochastic
  • Optimize Entry/Exit Parameters - Determine best RSI levels, stop distances, etc.
  • Market Condition Filtering - Use ATR or ADX to filter signals by volatility/trend strength
  • Pattern Recognition - Identify recurring profitable setups across multiple indicators

Lightning-Fast Backtesting Integration

Pair Signal Enricher with Backtest Strategy for rapid strategy validation:

  1. Signal Enricher → Enrich signals with chosen indicators
  2. Backtest Strategy → Vectorized calculation of profitability metrics
  3. Instant Results → Get Sharpe ratio, max drawdown, win rate in milliseconds

Why This Combination Excels:

  • Vectorized Performance - Test thousands of parameter combinations instantly
  • Realistic Execution - Model slippage, commissions, and market impact
  • Risk Management - Test various stop loss and take profit levels
  • Statistical Confidence - Validate results across different market conditions

Example: RSI Strategy Optimization

// Workflow: Signal Enricher → Ratio Rates → Backtest Strategy

{
"step1": {
"worker": "signal_enricher",
"params": {
"indicator": "rsi",
"bar_offset": 0,
"new_column_name": "RSI_current"
}
},
"step2": {
"worker": "ratio_rates",
"params": {
"calculate_profitability": true,
"correlate_indicators": ["RSI_current", "volume", "price_change"]
}
},
"step3": {
"worker": "backtest_strategy",
"params": {
"entry_condition": "RSI_current < 30",
"exit_condition": "RSI_current > 70",
"stop_loss": "2%",
"take_profit": "5%"
}
}
}

This workflow automatically finds the most profitable RSI levels and validates them with professional backtesting.

Organize Your Trading Life: AI-Powered Personal Management for Traders

· 5 min read
ApudFlow OS
Platform Updates

In the demanding world of financial trading, personal organization is crucial for maintaining discipline, managing risk, and achieving long-term success. Stock traders, cryptocurrency investors, and forex professionals often struggle with information overload, scattered data, and inconsistent routines. The Fetch Data with Prices worker, integrated with AI tools like AI Chat, AI Classifier, AI Data Analyzer, and AI Summarizer, provides a comprehensive solution for organizing your trading life, from data management to performance tracking.

The Importance of Organization in Trading

Trading requires meticulous organization: tracking positions, monitoring markets, recording decisions, and reviewing performance. Poor organization leads to missed opportunities, unmanaged risks, and emotional decision-making. AI-powered organization transforms chaos into clarity, helping traders maintain focus and discipline.

Triggering Organized Workflows

Well-organized trading workflows begin with consistent triggers:

  • Daily Routine Trigger: Initiates morning data reviews and planning sessions
  • End-of-Day Trigger: Automates performance logging and next-day preparation
  • Portfolio Review Trigger: Scheduled deep dives into holdings and strategies
  • Risk Management Trigger: Alerts when positions exceed predefined limits

Building an Organized Trading System with AI

The Fetch Data with Prices worker centralizes your market data, while AI tools provide intelligent organization and insights:

1. Structured Data Management with AI Classifier

Automatically organize your trading data:

  • Classify trades by strategy, timeframe, and outcome
  • Tag positions by risk level and market conditions
  • Sort watchlists by priority and opportunity

Practical Example: A stock trader uses AI Classifier to automatically categorize their portfolio into "core holdings," "swing trades," and "speculative positions." This organization helps maintain proper risk allocation and focus attention where needed.

2. Intelligent Performance Tracking with AI Data Analyzer

Analyze your trading performance comprehensively:

  • Track win/loss ratios across different strategies
  • Identify patterns in successful vs. unsuccessful trades
  • Generate risk-adjusted performance metrics

Tip: Set up a workflow that analyzes your trading journal data alongside market data, revealing how external conditions affect your decision-making.

3. Conversational Organization with AI Chat

Get organized insights on demand:

  • Ask questions like "What's my best-performing strategy this month?"
  • Request summaries of your trading activity
  • Get reminders for important market events or position reviews

Practical Example: Use AI Chat to ask, "Based on my recent trades, what organizational improvements should I make?" The AI might suggest better position sizing or more disciplined entry criteria.

4. Automated Reporting with AI Summarizer

Create organized summaries of your trading life:

  • Generate weekly performance reports
  • Summarize monthly portfolio reviews
  • Create organized trade journals automatically

Tip: Configure AI Summarizer to produce "trading health check" reports that combine performance data, risk metrics, and behavioral insights into a single, organized document.

Practical Organization Tips for Traders

  1. Digital Trading Journal: Use AI to automatically log every trade with context, including market conditions, your reasoning, and outcomes.

  2. Automated Alerts: Set up triggers for position management, like automatic notifications when stop-loss levels are approached.

  3. Routine Standardization: Create template workflows for daily, weekly, and monthly reviews to ensure consistency.

  4. Risk Management Dashboards: Build organized views of your risk exposure across all positions and strategies.

  5. Goal Tracking: Use AI to monitor progress toward trading goals, adjusting strategies as needed.

Real-World Organization Transformation

Consider Maria, a cryptocurrency trader who struggled with disorganized trading practices. Her breakthrough came with AI integration:

  • Daily Routine Trigger starts her morning workflow
  • Fetch Data with Prices pulls crypto market data
  • AI Classifier organizes her watchlist by volatility and opportunity
  • AI Data Analyzer tracks her performance metrics
  • AI Summarizer creates weekly reports
  • AI Chat provides insights on her trading patterns

Maria now maintains a perfectly organized trading operation: clear position tracking, consistent risk management, and data-driven decision-making. Her drawdowns have decreased by 40%, and she reports feeling more in control of her trading career.

Maintaining Organizational Discipline

Successful organization requires ongoing commitment:

  • Consistency Over Perfection: Focus on regular, imperfect organization rather than occasional perfect setups
  • Review and Adjust: Regularly assess your organizational systems and refine them
  • Technology as a Tool: Use AI to enhance, not replace, your organizational skills
  • Balance: Avoid over-organization that leads to analysis paralysis

The Organized Trader's Advantage

In financial markets, organization is a competitive advantage. Well-organized traders make better decisions, manage risk more effectively, and learn from their experiences. AI tools provide the structure and automation needed to maintain this organization consistently.

By starting with triggers that establish routines and integrating AI tools for data management and analysis, traders can create a comprehensive organizational system. This system not only improves immediate performance but also supports long-term growth and development.

Remember, successful trading is as much about personal management as it is about market analysis. With AI-powered organization on ApudFlow, you can build the structured foundation needed for trading excellence.

Invest time in organizing your trading life with AI, and you'll find that clarity leads to confidence, and confidence leads to consistent success. The organized trader doesn't just react to markets—they control their trading destiny.

Unleash Your Creative Trading Strategies with AI Integration

· 5 min read
ApudFlow OS
Platform Updates

Creativity in trading goes beyond traditional analysis—it's about discovering novel approaches, combining disparate data points, and developing unique strategies that others overlook. For stock traders, cryptocurrency investors, and forex professionals, the Fetch Data with Prices worker paired with AI tools like AI Chat, AI Classifier, AI Data Analyzer, and AI Summarizer opens up new dimensions of creative exploration. This integration transforms routine data into innovative insights, helping traders break free from conventional thinking.

The Role of Creativity in Financial Markets

Financial markets reward creativity. While fundamental analysis and technical indicators provide structure, creative traders find edges through unconventional approaches: combining sentiment data with price action, exploring cross-market correlations, or developing proprietary indicators. AI tools amplify this creativity by processing vast amounts of data and suggesting connections humans might miss.

Triggering Creative Workflows

Creative workflows on ApudFlow start with triggers that capture inspiration moments:

  • Market Anomaly Trigger: Initiates workflows when unusual price movements occur, sparking creative investigation.
  • Cross-Market Trigger: Fires when correlations between different asset classes change, suggesting new trading ideas.
  • Time-Based Creative Sessions: Scheduled triggers for dedicated "innovation time" to explore new strategies.

Fostering Creativity with AI Integration

The Fetch Data with Prices worker provides the raw material—comprehensive price data across stocks, crypto, and forex. AI tools transform this data into creative fuel:

1. Exploratory Analysis with AI Data Analyzer

Use AI Data Analyzer to uncover hidden patterns:

  • Discover non-obvious correlations between assets
  • Identify unique market regimes or cycles
  • Generate hypothesis for testing

Practical Example: A cryptocurrency trader fetches price data for 100 altcoins and uses AI Data Analyzer to find unusual correlations. The AI might reveal that certain meme coin prices correlate with social media trends, inspiring a sentiment-based trading strategy that combines price data with social metrics.

2. Idea Generation with AI Chat

Leverage conversational AI for brainstorming:

  • Ask "What if" questions about market scenarios
  • Explore alternative interpretations of data
  • Generate novel strategy combinations

Tip: After fetching forex data, ask AI Chat: "If EUR/USD breaks this resistance level, what creative ways could I profit from the resulting volatility?" The AI might suggest options strategies, correlated currency pairs, or timing-based approaches you hadn't considered.

3. Categorizing Creative Opportunities with AI Classifier

Automatically sort and prioritize innovative ideas:

  • Classify trading opportunities by creativity level
  • Tag strategies as "conventional," "innovative," or "experimental"
  • Filter for high-potential creative approaches

Practical Example: Classify potential trades based on how unique the setup is. A stock trader might find that AI Classifier labels a strategy combining earnings data with satellite imagery of parking lots as "highly creative," prompting deeper exploration.

4. Synthesizing Insights with AI Summarizer

Condense complex ideas into clear concepts:

  • Summarize multi-asset analysis into unified themes
  • Create abstracts of novel trading approaches
  • Distill creative insights for quick review

Tip: Use AI Summarizer to create "strategy abstracts" that capture the essence of your most creative ideas, making it easier to revisit and refine them over time.

Practical Tips for Creative AI Integration

  1. Diverse Data Sources: Don't limit yourself to price data—combine Fetch Data with Prices output with news feeds, social media, or economic indicators for truly creative strategies.

  2. Hypothesis Testing Loops: Create workflows that generate hypotheses, test them against historical data, and refine based on results.

  3. Creative Constraints: Set artificial constraints (like "trade only blue-chip stocks with crypto correlations") to force innovative thinking.

  4. Collaborative Ideation: Use AI Chat to simulate discussions with other traders or experts, gaining new perspectives on your strategies.

  5. Iterative Refinement: Build workflows that automatically iterate on creative ideas, testing variations and improvements.

Real-World Creative Breakthroughs

Meet Alex, a forex trader who was stuck in traditional trend-following strategies. By integrating AI into his workflow:

  • Market Anomaly Trigger detects unusual EUR/GBP movements
  • Fetch Data with Prices pulls comprehensive currency data
  • AI Data Analyzer finds correlations with commodity prices
  • AI Chat suggests combining forex trades with commodity futures
  • AI Classifier categorizes the strategy as "highly innovative"

Alex develops a "commodity-currency nexus" strategy, profiting from the interplay between oil prices and currency movements. This creative approach increases his win rate by 25% and opens new revenue streams.

Overcoming Creative Blocks

AI integration can sometimes lead to over-reliance on algorithms. Here's how to maintain creative control:

  • Human Oversight: Always apply your market experience to AI suggestions
  • Diverse AI Inputs: Use multiple AI tools to get varied perspectives
  • Intuition Validation: Test AI-generated ideas against your gut feelings
  • Incremental Innovation: Start with small creative tweaks rather than complete overhauls

The Creative Edge in Trading

In competitive financial markets, creativity separates good traders from great ones. AI tools don't replace human ingenuity—they amplify it, providing the data processing power to explore ideas that would be impossible manually.

By starting with triggers that capture market opportunities and integrating AI tools for analysis and ideation, traders can unlock new levels of creative strategy development. The combination of comprehensive price data with intelligent analysis creates an environment where innovation thrives.

Remember, the most successful traders are those who continuously evolve their approaches. With AI-powered workflows on ApudFlow, you have the tools to push the boundaries of what's possible in trading, discovering strategies that others can't even imagine.

Embrace the creative potential of AI integration, and watch as your trading strategies evolve from conventional to extraordinary. The future of trading belongs to those who can harness technology to fuel their creative vision.

Boost Your Trading Productivity with AI-Powered Data Fetching

· 5 min read
ApudFlow OS
Platform Updates

In the fast-paced world of financial trading, productivity is the key to staying ahead. Stock traders, cryptocurrency enthusiasts, and forex professionals know that timely access to accurate data can make or break their strategies. The Fetch Data with Prices worker, when combined with AI tools like AI Chat, AI Classifier, AI Data Analyzer, and AI Summarizer, transforms how traders manage their workflows, automate routine tasks, and focus on high-impact decisions.

Understanding Productivity in Trading

Productivity in trading isn't just about working harder—it's about working smarter. Traders juggle multiple tasks: monitoring markets, analyzing data, executing trades, and managing risks. Manual data collection and analysis can consume hours, leaving little time for strategic thinking. By integrating AI into your routines, you can automate data fetching and processing, freeing up mental bandwidth for creative decision-making.

Starting with Triggers: The Foundation of Efficient Workflows

Every effective workflow on ApudFlow begins with a trigger. For productivity-focused traders, consider these starting points:

  • Schedule Trigger: Set up daily or hourly data fetches to keep your analysis current without manual intervention.
  • Price Alert Trigger: Automatically initiate workflows when specific price thresholds are met, ensuring you never miss critical market movements.
  • News Event Trigger: Kick off data collection when relevant news breaks, allowing immediate analysis of market reactions.

Integrating Fetch Data with Prices and AI Tools

The Fetch Data with Prices worker serves as your data pipeline, pulling OHLC (Open, High, Low, Close) data for stocks, cryptocurrencies, and forex pairs. Here's how to combine it with AI tools for maximum productivity:

1. Automated Data Analysis with AI Data Analyzer

Connect Fetch Data with Prices to the AI Data Analyzer for instant insights:

  • Fetch hourly price data for your watchlist
  • AI Data Analyzer processes patterns, trends, and anomalies
  • Receive automated reports on market conditions

Practical Example: A forex trader monitoring EUR/USD can set up a workflow that fetches 15-minute data every hour. The AI Data Analyzer identifies potential reversal patterns, classifying them as "bullish," "bearish," or "neutral." This automation allows the trader to focus on executing trades rather than manual chart analysis.

2. Intelligent Classification with AI Classifier

Use AI Classifier to categorize market data automatically:

  • Classify price movements by volatility levels
  • Sort assets by risk categories
  • Tag data points for specific trading strategies

Tip: Create a workflow that classifies cryptocurrency price data into "high volatility," "moderate," and "low volatility" categories. This helps traders prioritize their attention on assets most likely to provide trading opportunities.

3. Conversational Insights with AI Chat

Integrate AI Chat for on-demand analysis:

  • Ask natural language questions about your data
  • Get explanations of complex market patterns
  • Brainstorm trading ideas based on current data

Practical Example: After fetching daily stock data, use AI Chat to ask, "What are the strongest bullish signals in this dataset?" The AI provides conversational responses, helping traders quickly understand key insights without deep technical analysis.

4. Summarized Market Intelligence with AI Summarizer

Condense large datasets into actionable summaries:

  • Generate daily market recaps
  • Summarize weekly performance reports
  • Create executive summaries for portfolio reviews

Tip: Set up a weekly workflow that fetches price data for your entire portfolio, then uses AI Summarizer to create a concise report highlighting top performers, underperformers, and risk factors.

Productivity Tips for Traders

  1. Batch Processing: Use Schedule Triggers to run multiple data fetches simultaneously, processing entire portfolios at once rather than individually.

  2. Conditional Automation: Combine triggers with conditional logic to only process data when certain criteria are met, reducing unnecessary computations.

  3. Template Workflows: Create reusable workflow templates for common tasks like "Daily Market Scan" or "Weekly Portfolio Review," saving setup time.

  4. Progressive Disclosure: Start with simple workflows and gradually add complexity as you become comfortable with AI integrations.

  5. Performance Monitoring: Use AI tools to analyze your own trading performance data, identifying patterns in your decision-making process.

Real-World Productivity Gains

Consider Sarah, a day trader specializing in tech stocks. She used to spend 2 hours each morning manually collecting and analyzing data for 50 stocks. By implementing an AI-powered workflow:

  • Schedule Trigger initiates data fetch at 6 AM
  • Fetch Data with Prices pulls overnight data
  • AI Data Analyzer identifies top 5 opportunities
  • AI Summarizer creates a 2-page report
  • Sarah receives a notification with key insights

Now, Sarah spends just 30 minutes reviewing the AI-generated analysis, leaving more time for trade execution and risk management. Her productivity has increased by 300%, and she's more consistent in her trading approach.

Overcoming Integration Challenges

While AI integration offers tremendous benefits, successful adoption requires careful planning:

  • Start Small: Begin with one or two AI tools in your workflow before expanding.
  • Validate Results: Always cross-check AI outputs with your own analysis initially.
  • Continuous Learning: Regularly review and refine your workflows based on performance data.
  • Data Quality Focus: Ensure your data sources are reliable before relying on AI interpretations.

The Future of Trading Productivity

As AI technology advances, the productivity gains for traders will only increase. The combination of real-time data fetching with intelligent analysis tools creates a powerful ecosystem where traders can focus on strategy and execution while automation handles the heavy lifting.

By mastering AI integration in your trading routines, you'll not only boost your productivity but also gain a competitive edge in the markets. The key is to start with simple workflows, gradually incorporate more AI tools, and always prioritize data-driven decision-making.

Remember, the most productive traders aren't those who work the hardest—they're those who work smartest, leveraging technology to amplify their skills and insights. With ApudFlow's AI-powered workflows, that level of productivity is within reach for every trader, from beginners to professionals.

Browse Economic Calendar - Master Global Economic Events Analysis

· 5 min read
ApudFlow OS
Platform Updates

In the fast-paced world of financial markets, staying ahead of economic events can make the difference between success and missed opportunities. Introducing the Browse Economic Calendar worker - your gateway to comprehensive global economic event analysis on the ApudFlow platform.

What is Browse Economic Calendar?

The Browse Economic Calendar worker empowers you to explore and analyze global economic events with unprecedented flexibility. Whether you're a trader looking for high-impact announcements, an analyst tracking economic trends, or an investor monitoring market-moving data, this tool provides the insights you need to make informed decisions.

Key Advantages

  • Comprehensive Event Coverage: Access thousands of economic indicators from major global economies
  • Smart Filtering: Multi-select currencies, countries, and event types to focus on what matters most
  • Dynamic Event Discovery: Event options automatically filter based on your currency and country selections
  • Intelligent Time Tracking: See exactly when events are happening with smart countdown displays
  • Historical Context: Track forecast changes and previous value revisions for deeper analysis
  • Workflow Integration: Seamlessly combine with other workers for automated analysis and alerts

Perfect for Multiple Use Cases

For Traders

  • Identify high-impact events that could move markets
  • Monitor forecast changes to gauge market expectations
  • Set up automated alerts for upcoming announcements
  • Analyze historical event impacts on price movements

For Analysts

  • Track economic indicator trends across countries
  • Study forecast revisions to understand economic sentiment
  • Compare actual results against expectations
  • Build comprehensive economic dashboards

For Investors

  • Stay informed about major economic releases
  • Monitor central bank decisions and policy changes
  • Understand the economic context behind market movements
  • Plan investment strategies around key data releases

How It Works in Your Workflow

The Browse Economic Calendar worker integrates seamlessly into your ApudFlow workflows. Here's how to leverage it:

1. Build Targeted Event Lists

Start by selecting the currencies and countries you're interested in. The worker's smart filtering will show you only relevant events, making it easy to focus on specific markets or regions.

2. Filter by Importance

Use the impact level filter to prioritize events:

  • 0+: All events for comprehensive coverage
  • 1+: Medium and higher impact events
  • 2+: High and very high impact events
  • 3: Only the most market-moving announcements

3. Combine with Other Workers

The real power comes when you connect Browse Economic Calendar with other workers in your workflow:

With Price Data Workers (like Fetch Data with Prices):

  • Analyze how economic events impact asset prices
  • Create automated trading signals based on event outcomes
  • Build historical event impact studies

With AI Analyzers (like AI Data Analyzer):

  • Get AI-powered insights on event significance
  • Generate automated summaries of economic releases
  • Classify events by potential market impact

With Notification Workers (like Telegram Notify):

  • Receive instant alerts for upcoming high-impact events
  • Get notified when forecasts change significantly
  • Share event calendars with your team

With Data Processing Workers (like Python Code):

  • Perform custom calculations on economic data
  • Create statistical models of event impacts
  • Generate custom reports and visualizations

Real-World Examples

Example 1: US Economic Monitor

Create a workflow that:

  1. Browses US economic events (currency: USD)
  2. Filters for high-impact events (impact: 2+)
  3. Focuses on upcoming events in the next 7 days
  4. Sends Telegram notifications for each event
  5. Displays results on your dashboard

Example 2: Multi-Currency Analysis

Build a comprehensive view:

  1. Select multiple currencies (USD, EUR, GBP, JPY)
  2. Include forecast change history
  3. Sort by event date
  4. Use AI Summarizer to create daily economic briefs
  5. Export data for further analysis

Example 3: Central Bank Watch

Monitor monetary policy:

  1. Filter events by "Fed Rate" or "ECB Decision"
  2. Track forecast changes over time
  3. Combine with price data to analyze market reactions
  4. Create automated reports on policy impacts

Available Integration Options

Your Browse Economic Calendar worker can connect with many other workers on the platform, including:

  • Data Connectors: Fetch Data with Prices, Twelve Data Market API, FRED Economic Data Connector
  • AI Tools: AI Summarizer, AI Data Analyzer, AI Classifier, VectorAnalyzer
  • Communication: Telegram Notify, Email notifications
  • Data Processing: Python Code, TimescaleDB SQL, MergeData
  • Storage: MongoDB, Redis for caching results
  • Workflow Control: Delay, Wait for Workers, Loop for automated processing

Getting Started

  1. Add to Workflow: Drag the Browse Economic Calendar worker into your workflow canvas
  2. Configure Filters: Set your currency, country, and event preferences
  3. Connect Outputs: Link to other workers for automated processing
  4. Set Up Dashboard: Display results in widgets for real-time monitoring
  5. Test and Run: Execute your workflow to see economic events in action

Why Choose Browse Economic Calendar?

  • User-Friendly: Visual interface makes complex filtering simple
  • Comprehensive: Covers all major economic indicators globally
  • Flexible: Adapts to your specific analysis needs
  • Integrated: Works seamlessly with your existing workflows
  • Real-Time: Access to the latest economic data and forecasts
  • Historical: Track changes and revisions over time

Whether you're building automated trading systems, creating economic research reports, or just staying informed about market-moving events, the Browse Economic Calendar worker provides the foundation you need for sophisticated economic analysis.

Start exploring global economic events today and gain the edge in your financial decision-making!

Fetch Data with Prices - Access Comprehensive Financial Market Data

· 5 min read
ApudFlow OS
Platform Updates

In the world of financial analysis and algorithmic trading, access to reliable, comprehensive price data is the foundation of successful strategies. Introducing the Fetch Data with Prices worker - your gateway to historical and real-time market data across stocks, cryptocurrencies, currencies, and commodities on the ApudFlow platform.

What is Fetch Data with Prices?

The Fetch Data with Prices worker provides seamless access to OHLC (Open, High, Low, Close) price data and volume information for a wide range of financial instruments. Whether you're building trading algorithms, conducting technical analysis, or creating market research reports, this worker delivers the data you need in the format you want.

Key Advantages

  • Universal Market Coverage: Access data for stocks, cryptocurrencies, forex pairs, and commodities
  • Flexible Time Intervals: From 1-minute intraday data to monthly aggregations
  • Global Timezone Support: Convert timestamps to any major timezone for accurate analysis
  • High-Performance Queries: Optimized data retrieval for fast, reliable results
  • Workflow Integration: Seamlessly combine with analysis and visualization tools
  • Comprehensive Data: OHLC prices plus volume data for complete market analysis

Perfect for Multiple Use Cases

For Traders

  • Build automated trading strategies with historical data
  • Backtest trading algorithms across different timeframes
  • Monitor price movements in real-time for live trading decisions
  • Analyze volume patterns to understand market participation

For Analysts

  • Conduct technical analysis with multiple timeframe data
  • Create custom indicators and statistical models
  • Study price correlations across different asset classes
  • Generate comprehensive market reports and visualizations

For Developers

  • Feed price data into machine learning models
  • Build custom trading bots and automated systems
  • Create real-time dashboards and monitoring tools
  • Develop algorithmic trading strategies

How It Works in Your Workflow

The Fetch Data with Prices worker integrates effortlessly into your ApudFlow workflows, serving as the data foundation for your analytical processes.

1. Select Your Instruments

Choose from thousands of available symbols using the intelligent autocomplete search. The worker supports:

  • Stocks: Major exchanges worldwide (AAPL, TSLA, GOOGL, etc.)
  • Cryptocurrencies: BTC, ETH, and other digital assets
  • Forex: Major currency pairs (EUR/USD, GBP/USD, etc.)
  • Commodities: Gold, oil, and other physical assets

2. Define Your Time Parameters

Set precise date ranges and intervals to match your analysis needs:

  • Intraday: 1m, 5m, 15m, 30m, 1h, 2h, 4h for detailed analysis
  • Daily/Monthly: 1d, 5d, 7d, 1w, 1M, 3M for longer-term studies
  • Custom Ranges: Any start/end date combination

3. Choose Your Timezone

Select from major global timezones to ensure your data aligns with market hours and your local time preferences.

4. Combine with Analysis Tools

The real power emerges when you connect Fetch Data with Prices to other workers:

With Technical Analysis Workers:

  • Calculate moving averages, RSI, MACD, and other indicators
  • Generate buy/sell signals based on technical patterns
  • Create automated trading strategies

With AI Analyzers (like AI Data Analyzer):

  • Apply machine learning to price patterns
  • Predict future price movements
  • Identify market anomalies and opportunities

With Visualization Workers:

  • Create interactive charts and graphs
  • Build real-time dashboards
  • Generate performance reports

With Notification Workers (like Telegram Notify):

  • Receive alerts on price movements
  • Get notified of significant market events
  • Share price updates with your team

Real-World Examples

Example 1: Technical Analysis Dashboard

Create a comprehensive analysis workflow:

  1. Fetch daily price data for S&P 500 stocks
  2. Calculate technical indicators (RSI, MACD, Bollinger Bands)
  3. Generate buy/sell signals based on indicator combinations
  4. Display results in interactive charts on your dashboard
  5. Send alerts when signals trigger

Example 2: Crypto Trading Bot

Build an automated cryptocurrency trading system:

  1. Fetch 5-minute price data for BTC/USD
  2. Apply momentum and trend-following algorithms
  3. Execute trades based on predefined criteria
  4. Track performance and generate reports
  5. Adjust strategies based on backtesting results

Example 3: Multi-Asset Portfolio Analysis

Monitor a diversified investment portfolio:

  1. Fetch price data for stocks, bonds, and commodities
  2. Calculate portfolio returns and risk metrics
  3. Generate correlation analysis across assets
  4. Create performance visualizations
  5. Send weekly portfolio summaries

Available Integration Options

Your Fetch Data with Prices worker can connect with many other platform workers, including:

  • Analysis Tools: Technical Analysis Calculator, AI Data Analyzer, VectorAnalyzer
  • Data Processing: Python Code, TimescaleDB SQL, MergeData
  • Visualization: Chart widgets, dashboard components
  • Communication: Telegram Notify, email notifications
  • Storage: MongoDB, Redis for caching and persistence
  • Workflow Control: Schedule Trigger, Loop for automated processing

Getting Started

  1. Add to Workflow: Drag the Fetch Data with Prices worker into your workflow canvas
  2. Select Symbol: Use autocomplete to find your desired instrument
  3. Set Parameters: Choose date range, interval, and timezone
  4. Connect Outputs: Link to analysis or visualization workers
  5. Test and Run: Execute your workflow to see price data in action

Why Choose Fetch Data with Prices?

  • Comprehensive Coverage: Access data across all major asset classes
  • Flexible Configuration: Customize timeframes and parameters for any use case
  • High Performance: Optimized queries ensure fast data retrieval
  • Global Timezone Support: Accurate timestamp conversion for international markets
  • Workflow Ready: Designed for seamless integration with analytical tools
  • Production Reliable: Built for both backtesting and live trading applications

Whether you're building sophisticated trading algorithms, conducting market research, or creating financial dashboards, the Fetch Data with Prices worker provides the reliable data foundation you need for successful financial analysis.

Start accessing comprehensive market data today and elevate your financial workflows to the next level!

Discover Winning Trading Patterns with Ratio Rates Analysis

· 4 min read
ApudFlow OS
Platform Updates

Are you tired of manually analyzing trading data to find patterns that work? The Ratio Rates worker in ApudFlow automates the discovery of profitable trading patterns, helping you identify which market conditions consistently lead to successful trades.

What Makes Ratio Rates Powerful?

Ratio Rates analyzes your historical trading data to find similar patterns and calculates their success rates automatically. Instead of guessing which indicators matter most, let Ratio Rates test different combinations and show you the winning formulas.

Key Benefits:

  • Automated Pattern Discovery: Tests all possible combinations of your selected indicators
  • Success Rate Calculation: Shows exactly what percentage of similar trades were profitable
  • Risk Assessment: Helps you understand the reliability of different market conditions
  • Strategy Optimization: Identifies the most effective indicator combinations for your trading

How It Works in Your Workflow

Ratio Rates is part of ApudFlow's visual workflow system. You can easily connect it with other workers to create powerful trading analysis pipelines.

Quick Setup Example: Market Data Analysis

  1. Fetch Historical Data: Start with a data connector like Twelve Data or Polygon.io to get market data
  2. Filter Relevant Trades: Use the Sort & Filter worker to focus on specific time periods or conditions
  3. Apply Ratio Rates: Analyze patterns and calculate success rates
  4. Display Results: Show the findings on your dashboard with widgets

Step-by-Step Workflow Creation

1. Access the Workflow Editor

Go to the Workflows section in your ApudFlow dashboard. Click Create New Workflow to start building your analysis pipeline.

2. Add Data Source

From the left panel, drag a Twelve Data or Polygon.io worker onto the canvas. Configure it to fetch historical price data for your chosen asset.

Pro Tip: Use the visual interface to select your symbol, date range, and data type - no coding required!

3. Prepare Your Trading Data

Connect a Sort & Filter worker to clean and prepare your data. You might want to:

  • Filter for specific market conditions
  • Select relevant columns (price, volume, indicators)
  • Focus on particular time frames

4. Add Ratio Rates Analysis

Drag the Ratio Rates worker onto your canvas and connect it to your filtered data.

Configuration Options:

  • Match Columns: Select which data columns to analyze for patterns (e.g., price change, volume, technical indicators)
  • Always Include: Choose columns that must be part of every pattern analysis
  • Profit Column: Specify which column contains your profit/loss data
  • Similarity Threshold: Set how closely patterns must match (default 80%)

5. View and Act on Results

The Ratio Rates worker adds new columns to your data:

  • RR_BEST: Success rate of the best-performing pattern
  • total_profit_best: Total profit from similar trades
  • similar_trades: Number of historical matches found
  • best_columns: The winning indicator combination

Real-World Use Cases

Trading Strategy Validation

Connect Ratio Rates to your backtesting data to see which entry signals actually work. Identify the most reliable combinations of indicators for your strategy.

Risk Management

Before entering a trade, use Ratio Rates to check historical success rates for similar market conditions. Make informed decisions based on data, not intuition.

Pattern Discovery

Let the algorithm find patterns you might have missed. Ratio Rates tests combinations you may not have considered, potentially uncovering new profitable setups.

Performance Optimization

Compare different indicator sets to find the most effective combinations. Focus your analysis on what actually moves the needle.

Combine with Other Workers

Ratio Rates works beautifully with the broader ApudFlow ecosystem:

  • Data Connectors: Twelve Data, Polygon.io, FRED for economic data
  • Processing: Sort & Filter, Aggregate for data preparation
  • AI Integration: AI Chat for interpreting results, AI Summarizer for insights
  • Storage: MongoDB, Redis for saving analysis results
  • Notifications: Telegram Notify for alerts on high-probability setups

Getting Started

  1. Create a new workflow in the Workflows section
  2. Add your data source (market data connector)
  3. Connect Ratio Rates and configure your analysis parameters
  4. Run the workflow to see pattern analysis results
  5. Add to dashboard as a widget for ongoing monitoring

Advanced Tips

  • Start Simple: Begin with 2-3 key indicators to avoid analysis paralysis
  • Adjust Similarity: Lower thresholds find more matches but may be less precise
  • Combine Results: Use multiple Ratio Rates workers with different configurations
  • Monitor Performance: Set up recurring workflows to track changing market dynamics

Ratio Rates transforms complex pattern analysis into an automated, visual process. Stop guessing and start discovering what actually works in your trading approach.

Ready to uncover your winning patterns? Try Ratio Rates in your next workflow!

Sort & Filter - Transform and Organize Your Data

· 5 min read
ApudFlow OS
Platform Updates

Data is the lifeblood of modern analysis and decision-making. Raw data streams from APIs, databases, and feeds often need refinement before they become actionable insights. Introducing the Sort & Filter worker - your essential tool for transforming unstructured data into organized, analysis-ready information.

What is Sort & Filter?

The Sort & Filter worker is a powerful data transformation tool that lets you refine, organize, and structure your data with precision. Whether you're working with financial market data, news feeds, API responses, or any structured data, this worker gives you complete control over how your information is processed and presented.

From filtering out irrelevant records to sorting by importance and selecting only the fields you need, Sort & Filter acts as the bridge between raw data collection and meaningful analysis.

Key Features

  • Advanced Filtering: Apply multiple conditions with AND/OR logic to find exactly the data you need
  • Intelligent Sorting: Organize data by any field in ascending or descending order
  • Column Selection: Keep only relevant fields and remove unnecessary data
  • Result Limiting: Control output size for better performance and focus
  • Smart Search: Find text matches using fuzzy similarity for flexible content discovery
  • Expression Support: Use dynamic expressions to create custom filtering logic
  • Real-time Processing: Handle large datasets efficiently without performance degradation

How It Works

Visual Data Processing

Input Connection: Connect to any data source - RSS feeds, API responses, database queries, or other workflow outputs Visual Configuration: Set up your filters, sorting, and column selection through an intuitive interface Live Preview: See your data transformation results instantly as you configure Output Integration: Pass refined data to charts, alerts, storage, or further processing

Flexible Filtering System

The worker supports multiple filter types that can be combined with AND/OR logic:

  • Numeric Filters: Compare prices, volumes, scores, and metrics
  • Text Filters: Search for keywords, categories, or content
  • Date Filters: Filter by time ranges and chronological order
  • Similarity Search: Find related content using intelligent text matching
  • Custom Expressions: Create complex logic using data field references

Practical Applications

Financial News Analysis

Transform raw news feeds into focused market intelligence:

Use Case: Monitor specific company news from multiple sources

  • Filter Bloomberg, Reuters, and Yahoo Finance feeds for "Apple" OR "AAPL"
  • Sort by publication date (newest first)
  • Select only title, summary, and URL fields
  • Limit to top 10 most recent articles

Result: A clean, focused news stream perfect for dashboard display or automated alerts.

Market Data Refinement

Clean and organize trading data for analysis:

Use Case: Prepare stock data for technical analysis

  • Filter for stocks with volume > 1M AND price > $50
  • Sort by market cap descending
  • Select price, volume, and sector fields
  • Remove unnecessary metadata

Result: Analysis-ready data that loads faster and displays cleaner in charts.

Content Moderation

Filter user-generated content or social media data:

Use Case: Monitor brand mentions across platforms

  • Filter posts containing your brand name with similarity search
  • Exclude spam using negative filters
  • Sort by engagement metrics
  • Limit to most relevant results

Result: High-quality content streams for sentiment analysis and brand monitoring.

API Response Optimization

Streamline data from external APIs:

Use Case: Process e-commerce product data

  • Filter products in stock with rating > 4.0
  • Sort by price ascending
  • Select name, price, and image fields
  • Limit to top 50 results

Result: Optimized data payloads that improve app performance and user experience.

Workflow Integration

Connect with Data Sources

RSS Feeds: Process news articles from Fetch RSS worker Market Data: Refine data from Twelve Data or FRED connectors API Responses: Clean data from HTTP Request worker Database Queries: Filter results from MongoDB or Redis workers Social Media: Process Reddit or Twitter data streams

Feed Analysis Tools

Charts & Visualizations: Send filtered data to chart widgets AI Analysis: Pass refined data to AI summarizers or classifiers Alerts & Notifications: Trigger notifications based on filtered conditions Storage: Save processed data to databases or cloud storage Reports: Generate automated reports from organized data

Getting Started Examples

Basic News Filtering

  1. Add Sort & Filter to your workflow canvas
  2. Connect to a Fetch RSS worker output
  3. Configure Data Source: Select the RSS results field
  4. Add Filter: Title contains "earnings" OR body contains "quarterly results"
  5. Set Sorting: Date descending (newest first)
  6. Select Columns: Title, URL, publication date
  7. Set Limit: 20 articles maximum

Advanced Market Screening

  1. Connect to market data source (Twelve Data, Yahoo Finance, etc.)
  2. Create Complex Filter:
    • Price > 100 AND Volume > 500000 AND Sector equals "Technology"
    • OR Price > 500 AND Market Cap > 10B
  3. Sort by "Price Change %" descending
  4. Select relevant fields for your analysis
  5. Connect output to chart widget for visualization
  1. Link to social media or news data
  2. Use Similarity Filter: Find articles similar to "artificial intelligence trends"
  3. Combine with date filters for recent content
  4. Sort by relevance score
  5. Feed results to AI summarizer for content condensation

Performance Benefits

  • Faster Loading: Reduce data size with column selection and limits
  • Better UX: Show only relevant information to users
  • Improved Analysis: Focus on quality data instead of noise
  • Cost Efficiency: Process less data, use fewer API calls
  • Scalable Workflows: Handle large datasets without performance issues

Why Sort & Filter Matters

In today's data-driven world, information overload is the biggest challenge. The Sort & Filter worker solves this by giving you surgical precision over your data. Instead of drowning in irrelevant information, you get exactly what you need, when you need it.

Whether you're building financial dashboards, monitoring news feeds, analyzing social media trends, or processing API responses, Sort & Filter ensures your workflows deliver actionable insights, not data dumps.

Transform your raw data into strategic advantages with the Sort & Filter worker - where smart data processing meets intelligent automation.

Workflow Version History - Never Lose Your Work Again

· 9 min read
ApudFlow OS
Platform Updates

Building complex workflows can be risky - one wrong change and hours of work might be lost. Today we're introducing Workflow Version History, a comprehensive versioning system that automatically saves every change you make, lets you compare versions, and restore previous states with a single click.

📹 Watch the tutorial: Version History in Action

The Problem: Workflow Changes Without Safety Net

As workflows grow more complex, you face several challenges:

  • Accidental deletions - remove a worker or connection by mistake
  • Breaking changes - configuration changes that break your workflow
  • Experimentation risk - afraid to try new ideas because you might break what works
  • No undo beyond current session - once you close the editor, changes are permanent
  • Collaboration confusion - team members overwriting each other's work

Without version control, your only option was to manually duplicate workflows before making changes - tedious and error-prone.

The Solution: Automatic Version History

Our new versioning system works like Git for workflows - every time you save, we automatically create a version snapshot. You can review your entire workflow evolution, compare changes between versions, and restore any previous state instantly.

Key Features

1. Automatic Version Snapshots

  • Every workflow save creates a new version automatically
  • No manual action required - just work naturally
  • Versions include complete workflow state: workers, connections, parameters
  • Never worry about losing work again

2. Visual Timeline

  • See your complete workflow history at a glance
  • Each version shows: date/time, version number, and change summary
  • Quick preview of what changed in each version
  • Color-coded indicators for major vs minor changes

3. Smart Version Comparison

  • Select any two versions and see exactly what changed
  • Side-by-side diff view highlights:
    • 🟢 Added workers - new workers you introduced
    • 🔴 Removed workers - workers you deleted
    • 🟠 Modified workers - configuration changes
    • 🔵 Connection changes - how data flows changed
  • Detailed parameter-level comparison for modified workers
  • Summary statistics: how many workers added/removed/changed

4. One-Click Restore

  • Found a version that worked better? Restore it with one click
  • Restoring creates a new version (preserving your current state)
  • Safe rollback - nothing is permanently lost
  • Test changes knowing you can always go back

5. Version Tagging & Organization

  • Star/favorite important versions (stable releases, milestones)
  • Filter version history to show only tagged versions
  • Delete old experimental versions to keep history clean
  • Latest version is always protected (can't be deleted)

6. Quick Compare

  • "Compare with Previous" button for fast iteration review
  • See what changed since your last save
  • Perfect for incremental development workflow

How to Use Version History

Accessing Version History

  1. Open any workflow in the editor
  2. Click the "Version History" icon in the toolbar (clock/history icon)
  3. A sidebar panel opens showing all versions

Viewing Your Versions

The version list displays:

  • Version number (1, 2, 3...)
  • Date and time of creation
  • Preview of changes made
  • Star icon to mark favorites
  • Action buttons (restore, compare, delete)

Comparing Versions

Method 1: Compare Two Specific Versions

  1. Click "Compare Mode" button
  2. Select first version (checkbox appears)
  3. Select second version
  4. Click "Compare Selected"
  5. View detailed diff in popup

Method 2: Quick Compare with Previous

  1. Click the "Compare" button next to any version
  2. Instantly see changes from the previous version

The Diff Viewer

When comparing versions, you'll see:

Summary Section:

  • Total workers added/removed/modified
  • Connection changes count

Detailed Changes:

  • Added Workers (green cards)

    • Worker type and name
    • Complete configuration
  • Removed Workers (red cards)

    • What was deleted
    • Previous configuration
  • Modified Workers (orange cards)

    • Side-by-side parameter comparison
    • Old value → New value
    • Only changed parameters shown

Visual Format:

  • Color-coded for quick scanning
  • JSON formatting for complex parameters
  • Expandable sections for readability

Restoring a Version

  1. Find the version you want to restore
  2. Click the Restore button
  3. Confirm the action
  4. Workflow immediately reverts to that state
  5. A new version is created (current state is preserved)

Managing Versions

Star Important Versions:

  • Click the star icon next to critical versions
  • Use tags to mark: "stable", "production", "pre-release"
  • Filter to show only starred versions

Delete Unnecessary Versions:

  • Click delete (trash icon) on experimental versions
  • Keeps history clean and focused
  • Cannot delete the latest version (safety)

Create Manual Snapshots:

  • Click "Create Snapshot" to save current state
  • Useful before major changes
  • Tagged as "snapshot" for easy identification

Real-World Use Cases

Scenario 1: Safe Experimentation

"I want to try a new AI worker but don't want to break my working setup"

  1. Your current workflow is auto-saved as version 15
  2. Add the new AI worker and configure it
  3. Save → version 16 is created
  4. Test it - doesn't work as expected
  5. Open version history → Restore version 15
  6. Back to working state in 2 clicks

Scenario 2: Understanding What Broke

"My workflow worked yesterday, now it's broken - what changed?"

  1. Open version history
  2. Find yesterday's working version (version 42)
  3. Compare with current version (version 48)
  4. Diff shows: you changed API endpoint URL in HTTP Request worker
  5. Fix the URL or restore version 42

Scenario 3: Team Collaboration

"My teammate made changes but I need to see what they modified"

  1. Open version history
  2. See version 23 saved 2 hours ago
  3. Compare version 22 (your last save) with version 23
  4. Diff clearly shows: they added error handling and changed timeout values
  5. Understand changes before continuing work

Scenario 4: Iterative Development

"I'm building a complex workflow step by step"

  1. Start with basic structure → save (version 1)
  2. Add data fetching → save (version 2) → star as "data layer done"
  3. Add processing logic → save (version 3)
  4. Add output formatting → save (version 4) → star as "complete v1"
  5. Test and find issues → multiple saves (versions 5-8)
  6. Compare version 8 with version 4 to see all changes since "complete v1"
  7. Restore version 4, make changes differently

Scenario 5: Production Releases

"I need a clean history of production-ready versions"

  1. Develop and test → versions 1-15 (messy experimental history)
  2. Finalize working version → star version 16 as "production-ready"
  3. Deploy to production
  4. Continue development → versions 17-22
  5. Filter to show only starred versions → clean release history
  6. Delete unstarred experimental versions to clean up

Technical Details

What's Saved in Each Version

Every version captures:

  • Complete workflow configuration (name, description, settings)
  • All workers with their full configurations
  • All connections between workers
  • Worker positions and visual layout
  • Metadata: owner, creation time, version number

Version Limits & Cleanup

  • By default, we keep up to 50 versions per workflow
  • Oldest versions are automatically cleaned up
  • Starred/tagged versions are protected from auto-cleanup
  • You can manually delete specific versions anytime
  • Latest version is always protected

Performance

  • Version creation is instant (happens during normal save)
  • No impact on workflow execution speed
  • Version history loads only when you open the panel
  • Diff calculation happens on-demand (only when comparing)

Best Practices

1. Use Descriptive Tags

When starring versions, add meaningful tags:

  • "before-api-upgrade"
  • "working-prod-config"
  • "pre-optimization"
  • "client-approved"

2. Clean Up Regularly

Delete experimental versions once you've finalized changes:

  • Keep only meaningful milestones
  • Reduces clutter in version history
  • Makes it easier to find important versions

3. Compare Before Restoring

Always compare before restoring to see what will change:

  • Understand what you're losing
  • Verify you're restoring the right version
  • Avoid surprises

4. Create Manual Snapshots Before Major Changes

Before significant modifications:

  • Click "Create Snapshot"
  • This marks a clear checkpoint
  • Easy to identify in history later

5. Use Compare for Code Reviews

When working with teammates:

  • Compare versions to review their changes
  • Understand modifications before continuing
  • Use as documentation of what changed

FAQ

Q: Does every save create a new version?
A: Yes, every time you save a workflow (manually or auto-save), a new version is created automatically.

Q: Can I disable versioning?
A: No, versioning is always enabled to protect your work. However, you can delete unnecessary versions to keep history clean.

Q: What happens when I restore a version?
A: Your current workflow state is saved as a new version first, then the selected version's configuration is applied. Nothing is lost.

Q: Can I restore deleted versions?
A: No, deleted versions are permanently removed. Only delete versions you're certain you don't need.

Q: Do versions count against my storage quota?
A: Versions use minimal storage (only configuration data, not execution results). For most users, this is negligible.

Q: Can I export version history?
A: Currently no, but we're planning export/import features for workflow backups.

Q: What's the difference between duplicate and restore?
A: Duplicate creates a separate workflow (new ID, independent). Restore reverts the current workflow to a previous state (same workflow ID, continues version history).

Q: Can I see who created each version in team workflows?
A: Currently all versions show the workflow owner. Multi-user attribution is coming in a future update.

Q: How far back does version history go?
A: We keep 50 versions by default. Older versions are auto-cleaned unless starred. Starred versions are kept indefinitely.

Q: Can I compare non-consecutive versions?
A: Yes! In compare mode, select any two versions - they don't need to be next to each other.

Getting Started

Version history is now available for all workflows:

  1. Open any workflow in the editor
  2. Look for the version history icon in the toolbar (🕒)
  3. Click to open the version panel
  4. Start exploring your workflow evolution!

All your existing workflows already have version history enabled - we've been creating versions automatically since this feature launched.

What's Next

We're working on additional versioning features:

  • Version comments - add notes to versions explaining changes
  • Branch/fork versions - create alternate versions without affecting main history
  • Collaborative annotations - team members can comment on versions
  • Export/import - backup and restore version history
  • Visual diff - graphical comparison showing workflow canvas changes
  • Merge capabilities - combine changes from different versions

Try it now: Open any workflow and click the version history icon to see your complete workflow evolution. Never lose work again!

Have feedback or questions? Join our community forum or contact support.

External Data API Endpoints - Connect Your Trading Strategies to External Systems

· 6 min read
ApudFlow OS
Platform Updates

External trading systems often need to communicate with each other, but traditional platforms make this integration complex and expensive. Today we're introducing the External Data Provider - a powerful worker that creates stable HTTP API endpoints for seamless integration between ApudFlow and external trading platforms.

The Integration Challenge

Professional traders use multiple platforms simultaneously:

  • Charting platforms (TradingView, MetaTrader) for analysis
  • Custom indicators running on separate servers
  • Risk management systems on different infrastructure
  • Notification systems (Telegram, Discord, email)

The challenge? Getting these systems to communicate reliably. Most solutions require:

  • Expensive API subscriptions
  • Complex webhook configurations
  • Custom server infrastructure
  • Ongoing maintenance costs

ApudFlow's Solution: Stable API Endpoints

Our new worker creates persistent HTTP endpoints that external systems can call anytime. Unlike traditional webhooks that push data, these endpoints allow external systems to pull data on demand.

Key Advantages

1. Zero Infrastructure Costs

  • No servers to maintain
  • No API keys to manage
  • No rate limiting worries
  • Works with any programming language

2. Stable URLs

  • Same endpoint URL across workflow runs
  • Deterministic URL generation based on workflow ID
  • No more broken integrations when workflows restart

3. Universal Compatibility

  • REST API that works with any HTTP client
  • JSON and plain text responses
  • CORS-friendly for web applications

4. Real-Time Data Flow

  • Update data instantly by re-running workflows
  • Timestamp tracking for data freshness
  • Error handling and status monitoring

External Data Provider: Serve Data to External Systems

The External Data Provider creates GET endpoints that external systems can call to retrieve data from your ApudFlow workflows.

Perfect For:

  • MQL4/MQL5 indicators fetching dynamic parameters
  • TradingView strategies getting real-time signals
  • Mobile apps displaying live trading data
  • External dashboards consuming analytics

How It Works

  1. Configure your data in the worker parameters
  2. Choose response format (JSON or plain text)
  3. Get stable endpoint URL for external systems to call
  4. External systems fetch data using simple HTTP GET requests

Example Use Cases

Dynamic Indicator Parameters

Response Data: {"rsi_period": 14, "bb_length": 20, "signal_strength": 0.85}
Response Type: JSON

Your MQL5 indicator fetches these parameters every minute.

Trading Signals for Multiple Platforms

Response Data: BUY EURUSD sl=1.0820 tp=1.0950
Response Type: text

Multiple trading platforms read the same signal simultaneously.


Integration Examples

MQL5 Expert Advisor Integration

// Fetch trading parameters from ApudFlow
string FetchTradingParams() {
string endpoint = "https://api.apudflow.io/api/w/your_workflow_id/provider_12345";
HINTERNET hSession = InternetOpenW("MQL5_ApudFlow", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
HINTERNET hConnect = InternetOpenUrlW(hSession, endpoint, NULL, 0, INTERNET_FLAG_RELOAD, 0);

string result = "";
char buffer[1024];
DWORD bytesRead;

while (InternetReadFile(hConnect, buffer, sizeof(buffer), bytesRead) && bytesRead > 0) {
result += CharArrayToString(buffer, 0, bytesRead);
}

InternetCloseHandle(hConnect);
InternetCloseHandle(hSession);

return result;
}

// Use in your EA
void OnTick() {
string params = FetchTradingParams();
// Parse JSON and adjust trading logic
if (StringFind(params, "\"signal\":\"BUY\"") != -1) {
// Execute buy order with dynamic parameters
}
}

TradingView Pine Script Strategy

//@version=5
strategy("ApudFlow Signal Strategy", overlay=true)

// Note: TradingView doesn't support direct HTTP calls in Pine Script
// Use webhooks or external scripts to fetch data

// Mock data - replace with actual HTTP call
string apudflow_signal = ""
if barstate.islast
// In production, use external script to fetch from:
// https://api.apudflow.io/api/w/your_workflow_id/provider_12345
apudflow_signal := "BUY"

bool buy_signal = apudflow_signal == "BUY"
bool sell_signal = apudflow_signal == "SELL"

// Execute trades based on ApudFlow signals
if buy_signal
strategy.entry("Buy", strategy.long)
if sell_signal
strategy.entry("Sell", strategy.short)

// Visual confirmation
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar,
color=color.green, size=size.small, title="ApudFlow Buy Signal")
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar,
color=color.red, size=size.small, title="ApudFlow Sell Signal")

Python Trading Bot Integration

import requests
import json
import time

class ApudFlowTrader:
def __init__(self, workflow_id, provider_id):
self.endpoint = f"https://api.apudflow.io/api/w/{workflow_id}/{provider_id}"

def get_trading_signal(self):
"""Fetch latest trading signal from ApudFlow"""
try:
response = requests.get(self.endpoint, timeout=5)
response.raise_for_status()
return response.json()
except requests.RequestException as e:
print(f"Error fetching signal: {e}")
return None

def execute_trade(self, signal_data):
"""Execute trade based on signal"""
if signal_data.get('signal') == 'BUY':
# Execute buy order
print(f"Buying {signal_data.get('symbol')} at {signal_data.get('price')}")
elif signal_data.get('signal') == 'SELL':
# Execute sell order
print(f"Selling {signal_data.get('symbol')} at {signal_data.get('price')}")

# Usage
trader = ApudFlowTrader("your_workflow_id", "provider_12345")

while True:
signal = trader.get_trading_signal()
if signal:
trader.execute_trade(signal)
time.sleep(60) # Check every minute

JavaScript Web Dashboard

// Fetch and display trading data from ApudFlow
async function updateDashboard() {
try {
const response = await fetch('https://api.apudflow.io/api/w/your_workflow_id/provider_12345');
const data = await response.json();

// Update dashboard elements
document.getElementById('current-signal').textContent = data.signal;
document.getElementById('last-update').textContent = new Date(data.timestamp).toLocaleString();
document.getElementById('pnl').textContent = data.pnl || 'N/A';

// Update charts with new data
updateCharts(data);

} catch (error) {
console.error('Error fetching dashboard data:', error);
}
}

// Update every 30 seconds
setInterval(updateDashboard, 30000);
updateDashboard(); // Initial load

Real-World Implementation Examples

Multi-Platform Signal Distribution

Challenge: Trader wants to send signals to MT5, TradingView, and a custom Python bot simultaneously.

Solution:

  1. Create External Data Provider worker
  2. Configure with signal data: {"signal": "BUY", "symbol": "EURUSD", "sl": 1.0820, "tp": 1.0950}
  3. All platforms fetch from the same stable endpoint
  4. Update signal by re-running the workflow

Dynamic Indicator Parameters

Challenge: Indicators need to adapt parameters based on current market volatility.

Solution:

  1. AI Data Analyzer assesses market conditions
  2. Function worker calculates optimal parameters
  3. External Data Provider serves parameters to indicators
  4. Indicators fetch and apply parameters in real-time

Risk Management Dashboard

Challenge: Portfolio risk metrics need to be available to external risk systems.

Solution:

  1. Portfolio data flows through risk calculation workers
  2. External Data Provider serves risk metrics as JSON
  3. External systems fetch and display risk data
  4. Alerts triggered when risk thresholds exceeded

Getting Started

1. Add External Data Provider to Your Workflow

  1. Drag worker onto your workflow canvas
  2. Configure parameters:
    • response_data: Your data (JSON string or plain text)
    • response_type: "JSON" or "text"
    • provider_id: (optional) Custom ID or auto-generated
  3. Run workflow to generate endpoint URL
  4. Share URL with external systems

2. Test Your Integration

Use curl to test your endpoint:

# Test Provider endpoint
curl https://api.apudflow.io/api/w/your_workflow_id/provider_12345

Security and Best Practices

Authentication

  • Consider adding API keys for production endpoints
  • Use HTTPS for all external communications
  • Implement rate limiting for high-traffic endpoints

Error Handling

  • Always implement try-catch in your external code
  • Handle network timeouts gracefully
  • Cache data locally when ApudFlow is unavailable

Monitoring

  • Log all API calls for debugging
  • Monitor endpoint response times
  • Set up alerts for failed integrations

Performance

  • External systems should cache data when possible
  • Use appropriate polling intervals (not too frequent)
  • Consider data compression for large payloads

What's Next

This is just the beginning of ApudFlow's external integration capabilities. Future enhancements include:

  • Webhook support for real-time data pushing
  • OAuth integration for secure API access
  • Rate limiting controls in the UI
  • API key management for enterprise users
  • Advanced authentication options

The External Data Provider worker transforms ApudFlow from a standalone platform into a central integration hub for your entire trading infrastructure. Connect, automate, and scale your trading operations like never before.

Ready to integrate your trading systems? Start building with External Data API endpoints today! 🚀/home/docker/chatai/site-docusarus/blog/2025-12-26-external-data-api-endpoints-trading-integrations.md

Signal Generator & Backtest Strategy - Build and Validate Trading Strategies Without Code

· 8 min read
ApudFlow OS
Platform Updates

Professional-grade trading strategy development has traditionally required expensive software, complex coding skills, and significant time investment. Today we're showcasing two powerful workers that transform how you build, test, and optimize trading strategies: the Signal Generator and Backtest Strategy with AI-powered optimization.

Key Advantages

1. Zero-Code Strategy Building Traditional platforms require learning scripting languages or programming. ApudFlow offers:

  • Visual drag-and-drop workflow builder
  • Point-and-click condition configuration
  • No programming knowledge needed

2. True AI Optimization (Not Just Grid Search) Most platforms call "optimization" what's really just exhaustive grid search. ApudFlow's AI:

  • Analyzes your data's volatility characteristics
  • Automatically determines appropriate parameter ranges
  • Uses recursive search to escape local optima
  • Tests trailing stops and time-based exits automatically

3. Integrated Execution Pipeline Build signals → Backtest → Deploy to live trading - all in one platform:

  • Connect directly to multiple brokers and exchanges
  • Real-time notifications via messaging apps
  • No code needed between backtest and live

What is Signal Generator?

The Signal Generator is a flexible condition-based signal engine that transforms your indicator data into actionable trading signals. Think of it as a visual "if-then" builder for trading rules.

Core Capabilities

FeatureDescription
15+ OperatorsNumeric (>, <, crosses_above), string (contains, matches)
Nested LogicBuild complex (A AND B) OR (C AND D) conditions
Field MathUse expressions like high - low or close * 2
Previous BarReference close[-1] for previous values
Percentage Functionspct_change(close), pct(high, open) for % calculations
Signal FilteringAvoid duplicates with first mode or cooldown

Example: RSI Mean Reversion Strategy

{
"long_conditions": [
{"left": "rsi", "operator": "crosses_above", "right": "30"}
],
"short_conditions": [
{"left": "rsi", "operator": "crosses_below", "right": "70"}
],
"close_mode": "reverse"
}

That's it! No coding required. The visual interface makes this even simpler with dropdowns and auto-complete.


What is Backtest Strategy?

The Backtest Strategy worker is a high-performance backtesting engine that evaluates your signals against historical data with realistic execution modeling.

Performance Highlights

  • 100,000+ bars in milliseconds - vectorized numpy operations
  • O(1) signal lookup - instant bar matching
  • Memory optimized - handles years of tick data

Complete Risk Management

Risk FeatureOptions
Stop LossPercent, ATR multiple, Fixed price, Price
Take ProfitPercent, ATR, Risk:Reward ratio, Fixed, Price
Trailing StopPercentage-based with auto-adjustment
Position SizingPercent of equity, Fixed amount, Risk-based
Time ExitsMax hold duration, Close at specific time
Trading WindowMarket hours only

Professional Statistics Output

Every backtest produces institutional-grade metrics:

  • Risk-adjusted returns: Sharpe, Sortino, Calmar ratios
  • Drawdown analysis: Max DD, duration, recovery time
  • Trade breakdown: By direction, exit reason, time period
  • Visualization data: Equity curve, drawdown curve, trade markers

🤖 AI Optimization: The Game Changer

This is where ApudFlow truly shines. Traditional optimization requires you to:

  1. Guess reasonable parameter ranges
  2. Set up grid search manually
  3. Analyze hundreds of results
  4. Hope you didn't overfit

ApudFlow's AI does all of this automatically:

How AI Optimization Works

  1. Volatility Analysis

    • Measures average bar price change
    • Detects timeframe (tick/intraday/daily)
    • Identifies your data's characteristics
  2. Smart Range Generation

    • Stop loss: 0.5x to 3x volatility
    • Take profit: 1x to 5x volatility
    • Position size: 5% to 25% of capital
    • Trailing stops: Based on timeframe
  3. Recursive Search

    • If best result is unprofitable, AI expands search
    • Up to 3 additional passes with wider ranges
    • Automatically finds better solutions
  4. Complete Output

    • Best parameters ready to copy
    • Top 10 alternatives to compare
    • Full trade list for chart visualization
    • Recommendations for improvement

Using AI Optimization

Simply check the "🤖 AI Find Best Strategy" checkbox and select your optimization target. That's all - every other parameter is hidden because AI determines them automatically.

Best optimization targets:

TargetWhen to Use
sharpe_ratio(Recommended) Best risk-adjusted returns
total_returnMaximum profit (higher risk)
profit_factorConsistent profit ratio
sortino_ratioFocus on downside risk only

Building a Complete Trading System

Here's how the pieces fit together in a real workflow:

Workflow Architecture

[Trigger] → [Data Source] → [Indicators] → [Signal Generator] → [Backtest Strategy]

[Telegram Notify] ← [Deploy to Live]

Step 1: Fetch Market Data

Connect your preferred data source:

  • Stock/Forex APIs: Stocks, forex, crypto, ETFs
  • Equity Data Providers: US equities with tick data
  • Crypto Exchanges: Cryptocurrency markets

Step 2: Add Technical Indicators

Use Python Code worker or built-in indicators from your data provider:

  • RSI, MACD, Bollinger Bands
  • Moving averages (SMA, EMA)
  • ATR for volatility

Step 3: Generate Signals

Configure Signal Generator with your entry/exit conditions:

Bullish Engulfing Pattern:

{
"long_conditions": [
{"left": "close - open", "operator": ">", "right": "0"},
{"left": "close[-1] - open[-1]", "operator": "<", "right": "0"},
{"left": "close - open", "operator": ">", "right": "open[-1] - close[-1]"}
],
"long_logic": "AND"
}

3% Price Spike with Volume:

{
"long_conditions": [
{"left": "pct_change(close)", "operator": ">=", "right": "3"},
{"left": "volume", "operator": ">", "right": "volume[-1]"}
],
"long_logic": "AND"
}

Step 4: Backtest with AI

Enable AI optimization to find optimal:

  • Stop loss distance
  • Take profit target
  • Position sizing
  • Trailing stop configuration

Step 5: Analyze and Deploy

Review the AI's recommendations:

  • Check top 10 parameter combinations
  • Examine trades on chart
  • Validate with block analysis
  • Deploy winners to live trading

Real-World Strategy Examples

Momentum Breakout Strategy

Signal Generator:

{
"long_conditions": [
{"left": "close", "operator": ">", "right": "high[-1]"},
{"left": "volume", "operator": ">", "right": "volume_sma * 1.5"}
],
"long_logic": "AND",
"close_mode": "none"
}

Backtest Configuration:

  • Enable AI optimization
  • Target: sharpe_ratio
  • Let AI determine SL/TP

Why close_mode: none? This tells Signal Generator to never generate close signals - the Backtest Strategy handles all exits via stop loss, take profit, and trailing stops. This is the professional approach for momentum strategies.

Mean Reversion with Bollinger Bands

Signal Generator:

{
"long_conditions": [
{"left": "close", "operator": "<=", "right": "bb_lower"}
],
"close_long_conditions": [
{"left": "close", "operator": ">=", "right": "bb_middle"}
],
"close_mode": "conditions"
}

Backtest Configuration:

  • AI optimization with profit_factor target
  • SL/TP type: percent
  • Block analysis: 6 blocks for validation

Multi-Timeframe Trend Following

Signal Generator:

{
"long_conditions": [
{"left": "close", "operator": ">", "right": "sma_20"},
{"left": "close", "operator": ">", "right": "sma_200"},
{"left": "adx", "operator": ">", "right": "25"}
],
"long_logic": "AND",
"signal_mode": "first"
}

Why signal_mode: first? This generates a signal only when conditions BECOME true, preventing duplicate signals on every bar the condition remains true.


AI Output: Understanding Your Results

When AI optimization completes, you get:

Best Parameters (Ready to Copy!)

{
"stop_loss_value": 1.8,
"take_profit_value": 4.5,
"position_size": 0.15,
"trailing_stop": true,
"trailing_stop_value": 1.2,
"rr_ratio": 2.5
}

Performance Metrics

{
"total_return_pct": 47.3,
"sharpe_ratio": 1.85,
"max_drawdown_pct": 12.4,
"win_rate": 58.2,
"profit_factor": 2.1,
"total_trades": 156
}

Recommendations

The AI provides actionable insights:

  • "Strategy shows strong risk-adjusted returns (Sharpe > 1.5)"
  • "Win rate is solid with good profit factor"
  • "Consider tighter trailing stop for momentum capture"

Trade Details for Charting

Each trade includes all data needed for visualization:

  • Entry/exit timestamps
  • Entry/exit prices
  • Stop loss and take profit levels
  • Position size
  • Profit/loss
  • Exit reason

Walk-Forward Validation

Don't trust a strategy that only works in hindsight! Use block analysis to validate robustness:

analysis_blocks: 6

This splits your data into 6 equal periods and tests the strategy on each one independently.

Consistency Score Interpretation

ScoreMeaning
80-100 ⭐Excellent - reliable across all periods
60-80 ✅Good - minor variations, generally reliable
40-60 ⚠️Moderate - review needed, possible overfit
20-40 ❌Poor - likely overfitted to specific periods
0-20 🚫Very Poor - strategy fails in multiple periods

A strategy that scores 80+ across 6 blocks is far more likely to perform in live trading than one that shows great overall results but inconsistent block performance.


Integration with Live Trading

ApudFlow's greatest strength is the seamless path from backtest to live:

Direct Broker Integration

  • Crypto Exchanges: Spot and futures trading
  • Traditional Brokers: Multi-asset trading
  • More integrations: Expanding broker support

Alert and Notification Pipeline

[Signal Generator] → [Condition Check] → [Messaging App]
→ [Chat Notification]
→ [Email Alert]
→ [Execute Trade]

### Schedule and Automation
- Run strategies on schedule (1min, 5min, hourly)
- 24/7 monitoring without manual intervention
- Automatic position management

---

## Getting Started: 5-Minute Quick Start

1. **Create new workflow** in ApudFlow
2. **Add data source** (any supported market data provider)
3. **Add Signal Generator** with simple RSI conditions:
```json
{
"long_conditions": [{"left": "rsi", "operator": "<", "right": "30"}],
"short_conditions": [{"left": "rsi", "operator": ">", "right": "70"}]
}
  1. Add Backtest Strategy and enable AI optimization
  2. Run and analyze - AI finds optimal parameters automatically!

Summary: Why Signal Generator + Backtest Strategy?

BenefitImpact
No coding10x faster strategy development
AI optimizationFind parameters you'd never guess
License-safeDeploy commercially without worries
Walk-forward validationTrust your results
Direct executionBacktest → Live in one platform
Professional statsInstitutional-grade analytics

Whether you're a discretionary trader looking to validate your ideas, a quant developer seeking rapid prototyping, or a fund manager requiring robust validation - ApudFlow's Signal Generator and Backtest Strategy provide the complete toolkit.


Ready to build your first strategy? Start with a simple RSI strategy, let AI optimize it, and experience the difference of professional-grade backtesting without the complexity.

Questions? Our community is here to help you develop winning strategies! 📈🚀

Fetch RSS Connector - Direct Access to News Feeds

· 5 min read
ApudFlow OS
Platform Updates

Access to real-time news is essential for staying informed about market movements and global events. Introducing the Fetch RSS Connector - a lightweight and powerful worker that provides direct access to RSS feeds from major news sources without requiring API keys or complex authentication.

What is Fetch RSS Connector?

The Fetch RSS Connector allows you to pull news articles directly from RSS feeds of trusted publications like Bloomberg, Investing.com, Yahoo Finance, and The New York Times. Unlike API-based news services, RSS feeds are freely accessible and provide real-time updates as soon as articles are published.

With built-in sorting by publication date and support for multiple feeds in a single request, you can quickly aggregate news from various sources for comprehensive market monitoring.

Key Features

  • No API Key Required: Direct access to public RSS feeds without authentication
  • Multiple Sources: Aggregate articles from multiple RSS feeds simultaneously
  • Real-time Updates: Get the latest articles as soon as they're published
  • Pre-configured Defaults: Ready-to-use feed URLs for major financial news sources
  • Date Sorting: Automatic chronological sorting with newest articles first
  • Flexible Limits: Control the number of articles returned (up to 500)
  • Structured Output: Consistent article format with title, body, date, source, and URL

How It Works

Core Functionality

RSS Parsing: Fetches and parses XML feeds from specified URLs Multi-source Aggregation: Combines articles from multiple feeds into one stream Date Extraction: Parses publication dates from various RSS formats (RFC 2822, ISO) Chronological Sorting: Orders articles by date, newest first Content Extraction: Pulls title, summary/description, source, and link

Default News Sources

The worker comes pre-configured with high-quality financial news feeds:

  • Investing.com - Stock market and forex news
  • Bloomberg Markets - Global financial markets coverage
  • Yahoo Finance - Comprehensive financial news
  • New York Times Economy - Economic analysis and reporting

Getting Started - Interface Configuration

Basic Setup

  1. Select Worker Type: Choose "fetch_rss" from the worker selection dropdown
  2. Review Default URLs: The worker includes pre-configured feeds for major sources
  3. Customize If Needed: Add or remove RSS feed URLs as desired
  4. Set Limit: Configure maximum number of articles (default: 100)
  5. Execute: Run the worker to retrieve articles from all feeds

Parameter Configuration

rss_urls (array): List of RSS feed URLs to fetch

[
"https://www.investing.com/rss/news_1063.rss",
"https://feeds.bloomberg.com/markets/news.rss",
"https://news.yahoo.com/rss/finance"
]

limit (number): Maximum articles to return (1-500, default: 100)

Practical Implementation Examples

Financial News Aggregation

Combine Fetch RSS with VectorAnalyzer for intelligent news filtering:

Workflow:

  1. Schedule Trigger - Run every 15 minutes
  2. Fetch RSS - Collect from default financial feeds
  3. VectorAnalyzer - Filter by query "market volatility earnings"
  4. Table Widget - Display relevant articles

Multi-Source News Dashboard

Build a comprehensive news monitoring system:

Configuration Example:

{
"rss_urls": [
"https://www.investing.com/rss/news_1063.rss",
"https://feeds.bloomberg.com/markets/news.rss",
"https://news.yahoo.com/rss/finance",
"https://rss.nytimes.com/services/xml/rss/nyt/Economy.xml",
"https://feeds.reuters.com/reuters/businessNews"
],
"limit": 200
}

Sentiment Analysis Pipeline

Combine with VectorAnalyzer for sentiment-aware news monitoring:

Workflow Chain:

  1. Fetch RSS → Collect articles from multiple sources
  2. VectorAnalyzer → Apply semantic search with sentiment analysis
  3. Filter by Polarity → Focus on strongly positive or negative news
  4. Telegram Notify → Alert on significant sentiment shifts

Integration with VectorAnalyzer

The Fetch RSS worker pairs perfectly with VectorAnalyzer for AI-powered news analysis:

Example Configuration:

// Step 1: Fetch RSS
{
"rss_urls": ["https://feeds.bloomberg.com/markets/news.rss"],
"limit": 100
}

// Step 2: VectorAnalyzer
{
"data": "{{workers[0].[result]}}",
"query": "Federal Reserve interest rates monetary policy",
"fields": ["title", "body"],
"top_percentage": 30,
"sort_by": "relevance"
}

Result: Articles semantically related to Federal Reserve policy, ranked by relevance with sentiment scores.

SourceRSS URLFocus
Investing.com Stockshttps://www.investing.com/rss/news_1063.rssStock market
Investing.com Forexhttps://www.investing.com/rss/news_14.rssCurrency markets
Bloomberg Marketshttps://feeds.bloomberg.com/markets/news.rssGlobal markets
Yahoo Financehttps://news.yahoo.com/rss/financeGeneral finance
NYT Economyhttps://rss.nytimes.com/services/xml/rss/nyt/Economy.xmlEconomic analysis
Reuters Businesshttps://feeds.reuters.com/reuters/businessNewsBusiness news

Best Practices

Feed Selection

  • Choose feeds that match your analysis focus
  • Mix broad coverage (Yahoo, Reuters) with specialized sources (Investing.com sectors)
  • Test feed availability periodically as URLs can change

Performance Optimization

  • Use appropriate limits based on your processing needs
  • Schedule updates based on your real-time requirements
  • Consider combining with caching for frequently accessed data

Workflow Design

  • Chain with VectorAnalyzer for intelligent filtering
  • Use sentiment_polarity for market mood analysis
  • Implement alerts for breaking news patterns

Conclusion

The Fetch RSS Connector provides a simple yet powerful way to access real-time news from trusted sources without the complexity of API authentication. Combined with VectorAnalyzer's semantic search and sentiment analysis capabilities, you can build sophisticated news monitoring workflows that surface the most relevant market intelligence.

Whether you're tracking market sentiment, monitoring specific sectors, or building comprehensive news dashboards, the Fetch RSS worker offers the flexibility and reliability you need. Start with the default feeds, then customize your sources to match your specific monitoring requirements.

For detailed guides on combining Fetch RSS with semantic analysis, check out our dedicated articles covering AI-powered news workflows and real-time sentiment monitoring strategies.