Skip to content

Changelog for cTrader Algo API

5.9

July, 2026

What's new
  • New Clipboard API allows your algos to read text from and write text to the system clipboard. Accessing the clipboard requires user permission via ClipboardPermission.
  • New server-side Advanced Protection API allows you to declare a complete stop-loss / take-profit protection plan on a single trade call using RelativeStopLossProtection, RelativeTakeProfitProtection / RelativeTakeProfitProtections and break-even rules. Partial take profits, a final take profit and break-even stop moves are then enforced by the server instead of your algo's polling loop.
  • New TimeByValue method added to chart graphical objects (such as trend lines, channels and Andrews Pitchfork) complements the existing CalculateY and allows you to retrieve the time or value of a graphical object at any chosen bar.
  • New IsVisible property added to OutputAttribute and BarOutputAttribute allows an indicator to set the default visibility of its outputs.
  • Python cBots and indicators can now reference a custom indicator project (a user-written indicator, not only the built-in standard indicators) and instantiate it at runtime via GetIndicator using the indicator's type name, exactly like a C# algo uses Indicators.GetIndicator<T>.
  • New Algo Config UI allows you to edit the config.json algo metadata and schema (settings, parameters, outputs, clouds, levels and enums) through a structured editor with validation and localization instead of editing the file by hand.
  • Code editor now supports showing and editing the other source files of an algo project, not just the main file.
  • New Copy button in the Automate Build Result panel allows you to copy all build errors and warnings to the clipboard at once. Individual diagnostics can also be selected and copied with Ctrl+C, and Ctrl+A selects all of them.
  • cBot OnStop is now called when the CLI / cTrader Console is terminated via SIGTERM or SIGINT, so cBots are notified of shutdown and can clean up.
  • Native linux/arm64 cTrader Console Docker image: the published image is now a multi-architecture manifest covering both linux/amd64 and linux/arm64, so ARM hosts such as Raspberry Pi, Apple Silicon and ARM64 cloud instances run natively instead of under QEMU emulation.
Improvements
  • Backtesting now closes open positions at the end of the backtest so the equity chart reflects the true account value throughout the whole run instead of a simplified shape.
  • Backtesting margin and stop-out logic aligned with live trading: opening new positions is blocked when the margin level is below 100% and a realistic stop-out is applied.
  • Algo build now fails with a clear error when an algo declares its configuration through both config.json and code attributes, so only one approach is used.
  • C# and Python algo templates updated to use the new config.json file and the Config source generator NuGet package.
  • Reduced CPU usage on cBot startup.
  • Cloud cBot execution limits per account: cloud cBots are now subject to a per-account limit on the number of simultaneously running cloud cBots, and are automatically stopped when the account's trading activity requirement is not met.
Bug fixes
  • Indicator OnDestroy not being called when switching workspaces.
  • Notifications.PlaySound failing with a service-not-registered error.
  • Backtesting report Fitness value being zero for some symbols.
  • Wrong "Python is not supported" build error for C# algos when using the embedded compiler.

5.7

March, 2026

What's new
  • New Floating value added to ChartMode enum allows you to set a chart container mode to the new floating mode.
  • New File parameter type allows you to pass a file to an algo, allowing the algo to read from and write to the file.
  • New File[] or multi file parameter type allows you to pass multiple files to an algo, allowing the algo to read from and write to any of the files.
  • New Archived, Custom and Enabled collection properties added to Symbols type make querying symbols easier and more performant.
  • New DATA-DIR option for CLI backtest command allows you to use a specific directory for saving and loading price data when backtesting cBots with CLI. This option eliminates the need to download historical price data multiple times when CLI is used via Docker.
Bug fixes
  • ChartTemplates.DefaultTemplate being null.

5.6

November, 2025

What's new
  • New ChartTemplates API allows you to retrieve, create, update, remove and apply chart templates.
  • New Symbol[] parameter type allows you to pass multiple symbols to an algo, with a multi-symbol picker UI representation.
  • New Enum[] parameter type allows you to pass multiple values of an enum type to an algo, with a multi-enum value picker UI representation.
  • New TimeFrame[] parameter type allows you to pass multiple TimeFrame values to an algo, with a multi-period picker UI representation.
  • New MultiSelect algo control allows you to let users of your algo select multiple unique string values.
  • New OpenDevToolsWindow method for WebView control allows you to open dev tools for a WebView control instance.
  • New SwapCalculationType for symbol points.
Improvements
  • TimeFrame parameter types upgraded to support custom periods in plugins.
  • DateTime parameter type changed to use new hard coded default value of 31/10/2025 00:00:00 if not set by algo instead of DateTime.MinValue.
  • DateOnly parameter type changed to use new hard coded default value of 31/10/2025 if not set by algo instead of DateOnly.MinValue.
  • TimeSpan parameter type changed to use new default value of 00:00:00 if not set by algo instead of TimeSpan.MinValue.
  • TimeSpan parameter type changed to use new min value of 00:00:00 and max value of 23:59:59 if not set by algo instead of TimeSpan.MinValue and TimeSpan.MaxValue.
  • Some built-in algo samples added to the list of C# and Python algorithm templates and algo samples GitHub repositories.
  • Source code of all built-in indicators added to the C# and Python algo samples GitHub repositories.
  • Chart view-port data transfer to algos refactored from from eager to lazy. This change prevents unnecessary resource usage in cases where an algo does not use chart view-port API members.
Bug fixes
  • Chart controls with coordinates resulting in problems when used alongside chart objects.
  • Account related data, such as positions, pending orders and others, not being updated when trading account is switched for plugins.
  • DateTimePicker control ValueChanged event not being triggered when value is set by algo.

5.5

September, 2025

What's new
  • New Symbol parameter type allows you to select a symbol from your account symbols list and pass it to an algo.
  • New TimeSpan parameter type allows you to pass a typed time interval or time of day to an algo, with a time picker UI representation.
  • New DateTime parameter type allows you to pass a typed date and time in your algo's time zone, with a date-time picker UI representation.
  • New DateOnly parameter type allows you to pass a typed date to an algo, with a date picker UI representation.
  • New Parameters collection property, added to PluginType (similar to IndicatorType and RobotType), allows you to access plugin parameters in code.
  • New DateTimePicker algo control allows you to easily get a date and time value from a user of your algo.
Improvements
  • Changed loading for account deposit asset from eager to lazy mode to prevent deposit asset not found errors during algo start-up.
Bug fixes
  • New loaded bars after calling LoadMoreHistory in plugins were not added to chart.
  • Chart bars were not being updated after switching chart symbol or time frame in plugins.
  • Incorrect number of positions returned inside the position opened event handler when accessing Positions.Count

5.4

July, 2025

What's new
  • Plugin hotkeys API: New API objects for plugins allow you to add global hotkeys. These hotkeys behave like built-in cTrader hotkeys and work everywhere.
  • Parameter and output descriptions: New Description property in parameter and output attributes shows tooltips in the UI when users hover over them.
  • Chart bars toggle: New Bars flag in chart display settings allows you to hide chart bars. The flag removes the need for transparent colours and prevents scaling issues by not drawing bars.
  • Setting active frames: New Activate method in the Frame class allows plugins to set the active chart or frame.
  • Bar outputs: Indicators can now output OHLC bars with volume instead of a single data series. The output allows displaying custom bar charts on panels or the main chart and can be reused by other indicators.
  • Data series for plugins: New CreateDataSeries method allows plugins to create data series. The created series can be passed as inputs to internal indicators.
  • Panel child properties: New Children, HasChild and ChildrenCount properties let you access and work with panel contents.
  • Grid panel position info: New GridChildPositionInfo method returns a child’s position in the grid.
  • Main menu API for plugins: New API lets you add menu items with SVG icons to the main menu. Top menu items can show custom controls. Bottom menu items can trigger plugin handlers.
  • Plugin parameters: Plugins can now use parameters the same way indicators and cBots do. The parameters are visible and editable in plugin settings.
Improvements
  • Assets API is refactored to reduce resource usage.
  • Sleep API is improved to prevent freezing for cBots and indicators when the market is closed.
Bug fixes
  • No API bugs were found or fixed in version 5.4.

5.3

June, 2025

What's new
  • Custom timeframe API: New API lets plugins define custom timeframes and supply data for them.
  • Custom symbol API: New API lets plugins create custom symbols. The created symbols can be based on existing ones or defined from scratch and behave like broker symbols.
  • Custom backtesting data source: New API allows plugins to provide backtesting and optimisation data. The API supports external tick data and third-party feeds.
  • Notification popups: Algos can now show popup alerts similar to built-in cTrader notifications.
  • Symbol sentiment access: Algos can now read sentiment data for symbols.
Improvements
  • Cross-timeframe backtesting: Improved error messages for incompatible timeframe use in backtesting and optimisation.
  • Updated Help Centre link in default algo templates.
  • Made Account.UserId and Account.Nickname available for cloud cBot instances.
  • CID disconnection handling: Algos keep running and return the last known account data when CID disconnects.
  • Message timeouts: Timeout handling prevents algos from getting stuck while waiting for a response from cTrader.
  • Help Centre API updates: Added protected API methods to the Help Centre reference.
Bug fixes
  • Account.BrokerName returned empty in the console.
  • Algos froze when loading all account transactions.
  • RiskReward tool in backtest incorrectly placed live trades.
  • Typo in ChartObject.IsLocked property documentation.
  • ComboBox.SelectionChanged was triggered after setting the selected item before render.

Image title