Next big release (AmiBroker 7.x) wish list

CUDA based (for systems w/ strong GPU) optimization capability?

I see your point. Actually, I did not consider that posibility, which is much better,

A user-programmable last row for optimization results would be an exceptional feature, enabling a wide range of advanced analytical capabilities, such as:

  • Parameter Mode Optimization: Select the most frequently occurring parameter values across all results.
  • Enhanced Validation: Identify changes that improve the average performance of all key metrics.
  • Optimizing for Best Average Metrics: Design trading systems based on the strongest average results.
  • Stable Parameter Selection: Prioritize parameters that yield minimal standard deviation, supporting robust performance.
  • Performance Tracking Across Tests: Assess how chosen parameter values perform across all test scenarios.
  • Robust Optimization: Avoid selecting parameter sets that create unsustainable performance peaks.
  • Volatile Parameter Filtering: Identify and filter out overly sensitive parameter combinations.
  • Outlier Removal: Eliminate extreme values to ensure more consistent, reliable optimization results.

Incorporating this last programmable row into walk-forward analysis would also enable custom criteria for dynamic optimization, adding powerful flexibility that is currently unavailable on any platform.

4 Likes

Blockquote

An excellent suggestion!

I had something similar on my mind which I think will be extremely useful for Optimizations, Backtests and Explorations. Would be good to know what everyone thinks about it.

Would it be possible to introduce simple codes to work on the Whole Exploration (Or BackTest/Optimization).

Simple codes like CUM (But CUM of the exploration result), Average etc.

If I want to count the number of stocks in a watchlist (of say x stocks) having their LTP's above their respective Moving Average; I can run the exploration with IIF and if the LTP is above MA, give it value 1. After running the exploration, I can export the result to excel and add all 1's to find the result.

If however, there is a simple code which would just print one line in the exploration result, that would be great. Say, COUNTEXPLORATION (y) = ...

Something like, COUNTEXLPORATIONRESULT or AVERAGEOPTIMIZATIONRESULT or some other mathematical calculation like Standard Deviation of the result etc.
The key points to consider would be: 1] work on the whole of exploration/backtest/optimization and 2] just one line output.

When running an exploration on a watchlist, often we might require only the one line real time value. In the above example, the individual stocks trading above MA is not important. The result of the whole exploration is what is sought.

In addition to what I have mentioned above, the earlier suggestion of user programmable last row would also be great, so that we don't have to jump platforms to work on the result if we can incorporate it within the analysis page.

Are these feasible?

Thank You.

PS: Above example if just for illustration purpose. I am sure the same can be coded differently and more efficiently by experienced coders.
I just thought it would be great if we can get real time data (in case of exploration) of the whole list of stocks or the result sought after in the backtest/optimization within the analysis page itself.

For Exploration it ALREADY WORKS and it is there since AmiBroker 5.20 so it is pretty old stuff.

There is an AddSummaryRows that calculates stats from whole explororation:

http://www.amibroker.com/guide/afl/addsummaryrows.html

3 Likes

LIFE SAVER!

I searched the user's guide for Count, Average, CUM, SUM etc. It was in AddSummaryRows all along!

I wish I could select some or all symbols in Symbols windows
and when I right click I could see the option

Copy to clipboard selected Symbols as a comma separated list

5 Likes

adding support for macOS and Linux. Right now, there aren’t many solid technical analysis platforms available for these systems, and native AmiBroker support could fill that gap perfectly.

It’d be great for users who prefer macOS or Linux, making things smoother without needing virtual machines or compatibility tools that can slow things down. Plus, it could open up AmiBroker to a whole new group of traders.

Just something to consider—would love to hear what others think!”

Linux just works with WINE: Working Ubuntu 22.04 / Wine configuration

MacOS works with Parallels and WINE How to Install AmiBroker on macOS using Wine (even on M1/M2/M3)

WINE is not virtual machine. WINE is just API compatibility layer. And AmiBroker actually works very well with WINE, "native" would not work any better.

Let's not forget that software like AmiBroker does not live in vacuum. It needs data sources, and you would need to convince ALL data vendors to work with Mac/Linux natively. So at this point WINE seems to be best solution overall giving instant compatibility with all data vendors.

8 Likes

Hi Thomasz, what about this:
Currently WFA truncates the open trades at the end of each period, regardless of whether there is a closing signal or not. I think it could be useful for more accurate simulations in certain scenarios if the periods could overlap just the time necessary to allow one trade to close according to the codified trading rules and to the parameters values that have been selected during the previous IS optimization.
This also means, for example, that if during the overlap periods a new open signal is generated by the new set of optimized parameter, the trade will only be considered if the number of open trades is less than the maximum number of allowed positions.

1 Like

IIS periods are overlapping, you can't keep position open because in next period there is simply no guarantee of closing that position at all and you would end up with orphaned positions.

What you can do is to write your formula PROPERLY, i.e. using STATE form, not IMPULSE form, so if signal is still valid in next IIS window, the position will be re-opened.

State form means that Buy signal is kept at "true" longer than just one bar.

Buy = Close > MA( Close, 10 ); // this is STATE FORM - use this

as opposed to IMPULSE FORM:

Buy = Cross( Close, MA( Close, 10 )); // IMPULSE form 

You can convert between state and impulse forms using ExRem() and Flip() functions.

2 Likes

Thank you Tomasz, I really appreciate this hint. I'll work on it.

"importing"/getting data from other platforms databases - MC has its own db, while TS can be hooked into to download data.

I am not sure what the suggestion is? AmiBroker can't read proprietary format data because proprietary file format is secret.

As for open formats like CSV - it reads them already.

2 Likes

a couple of ideas:

A) I find it useful to have floating windows for the formulas in the formula editor. Is it possibile to add this feature?

B) Another one for the formula editor: when debugging I use the watch tool a lot and I would find it useful to have the possibility to export matrices or arrays as csv or excel for better analysis.

Yeah ... I get your point. Still, others are doing it:

  1. JigSaw is neatly "borrowing" NinjaTrader features (runs on Level 1/2 off-line / manually downloaded data, just as a "demo" / testing setup)
  2. Both Ninja and Multicharts can "hook" into Tradestation's data feed, etc. ...

More often than not, these proprietary formats are really nothing more than text/csv slightly formatted files anyone can work with.
thanks

Hello, how are you?
As a newbie, I can't contribute much here, but since Dr. Tomasz allows us to, I'll make my wish list:

  1. First, I would like to congratulate Dr. Tomasz and his entire team for the creation, maintenance and upcoming 30th anniversary of this wonderful tool and everything that surrounds it.

  2. Secondly, a request that is perhaps a bit "shameless" since, as much as I've searched... I can't find much, and perhaps that's how it's intended.
    I would love to know/learn more about Dr. Tomasz and his team. Who are they, how many are there, where do they work, what is the Amibroker headquarters like...
    I've read that in 2006 a conference was held in the USA. I would love for the 30th Anniversary to be held at least something visual, a video report perhaps? Although if you want to do something in person in Barcelona, ​​Spain... I'd be delighted to attend!!

  3. Although we already have a lot of materials (user guide, Knowledge Base, AFL Reference, forum...) to learn AFL, I wish we could create something like a custom GPT to help AFL newbies.

  4. I used to use the (Dynamic Volume Profile) tool/indicator a lot. Although I have seen some AFL that try to simulate it, there is nothing like it. If it could be created as a more standard drawing tool (like a rectangle/line...) it would be great. image attached.

  5. I would like to be able to customize Crosshair to my liking

  6. Another thing that has also been asked here and has been answered that it is better not to do it in order not to customize, I would like to have an interface for trading more in the style of e.g. Interactive Broker. Image attached.

  7. And finally, and I know this is a somewhat crazy request... it would be great if Amibroker was also a broker and a data provider.

Many thanks for everything.

3 Likes

Hi,

A small feature I would find very useful is to be able, via code, to confirm that the backfilling is done. I have several codes that I should run only when the backfilling is done and I have tried lots of different ways to identify when the backfilling is done, but no method seems to work 100%.

So something like Status("backfill") would be really nice!

Thanks and Regards,

Jorgen
Singapore

Amibroker is very good at filtering and explorer to select stocks according a technical indicator criteria and will appear in the form of a list table.

My request is can you make the display the results be made into a multichart display as well ? so that we can visually see it in the form of a multichart as per technical indicator criteria we have made it instead of we have to open one by one chart.

Thanks

When you have hundreds of symbols to delete we need a Yes to All button to hide future popups and have the cleanup be done automatically:

open all the charts you need,
then arrange using window > tile horizontal (i prefer this over vertical)
you can use different timeframe in each. (even lock interval if required)
Make sure not to use Symbol lock for these charts
{4F79EA68-7F8B-4DB1-9427-A08866D8E174}

Then use the symbol link to link all the different charts with same colour.
{959AFCB7-040A-4AB1-9874-DB3D3920F81F}

Once you run analysis/exploration, as you scroll through each row, you will see all the different charts align with this symbol
You can even save this whole workspace as a new layout, so next time one click loads it.