Next big release (AmiBroker 7) wish list

You can do this already - snap to Open and Close by holding down "O" and "C" keyboard key while you drawing.

1 Like

Nice suggestions please keep them coming.

2 Likes

Tomasz, thank you for your work. My wishes number 1.

  1. Sector, Industry.

    • The maximum number of Industry is 256. This is not enough. I download Sector and Industry from www.zacks.com. They have approximately 254 industries. If you add ETF classification (for example, Investment Category), then it is missing. I suggest setting the number of Sector and Industry in Preferences or fixed at 1024.
    • The Industry field is short. Some of the names from Zacks do not fit and are cut off. For ex-ample, ticket AAON. Industry title "Building Products - Air Conditioner and Heating".
    • In AmiBroker, the name Industry can belong to only one Sector. In the Nasdaq classification (https://www.nasdaq.com/market-activity/stocks/screener), different Sectors can have the same name Industry. These are different Industries, although they have the same names. Example: AACG, Real Estate, Other Consumer Services and ABLV, Consumer Discretionary, Other Consumer Services. The name "Other Consumer Services" is the same. Such a classification cannot be uploaded correctly to AmiBroker. I propose to make a Sector-Industry link. First, Sector is selected in Information, then Industry. Functionality Already available
    • I use the Sector, Industry classifications from Zacks and Yahoo. It is different. I propose to add a second option Sector, Industry – Sector2, Industry2. In Preferences add on/off it.
  2. GICS, ICB. I don't use the classifications. They get in the way before my eyes. I suggest making it possible to disable them in Preferences.

  3. Groups. One ticker can only belong to one group. I often need to indicate that one ticker belongs to several groups. I use Watchlist for other purposes. I propose that one ticker could be included in several groups. Or make Group2 for this (you can come up with another name). Groups are meant to be mutually exclusive.

  4. “Colored flag”.
    4.1. Add a “Colored Flag” column to the Symbols window. Make the column first. This is an additional classification to Watchlist.
    4.2. In the Symbols window, make a Flags folder according to the colors of the flags (where All, Markets, Groups, ...).
    4.3. Make 7-10 colors. In Preferences, select the color.
    4.4. Make it possible to work with flags through AFL. Create the functions SymbolFlagSet(), SymbolFlagGet(), SymbolFlagDel().

  5. Symbol information.
    5.1. Add user groups and fields. Configure in Preferences. Make it possible to add new fields to existing groups.
    5.2. Data read and write via AFL functions.
    5.3. Financials. Add a Date field. Date is the date the data was downloaded. Add it via AmiQuote. Otherwise, it’s not clear when the data was downloaded?

  6. Neural Network indicators.
    6.1. Wealth-Lab made “Neural Network indicators in Wealth-Lab using drag and drop”. Please think about a similar solution for AmiBroker.
    6.2. NeuroLab Build 11 - WealthLab

  7. Dynamic symbols
    7.1. Make dynamic symbols – arithmetic operations between tickers (/, *, -, +) and 1/Ticker. For example, QQQ/SPY. The user sets FullName himself. Nowadays I make such symbols through composites. This is easily doable without composites now, see AmiBroker Knowledge Base » How to chart spreads?

  8. Windows Symbols, Layouts, Layers, Charts, ... - are on the left. In Preferences, make a selection so that you can move them to the right. It is more comfortable. When I'm scrolling through a lot of tickers and looking at the price chart for the last day, I look from right to left to see the ticker name. If the windows are on the right, then there is less eye movement. Now I graphically print the ticker name on the right, but this is not always convenient. Interface is FULLY customizable already User-interface customization

  9. Windows Parameters.
    9.1. Add a Refresh (Reload) button – reload the data. For example, I select a value in the first ParamList(). Depending on the choice made in the second ParamList() there are different options for choosing values. Already available: existing "Reset All" button does this.
    9.2. Make the option to dock the Parameters window on the left, where the Symbols, Layouts, Layers, Charts, ... windows are located. This way it will interfere less. I change the parameters and watch how the indicator changes.

  10. Explore. Excel has a function to freeze the first columns on the left. I fix the columns. Then I scroll through other columns, while the fixed columns remain in place. Also done in Explore via AFL. I fix the Symbol, FullName, ... columns and they are in place. Now there is an inconvenience. If there are many columns, then when scrolling through them it is not clear what Ticker is?

  11. Explore. If two different AFL scripts are running in Explore, but they have the same names in Param(), ParamList(), ..., then changes in the Parameters window in one script lead to changes in the other. Make script execution isolation in Explore. Isolate the parameters of the same script running in different tabs so that they can be executed in parallel with different parameters.

  12. Interface settings. Custom interface settings are saved in the registry and in the file Broker.exe-CommandBars51. For convenience, make the following commands in the Menu: “Export settings to a file” and “Import settings from a file”. Export all user settings.

  13. Optional parameters in user-defined functions, as is done in the built-in AFL functions. Example, function MyFun(a, b, c = 3, d = 4). Make it so that the function can be called as MyFun(a, b).

  14. Dark mode. Make the Symbols, Charts, Notepad, Log window, ... Ideally make the entire interface dark: AmiBroker, AmiQuote, AFL Formula Editor, Help. Already available - Dark mode for all listviews can be turned on via Tools->Customize-> "Appearance" tab.

  15. Python plugin.
    15.1. I did testing. Similar code in JavaScript runs faster than in Python. If possible, speed up work with Python. Python has a lot of ready-made functions, so its quick integration is very important.
    15.2. The errors produced by the Python plugin are not always clear.
    Already available - AmiPy plug-in - Python integration

  16. Add buttons for time frames 1, 5, 15, 30 minutes, 4 hours. Already available - you can have YOUR buttons for ANY interval!

  17. Inserting graphic lines, shapes and text onto a chart.
    17.1. By default, everything is inserted into zOrder = 0. In Preferences, make the selection zOrder by default. Too many options. zOrder = 0 as default is good as any other number.
    17.2. Add a “Hide all graphic shapes” button. With one click of a button, you can temporarily hide all lines and shapes.
    17.3. Add buttons “Hide layer zOrder 1”, “Hide layer zOrder 2”, ... With one click we temporarily hide all the shapes on the selected layer zOrder.
    17.4. “Hide all graphic shapes” “Hide layer zOrder 1”, “Hide layer zOrder 2” can also be implemented via AFL.

  18. Add the “Elliott Waves” menu
    18.1. The waves are numbered automatically. Select the wave level to allow nested waves to be drawn. Each wave level has its own numbering style.
    18.2. Through AFL, receive all the information on each wave: level, number, length, duration.

  19. Backtest. The error “Error 704. In Rotational trading you MUST NOT use buy/sell/short/cover signals” gets in the way. Example. I wrote a script in which I select the backtest mode through ParamList(). If I chose symbol rotation, then in the AFL script buy/sell/short/cover are hidden under if() and are not executed. But AFL Editor writes an error. I suggest either checking that buy/sell/short/cover are hidden under if(), or reporting a warning instead of an error.

  20. AmiQuote. User-definable data source. Add creation of a URL request via AFL, and processing of the received response via AFL. For example, the settings indicate the path and name of the AFL file, which contains the name of the function that needs to be called. I know AFL better than JavaScript, I can do more with it, they can work with Python from it. Already available

3 Likes

Functionality exists. You can have that way right now. Industry names do not need to be unique and you can have two or more different industries with SAME name, and they could belong to different sectors if you wish.

Also what you are suggesting is actually covered by GICS/ICB classification. Use GICS/ICB it is industry standard used by Nasdaq too. See https://www.nasdaq.com/docs/180110_ICB-Classification.doc

Watch lists are for that purpose. There is NO point in duplicating existing functionality.

Groups are meant for things that are mutually exclusive, such as "common stock", "ETF", "Index", "Bond", "Mutual Fund".
If symbol belongs to one, it cannot belong to other.

You don't need composites. This can be done on the fly

Interface is FULLY customizable already User-interface customization

Already available ! AmiQuote 4.15 has user-definable data source and response can be processed by Javascript. And Javascript in that case is better, since most web pages are Javascript based and respond with JSON (Javascript Object Notation). AFL does NOT belong to AmiQuote.

Already available - Dark mode for all listviews can be turned on via Tools->Customize-> "Appearance" tab.

Already available - AmiPy plug-in - Python integration

Already available - you can have YOUR buttons for ANY interval!

1 Like
  1. something similar to ParamList, but with dropdown ComboboxChecklist, where under one Parameter name you can choose few binary yes/no for a few suboptions
    it would be useful to unclutter Parameters in larger AFL scripts

2a) sub 1-hour TimeShift in IntradaySettings
there are some countries that have timezones that are not shifted by round hours

2b) another option would be automatically defined conversion [From timezone]-[To timezone]
e.g. America/Chicago-Europe/Paris

this would make it easy to have data from one exchange automatically displayed in a local user timezone,
TimeShift doesn't work here because DST changes are out of sync around the world, so user needs to keep track of it

  • An API built for Schwab/ThinkOrSwim They are the US largest US publicly traded brokerage firm with 9.21 trillion in assets.

  • Better undock-able floating windows with maximize/minimize and screen dock-able screen selections or OS awareness when dragged. Ability to save multi-window work-spaces size and positions for multi monitor setups.

  • Built in option to show Dividends/splits. rollover(futures), earning or news item icons at bottom of chart with mouse over info

  • When resetting Parameters in for chart have the parameters re-populate instead of blank and have to close and reopen.

  • Relative performance charting between two symbol by typing into symbol drop-down box INTC / AMD and also INTC - AMD etc.

  • Better trade markers that includes a side of price bar horizontal triangle at the execution price. Possible with user defined hover over trade information lines as defined by user in AFL, signal name, risk, stop, order type, order submit time, fill time or whatever....etc. AKA whatever info user wants to see if he hovers over or right clicks?

6 Likes

Great idea Tomasz!

I would like to see the following:

  • For charts linked by time interval, synchronise all linked charts such that when one of the charts is zoomed in/out or scrolled along the time axis, all linked charts are also zoomed or scrolled
2 Likes

In the Schedule batch task function:
a] Can we have Repeat frequency in Minutes as well (as against only hours)?

b] Can we have a combination of any two 'Repeat' options at a time, i.e.
1] Run only once and only on Tuesdays or
2] Repeat Hourly (or in multiples of minutes if that suggestion is implemented) and on Monday's Wednesdays and Fridays etc. between xx:xx:xx am and yy:yy:yy pm.

This way we can skip repeating the same batch multiple times with different "Next Run" time selections.

c] While inserting actions to edit batch step, we are able to copy paste a couple of steps at a time. This way we don't have to repeatedly insert certain often used actions like scan, explore etc. and only have to edit specific actions like export to file (where we edit the parameter section alone) or Load Project (again we just need to edit the parameter section alone).

Similarly, would it be possible to copy paste multiple batches in the scheduler?
That way, only few options in the 'Start batch' or 'Repeat' section will have to be modified.

And finally
d] Can we have the option to skip (the next 'x' runs) or pause (from yy:yy:yy till zz:zz:zz) specific batches in the scheduler?

Appreciate your gesture in asking us to share our ideas and wishes.
As I am not from the programing background, my ideas are quite literally just my 'wishes'. I have no idea how easy or difficult or feasible it would be. Nevertheless, thought of sharing what I thought would make some aspects of the operation more convenient.

Thank You.

Two of my requests are shared by @alligator & by @rakesh

  1. Global AFL functions and procedures, precompiled and available for each script, as if they were predefined/native
    This is something I have been wishing for at least 10 ten years.
  2. Somewhere we need option to make the parameter window sticky on chart and concise because sometimes we need to access parameter window frequently and also don't want to give it much space
    dockable param window similar to interpretation window
  3. I use open interest field to store outstanding shares & aux1 & aux2 for other information. I occasionally have re-download historical prices & I don't want these fields to be overwritten.
1 Like

Great idea Tomasz,
After so many years I have only one request. Please increase the number of parameters per indicator. Currently, it seems that the maximum number is 107. If number of parameters is grater than 107 and I drug and drop another indicator on the same pane AB crushes. If I am within limit everything is OK. If I want to ad a new parameter to the indicator I have to give up an existing one.

This one is too big , but as wishful dream:
Pull data from multiple databases (futures, indexes,....,etc) usually from different vendors to the same chart.

Thank you

2 Likes

Hi

my wish : export programmaticly to PNG/JPG file the graphic sheets generate by the XYChartSetAxis and XYChartAddPoint functions in the Exploration Tabs like it's possible for Charts windows

Thanks a lot

I am not aware of any hard coded limitations, but I will check this. Nobody reported problem with number of parameters before.

UPDATE:
I checked and there was indeed limit of 100 parameters per section.
If you need to use more you have to use separate sections of not more than 100 parameters per section.

But since you asked, be informed that this limit is now increased ten fold, to 1000 parameters per section and this change will be available very soon in AmiBroker 6.90.2

New GetOption() fields similar to FilterIncludeXxx, FilterExcludeXxx to acquire via code the list of all watchlists/markets/etc. currently included in the Analysis filter:

image

It may return a comma or | separated list of names (or an empty string for no selection).

1 Like
  • More items for:
    Recent Databases (currently 16 ?)
    Recent Files (currently 9 ?)
    Recent Formulas (currently 16 ?)
1 Like

MRU (Most Recently Used) file list is technically limited by Microsoft Foundation Classes library to 16 items and that is as much as you can have and you have it now already.

No sure but the MRU, sorting and "stickiness" might be affected by full file paths, like when database is on a different drive? Maybe remove path from DB name in there, if for anything else but cleanliness? Dunno.

It wouldn't be bad if the sections of the parameter window maintained the expanded/collapsed state. Every time you close the window with OK and reopen it later (in the same session/formula) all the sections are once again in the expanded state.
When working with many sections and parameters, narrowing the focus to just a few expanded sections (collapsing all the others) makes the operations easier.

7 Likes

I completely agree @beppe, one of my pet peeves for as long as I remember.

1 Like

Tomasz, my wishes #2.

  1. ParamList().
  • Add “Separator” parameter. I use Separator "|" in all functions. Because of the absence of this ParamList() parameter, I cannot use a comma in sentences. I have to replace the comma with a semicolon. If Separator is specified explicitly, it is the only thing that works and nothing else.
  • Add a “Mode” parameter. If 0, then string is returned (as it is now). If 1, the number of the selected position is returned.
  1. Composites. When calculating a composite, all bars are counted each time. For bonds, I calculate YTD and counting all bars each time is very long and unnecessary. Add the option "Count only new bars". Make the option common for all composites and the possibility to set it for each composite separately via AFL.

  2. Need a function that returns the names of the current Layout, Window, Sheet and the Chart Pan number on the Sheet (from top to bottom 1, 2, 3, ...). I have written my AFL function that returns Sheet, Chart Pan number on Sheet. If I add multiple Windows, the structure of the Default.awl file is complicated to parse. So please make an internal function. Example. I have an AFL file that has all my indicators in it. I paste this code into many Sheets via "Insert Linked". By getting the Sheet name and the Chart Pan number on the Sheet, the script automatically selects the desired default indicator.

  3. GraphXSpace.

  • Make it separate for the top and bottom of the Chart. Title and buttons are displayed at the top. That's why you need an indentation at the top. There is nothing at the bottom, so no indentation is needed there. Or Volume is inserted at the bottom and therefore an indent is needed at the bottom, but there is nothing at the top and no indent is needed.
  • GraphXSpace is set as a percentage. This is not always convenient. Title and buttons have a fixed height in pixels. When the indentation is set as a percentage and the Chart Pan height changes, it changes too, which is not necessary.
  • GraphXSpace should be renamed to GraphYSpace because the indentation is set on the Y axis, not X.
  1. Histogram. Histogram is bound to level 0. It cannot be raised or lowered along the Y axis, which is inconvenient. I ask you to add the ability to set the vertical offset. Then it will be possible to place several Histograms on one Chart Pan. If a chart has a middle line that is not equal to 0, then it will also be possible to place a Histogram with it.

  2. SetForeign() and Foreign().

  • To plot Ratio (QQQ/SPY), other indicators and do calculations based on OHLCV, I now assign a new value to each OHLCV field. For example, C = Foreign("QQQ", "C") / Foreign("SPY", "C"). But I can't change the values that Name() and FullName() return. They end up showing wrong information. Please add the ability to change them so that it is clear whose OHLCV values are set at the moment?
  • Add the ability to switch to relationships between symbols. All arithmetic operations (/, *, -, +, 1/Ticker). Add an additional argument – FullName. So that I can specify my own name for a given symbols relationship. The Name() and FullName() functions should return everything correctly. Today I have to call SetForeign() twice to get the OHLCV of the relationship between two symbols, which slows down the code. At the same time Name() and FullName() show the data of the last symbol, but not the relations between them.
    What I need is exactly a complete switch of OHLCV, Name(), FullName() and other parameters to the relationship between symbols (/, *, -, +, 1/Ticker). After switching, I not only plot but also do the calculation of various indicators based on OHLCV.
  • SetForeign() and RestorePriceArrays() - make it possible to make them nested, so that the sequence of ticker changes is remembered and RestorePriceArrays() goes through the list of tickers in reverse order. There should be support for relations between symbols (/, *, -, +, 1/Ticker). Add “Mode” parameter to RestorePriceArrays(): 0 - restore the current ticker (as it is implemented now), 1 - restore the previous ticker from the switching list. Example. SetForeign("AAPL") ... SetForeign("AAPL/QQQ") ... SetForeign("QQQ/SPY") ... RestorePriceArrays(1) - after this sequence of calls the "AAPL/QQQ" ticker will be set, not the current one.
  1. Chart Sheet and multiple Window.
  • Chart Sheet can only insert Chart Pan horizontally. Please make it possible to insert horizontally and vertically. I want to make 2x2 or 2x3 chart Panes on one Sheet (one ticker is current, I set all the others via SetForeign). The vertical line of the mouse cross should be synchronised in all Chart Panes. It will be very convenient to quickly compare price behaviour of the current symbol with market indexes. Now I have 4 Chart Pan horizontally inserted, but in this case the height of each Chart is very small, the whole chart is highly compressed along the Y axis, and everything is poorly visible. Making 4 Windows for this purpose is inconvenient. I have 16 pieces of Sheet, and 2x3 is needed only one of them.
  • Multiple Windows. When you insert 4 Windows, each window has a "bar" at the top with the name of the ticker and to the right "minimise", "expand", "close" buttons. This bar is very tall and takes up a lot of space, reducing the space for the chart. I propose to make it possible to hide it.
  1. The number of threads is changed through “#pragma maxthreads 1”. But I can't move this operator under if(). If I download data from the Internet, the number of threads depends on the site. Some sites allow downloading in multithreaded mode, and some do not. Please implement the ability to set the number of threads in AFL via if() and switch().

  2. OLE.

  • OLE (CreateObject) does not support the “Country” field. If there are symbols in the database, it is impossible to set “Country” through AFL according to the given conditions. Please add “Country”.
  • Importing quotes, other fields, creating and deleting tickers through OLE is inconvenient and takes a long time. Is it possible to make an AFL-function?
  • Problem. There was an error in my OLE script and the script added 3 symbols with empty Ticker (Name) and FullName to the database. OLE reported the error, but the empty symbols were created. They were not deleted via Delete: delete, the symbol disappeared, exit AmiBroker, start it again, the empty symbols remained. The database cleanup script found them, but could not delete them. When I changed the ticker from empty to not empty, AmiBroker crashed. I could not remove empty symbols in any way. I had to restore my database from backup. Please prohibit creating symbols with empty Ticker in the database via OLE or any other way.
  1. Projects and Batch.
  • Problem with Watchlists in Filter settings in a project. I created a project, set Filter mode and configured Watchlists. I made a Batch. Everything works. Periodically in Workspace Symbols I add new Watchlists to the list, some of them I delete. The settings of my Watchlists in Filter, which I have not touched, are lost in the project. Batch stops working. Perhaps the problem is related to the fact that the project remembers their numbers rather than the names of the installed Watchlists. Make binding to Watchlist names. Perhaps the same problem exists with Market, Group, Sector, Industry.
  • When creating a Batch, the project does not save settings from Parameters. I have found a solution to this problem. But I suggest to make saving of parameters in the project from Parameters. Or make such option (Checkbox) in Analyses setting.
  • In Batch there are commands: "Set log file name", "Write text to log", but there is no command to delete log file. Now I solve this problem through "Execute and wait". I suggest adding the command "Delete log file", it is easier and clearer to understand the code. I use the log file not for logs, but for other purposes. That's why I suggest replacing the names with more general ones: "Set text file name", "Write text to file", "Delete text file".
  • Batch. If I run Batch, it starts a project and after the project all Analysis settings remain changed from it. It changes the "Pad and align to reference symbol" settings, among others. If I open Analysis after that and run another script, then the "Pad and align to reference symbol" settings are off and the script is executed incorrectly. I have to manually restore everything every time. I suggest that after executing a Batch or any saved project, restore the Analysis settings to what they were before they were run.
  • There is no list of created Batch and projects to run them quickly. I don't want to create a Tool for them and call them via buttons on the menu bar. I have to open files via Open all the time. I propose to make it possible to add any project or any Batch in Scheduler with manual start option. Make it possible to quickly change a project or Batch from manual to "scheduled" and vice versa. Add dividers to group projects and Batch in a visually convenient way. Add a Comments column to Scheduler. The name "Scheduler" can be renamed to another name. Thus, all projects and Batch will be collected in one place.
  • In Batch add possibility to call other Batch for execution. Example. I have 5 Batch, they perform different actions. All of them cannot be run simultaneously, they must be executed sequentially. Now I have to start them sequentially by hand via buttons.
  • For Batch I can create Tool and button as there is a command "#runbatch". For the project, I couldn't find the command. So, I can't quickly open the project through the button on the menu panel. Kindly add such a command. For example, "#runproject".

11.BeginValue() and EndValue(). Through AFL it is impossible to distinguish between two different situations: Begin range not set or set on bar 0. End range not set or set on the last bar. I suggest that if Begin range is not set, then return Null, not 0. If End range is not set, then return Null, not the number of the last bar. Or add a “Mode” parameter: 0 - behaviour as it is now, 1 - return Null. If I get Null, then further I can handle the situation myself in the code as I need.

  1. Watchlist context menu (right-click).
  • After the command "Add selected symbol(s)" add the command "Move selected symbol(s)" for move selected symbol(s) from the current Watchlist to another Watchlist. It will be more convenient to do it from the context menu than through "Organize assignments".
  • Add "Lock watchlist" command - prohibit sorting and deleting. It is necessary to avoid sorting and deleting by mistake.
  1. QuickAFL and SetBarsRequired(). SetBarsRequired() sets the absolute value of BackwardRef, which is not convenient, because it is sometimes difficult to calculate it if there are a lot of nested functions in the code that look at past bars. That's why I use the “QuickAFL= Ref(1, - Period)” dummy operator instead of SetBarsRequired () where I have my for() loops on bars. Please add a “Mode” parameter to SetBarsRequired(): 0 - absolute values of BackwardRef and ForwardRef (as it is implemented now), 1 - relative values. For example, if the script has built-in AFL functions (EMA(), Ref(), ...) I don't specify anything for them. If there are my functions with for() loops on bars, I specify SetBarsRequired(..., mode = 1) for each function. Accordingly, QuickAFL itself will add everything up and get the total BackwardRef value.

  2. AFL Formula Editor.

  • Selecting a variable. If you double-click the name of a variable, it is highlighted in the background and all its other inclusions in the code. If there is a function call and the arguments include this variable, it is highlighted. But if this variable is specified as a reference (i.e. with &), it is not highlighted. Please correct it. The reverse also does not work, if I highlight a variable that is with &, it is not highlighted in other places.
  • Find and Replace - save history (recent). Do like in Word - down arrow on the right and see a list of previously entered values.
  • Replace - add the option "Only in the selected".
  • If code from another file is inserted into the script above via “#include_once”, AFL Formula Editor does not show correctly the place of error in the inserted file. It shows that the error is inside the inserted file without specifying the line number where the error occurred. If you open the inserted file and it contains functions that have an error inside them, AFL Formula Editor does not see it. Thus, it is impossible to find the place of the error. I suggest that AFL Formula Editor should write line numbers in another file where it found an error. When you press "Go to error" it goes to the inserted file to the place of the error.
    If this script is run in Explore, it will report the error, but will give a link to the original file, not the file with the error. In this case "(Ln: ..., Col: ...)" is specified incorrectly. Clicking the "Details..." button does not show the location of the error. This is a big problem, as it is difficult to find the error location if the included files are large.
  • Code Check. If a script contains if() and switch(), it checks only those code branches that are executed at the given moment, not all of them. I suggest inserting the "Check all the variations" button at the bottom of the Code Check window - check all the variants of script execution, including all the functions that are called.
  • Code Check. If if() and switch() conditions depend on parameters in Parameters, then default values are taken. If this script is opened in Explore and parameters in Parameters are changed, it will take them even if the Explore window is closed. I suggest to insert a button to open Parameters window in AFL Formula Editor. Then it will be possible to open Parameters window, change parameters and see code performance with different parameters.
  • Add support for nested comments /.../. Example. I have a script with comments // and /.../. For debugging I need to comment out most of the code. I insert an external comment /.../ and solve this problem. But you can't do that now, nested comments are not supported.
  • A list of all custom functions, sorted alphabetically. In the menu there is a "Function name" list. Make it wider, because long function names do not fit in it.
  • “Code Snippets” window. Add a list of all user-defined functions, sorted alphabetically, to this window, placing it in a separate folder. Also add a folder with Bookmarks. Add the ability for Bookmarks to be named. Thus, you will be able to quickly find the desired function or bookmark by name. Change the name of the "Code Snippets" window to a more general one.
  • If there are Errors and Warnings in the script, then the "Go to error" button goes to Warnings as well. I suggest adding a "Go to warning" button if there are Warnings. That way errors can be corrected faster.
  • Errors and Warnings messages have different background colors, but they are hardly distinguishable. I suggest to make the font color of the word "Warnings" grey so that you could understand more quickly where Warnings and Errors are.
  • The "Clear error massage" command. The command clears only errors and leaves warnings that are in the way. Please change the command to clear everything. Also, it should remove the line at the top "1 error(s) and 1 warning(s) found in the formula. Go to error. Explain."
  • Split windows. If you split the window into two parts, and make one part low, the number of scroll lines at one mouse wheel movement does not change proportionally. Example. One movement of the mouse wheel scrolls 20 lines. A full window contains 57 lines and scrolling 20 lines is normal. If the height of the split window is 10 lines, then scrolling 20 lines is a lot. I suggest that for a split window one wheel movement should be no more than the number of lines that fit in the window.
2 Likes

I think that saving/restoring Parameters in .apx projects can be handy, although I guess you have to determine how to interact with the current parameters reset mechanism properly.

1 Like