AmiBroker 7.00.1 Official released

A new official version (7.00.1) of AmiBroker is available now.

DOWNLOAD LINKS

32-bit version:
https://www.amibroker.com/members/download.php?AmiBroker.7.00.1.exe

64-bit version:
https://www.amibroker.com/members/download.php?AmiBroker.7.00.1.x64.exe

HIGHLIGHTS

Highlights are documented in What's new in AmiBroker 7.00

DOCUMENTATION

For the details see ReadMe.html and ReleaseNotes.html inside AmiBroker folder, F1 help, as well as in the on-line guide AmiBroker 7.00 User's Guide

UPGRADE POLICY

This version is a free upgrade only for users who registered AmiBroker after December 22, 2023 . Users who registered earlier, would need to purchase license upgrade. To find out the version you currently have use Account Information page at https://www.amibroker.com/members/info.php

CHANGES FOR VERSION 7.00.1 (as compared to 7.00.0)

  1. AFL: StrToDateTime("") - passing empty string to StrToDateTime produces Null result (as pre-7.00)
  2. Batch Scheduler: now week day filtering applies to hourly and N-minute repeats too
  3. Batch Scheduler: now you can schedule batches in custom N-minute intervals
  4. New Analysis: Changed the way how "Run Every" works. Now the period counts from START of scan/exploration (not from END as before). So if scan takes 0.3 seconds and run every is set to 1 second, so it attempts to start exactly every selected interval regardless of how much time previous scan/exploration took.
  5. New AmiQuote 4.19 included
  6. Documentation cleanup

CHANGES FOR VERSION 7.00.0 (as compared to 6.93.0)

  1. Completely new AI-driven AFL Code Assistant integerated with AFL Editor
  2. AddMultiTextColumn could sometimes crash if barwidth argument was specified. Fixed.
  3. AFL Editor: new keyboard shortcut Ctrl+/ (slash) = line comment
  4. AFL/New Analysis: AddSummaryRows now supports asrAlways flag that allows summary rows (with sum/total/min/max/avg/stddev) to be added not only to exploration but also to any other mode (such as backtest, optimization)
  5. AFL: added asrTotal, asrAverage, asrMin, asrMax, asrCount, asrStdDev and asrAlways constants for AddSummaryRow calls
  6. AFL: added support for virtual category - categoryApplyTo to CategoryGetSymbols to retrieve list of symbols included in "ApplyTo" filter ( being currently analysed)
  7. AFL: CategoryAddSymbol supports categoryTag to add tag to symbol programmatically
  8. AFL: CategoryGetSymbols supports categoryTag to retrieve symbols having given tag assigned
  9. AFL: CategoryRemoveSymbol supports categoryTag to remove tag from symbol programmatically. Special case category == -1 removes ALL tags from symbol
  10. AFL: new function fappend( filename, text ) - thread-safe, atomic function to append string to a file (internally uses critical section so simultaneous calls from mulitple threads are perfectly safe and data are not lost)
  11. AFL: StrToDateTime now handles years beyond 2027 (upto 2037)
  12. Analysis: Backtest - add SetOption("MaxEntryRank", 10 ) // limit the number of entry signals per bar ("maxsetups") - decides how many entry signals per bar to track (ranked by positionscore) in non-rotational modes, allows to limit number of ranked entry
  13. ASCII importer two digit year YY is interpreted as 20YY if YY < 30 (previously it was < 25). Still two digit year format is OBSOLETE. Users must STOP using two digit year.
  14. Batch: added a way to define current working directory in ExecuteAndWait (optional parameter of ExecuteAndWait command now defines current working dir)
  15. Charts: Default Text Tool font (definable in Tools->Preferences->Text Box) is actually used as default if you place a new text on chart (instead of Axis font)
  16. Data: N-second interval do not need to be alligned to full minute as before
  17. Data: N-second time compression now supports N that 60 is not divisible by (where N is any number from 2...59)
  18. Database: color TAGs can be assigned to symbol for easy identification
  19. New Analysis: Show current trade arrows tries to place the arrow in the middle of the chart so equal number of bars before and after arrow appear, if possible
  20. New Analysis: UI: changed single Settings / Sync on select checkbox to multiple choices: On List Item Select -> Symbol / Show Arrows / Mark range / Sel quote
  21. NewAnalysis: Fix regression - custom date/time column AddColumn( DateTime(), "DT", formatDateTime ) sorting is bad in 6.93 (regression from 6.90)
  22. NewAnalysis: Fixed regression - since 6.90 SetChartOptions did not have any effect on Backtest Report Charts. It made it impossible to add say log style to equity chart. Fixed
  23. NewAnalysis: when low-level CBT was used with "raw" mode and user forgot to call bo.UpdateStats( bar, 0 ) at the beginning of each bar backtester could produce error message about reentry delay even though stops weren't used. Fixed.
  24. Now changing selection on Analysis result list not only synchronizes symbol but also displays arrows, marks range and can change selected date (depending on settings (On List Item Select))
  25. Support for unconstrained definition of parameter types in AFL plugins
  26. UI: Account window now displays numbers with upto 9 significant digits (instead of 7), so 20 million is displayed as 20000000 not scientific notation 2e7
  27. UI: added main menu items Edit->Range->Mark Begin/End/Clear
  28. UI: Fixed small flicker that could occur on very very long list view lines when content was scrolled sideways
  29. UI: Tags: Category tree shows tags as a leaf of category tree and allows filtering by tag
  30. UI: Tags: Symbol window now displays tags as icons in the left side of symbol name, right click on icon allows changing tags quickly. Multiple tags to single symbol can be assigned by CTRL+ click
  31. When RT plugin was active and system slept/hibernated multiple times the were multiple message boxes displayed. Now only one message box is displayed at a time (until it is dismissed)

CHANGES FOR VERSION 6.93.0 (as compared to 6.92.0)

  1. New integrated software updater/downloader/installer. A new menu Help->Check for and Install updates allows to check for AmiBroker software updates and install them directly from AmiBroker
  2. AFL Editor: Ctrl+C (Edit->Copy) without selection copies now entire line. Then if entire line is present in the clipboard, Ctrl+V (Paste) will perform whole line paste (instead at the selection)
  3. AFL Editor: new key commands implemented Alt-UP arrow - Move selected lines UP, Alt-DOWN arrow - Move selected lines DOWN
  4. UI: copy to clipboard from any listview now respects selection so only selected rows (if any) are copied instead of all rows as before. If nothing is selected, entire list is copied

CHANGES FOR VERSION 6.92.0 (as compared to 6.91.0)

  1. Added 'Warning 904' when SetOpacity is called without proper settings ("Multithreaded charts" and "QuickGFX" must be turned on in the Preferences)
  2. Charts (formula) treeview now uses Dark Mode when it is selected in the Customize/Appearance dialog
  3. Interpretation window now uses Dark Mode when it is selected in the Customize/Appearance dialog
  4. Layers list now uses Dark Mode when it is selected in the Customize/Appearance dialog
  5. Layout treeview now uses Dark Mode when it is selected in the Customize/Appearance dialog
  6. Notepad window uses Dark Mode when it is selected in the Customize/Appearance dialog
  7. Symbol Information window now uses Dark Mode when it is selected in the Customize/Appearance dialog
  8. Symbol list and category tree now use Dark Mode when it is selected in the Customize/Appearance dialog

CHANGES FOR VERSION 6.91.0 (as compared to 6.90.6)

  1. AFL: AddColumn supports 2 new formats: formatDateOnly and formatTimeOnly to display DateTime() values
  2. AFL: SetOpacity( opacity = 1 ); to change opacity level (0..1) for subsequent Plot() calls. Opacity = 1 means totally opaque, 0.5 - half-transparent (translucent) 0 - completely transparent (invisible)
  3. QuickGFX: Improved rendering of line plots with width>1 to better align with GDI output
  4. QuickGFX: Opacity / Alpha blending implemented for styleBar plots
  5. QuickGFX: Opacity / Alpha blending implemented for styleCandle plots
  6. QuickGFX: Opacity / Alpha blending implemented for styleDashed plots
  7. QuickGFX: Opacity / Alpha blending implemented for styleDots plots
  8. QuickGFX: Opacity / Alpha blending implemented for styleLine plots
  9. QuickGFX: Opacity / Alpha blending implemented for styleStaircase plots
  10. QuickGFX: Opactity / Alpha blending implemented for styleArea plots
  11. QuickGFX: Opactity / Alpha blending implemented for styleHistogram plots
  12. UI: Column widths in Plugins window scale to DPI
  13. UI: Parameter dialog now keeps the collapsed state of sections, individually on per-chartID basis (for as long as AmiBroker is running)

Previous version AmiBroker 7.00.0 BETA release

18 Likes

7 posts were split to a new topic: StrToDateTime requires VALID string representing date

Hi Tomasz,

I have been a loyal AmiBroker user for over a decade. The software’s speed and stability are unmatched.

Because I'm so heavily reliant on AmiBroker, I am conducting a risk review of it.

Could you share any insights on the long-term business continuity plan for AmiBroker? Specifically, is there a succession plan in place to ensure development continues in the decades to come?

I hope I'm wrong, but from the outside, AmiBroker seems to carry a significant "key-man" risk. This is not a criticism, but a query to help me manage my long-term operational risks as I plan to use Amibroker for many more years.

Thanks for your hard work.

2 Likes

Thank you for raising this in a thoughtful and respectful way. I understand why long-term users want to assess operational risk when a tool becomes central to their work.
That said, it is important to be realistic: there is no meaningful way to guarantee what will happen over a 10- or 20-year horizon in software, regardless of whether a product is developed by an individual or a large corporation. History is full of examples where very large, well-capitalized companies—with boards, legal departments, and formal “succession plans”—failed outright (Lehman Brothers, Enron), were acquired and dismantled (Macromedia after Adobe, Sun Microsystems after Oracle), or quietly shut down products that users depended on for years. Many others simply changed strategic direction and abandoned entire product lines.
In practice, large corporations can be worse from a user-risk perspective, because they have no obligation to individual users. When a product no longer aligns with corporate strategy or revenue targets, it can be discontinued without warning, regardless of how many people rely on it. This is a common and well-documented pattern.
What AmiBroker deliberately offers is something different and increasingly rare: a fully local application. It does not depend on cloud services, subscriptions, activation servers, or an ongoing web presence—and it does not even require an internet connection. If development were to stop at some point in the future, AmiBroker would not suddenly stop working. Your existing installations, databases, AFL code, and workflows would remain usable for many years. This materially reduces real operational risk compared to modern SaaS or server-dependent products.
Regarding “key-man risk”: yes, AmiBroker is independently developed, and that is precisely why it is fast, stable, and technically coherent. Those qualities are very difficult to achieve in committee-driven or frequently restructured corporate environments.
As for succession or continuity planning: such matters—where they exist—are not appropriate subjects for public forum discussion. This is standard practice in both small and large organizations. Publicly disclosing internal contingency plans would not be responsible.
Finally, no software tool lasts forever, and no future can be guaranteed. The practical way to manage long-term risk is not by seeking promises that no developer or corporation can honestly make, but by choosing tools that keep your data local, your logic transparent, and your workflows under your control. AmiBroker was designed with exactly that philosophy in mind.

Last but not least it is good idea to be nice to the developer of the software you depend upon. Some people tend to vent their frustration on me and believe me it does not encourage further work. Keep that in mind.

22 Likes

I’m chiming in because I used to have the same worries about Amibroker’s long‑term future. I’ve invested an enormous amount of time into it, and it’s the backbone of pretty much all my trading work today. Over the years, a few things have really reassured me: the project’s longevity, Tomasz’s dedication—he could have sold the whole thing long ago—the rock‑solid stability of Amibroker, and its excellent forward and backward compatibility on Windows.

And even if Windows were to break something one day, you can always run AB in a VM with the right libraries, so that risk is manageable. Another big plus is that AFL is very readable, which makes it easy to revisit code written years ago and port it to another platform (or into a plugin) if needed. With the progress in AI, such a migration would be even easier.

Worst case, I’d have plenty of time to transition gradually to another platform—but honestly, I’ll probably retire before Tomasz does. Sure, it would cost some extra time, but that has to be weighed against all the years of productivity gains AB has provided.

So overall, I’m confident. And I want to thank Tomasz—hopefully he’ll keep going for many more years. Happy New Year to everyone.

11 Likes

I would agree with a lot of what Tomasz said. Even a huge company like Microsoft has left users of some of their language products without a clear path forward when they deemed it best for their company to abandon a product. I got burned by Microsoft in this way a couple of times.

Since AB is a fully local application, even if official support should disappear tomorrow, it can still be used while alternatives are sought. And since trading logic is embedded in the AFL scripting language the essence of it is always accessible should it become necessary to migrate to another platform. As a hedge against the possible need to move trading logic elsewhere sometime in the future I make copious notes either within my code via comments or elsewhere in a separate document.

I have also found not requiring an Internet connection a real benefit as I am often traveling in areas with marginal or non-existent Internet, and even then I can work on the logic for trading ideas.