amibroker

HomeDevLog

AmiBroker 6.22.0 BETA released

Stability: Rank 3 - regular BETA should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.22.0) of AmiBroker, with new x64 optimizations and preliminary native chart GUI support has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6220beta.exe
(2 255 312 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6220x64.exe
(10 643 696 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

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

Remember to BACKUP YOUR FILES FIRST !
Note that this version can only be installed onto previous full installation of version 6.20 or higher from http://www.amibroker.com/download.html

FEATURE HIGHLIGHT 6.22

This version is experimental because we are migrating 64-bit version to brand new compiler (VC++ 2017). Such migrations pretty often brings some compatibility risks therefore backup is highly recommended (although you can always go back by just installing previous version). We needed to migrate not only the program itself but many internal libraries taking care not to break backward compatibility.

Note that migration does NOT affect 32-bit version. It is still compiled with old compiler.

Why do we migrate to new compiler with 64-bit version?

  1. New compiler supports new CPU instructions (SSE3/AVX) that we can use to offer better performance
  2. According to our tests new compiler support produces faster code by itself (better optimizations, auto-vectorization, etc)
  3. New compiler is better with error checking (less bugs to slip through)
  4. We don't need to care about compatibility with pre-Vista systems in 64-bits version and all 64-bit capable CPUs are "modern" enough.

Why do we stay with old compiler in 32-bit version?

  1. New compiler does not produce code compatible with older operating systems (XP or earlier). Old compiler offers 100% compatibility with all Windows versions
  2. New compiler requires modern CPUs

Exact performance improvement is function dependent and hardware dependent. Many functions are faster by 30-50% but in some cases such as Min()/Max() functions as large as 8x speed up can be observed in 64-bit version.

FEATURE HIGHLIGHT 6.21
This version features preliminary support for native chart GUI (buttons and edits at the moment). Please be reasonable with Gui* functions and be aware of Windows limits. As all controls in Windows (buttons, edit boxes, etc) are actual Window objects they are subject to Windows limitation. And there is a limit of 10000 windows PER PROCESS. So don't try to create thousands of buttons (like a button for every bar of data) because first you will see huge performance decrease and next you will hit the limit and run into problems (crash), see https://blogs.msdn.microsoft.com/oldnewthing/20070718-00/?p=25963.

Best practice is to keep the number under 100-200. If you need more consider using low-level graphics instead.

For more details, instructions and examples how to use new features see the 6.21.0 BETA READ ME

Here is a sample formula that shows basic usage of Gui* functions:

GuiButton"Custom button"1104010030);

GuiButton"Dynamic "+Date(), 21204015030);
GuiButton"System button"33204010030);
GuiEdit5450401002031 );

GuiSetColors132colorRedcolorBlackcolorRedcolorWhitecolorBluecolorYellow
colorRedcolorBlackcolorYellow );

GuiSetColors33); // default (system) look

editText GuiGetText);

Title "Text entered: " editText "\nLast event: " GuiGetEvent0);

id GuiGetEvent0);
event GuiGetEvent0);

if( 
id == && event == GuiSetText("Button clicked",5);

CHANGES FOR VERSION 6.22.0 (as compared to 6.21.0)

  1. 64-bit: migrated all code to new compiler VC++2017 which seems to produce better code for x64 resulting in 30...50% speed improvements for many AFL functions. The only negative seems to be much bigger runtime libs
  2. 64-bit: AFL: Sum() function 2x faster
  3. 64-bit: AFL: Max() and Min() functions 8x faster
  4. 64-bit: AFL: Ref() funciton 2x faster
  5. 64-bit: AFL: MACD(), ROC(), StDev(), LinearReg() and many other functions faster by 30-50%
  6. AFL: GetExtraData does not trigger code check and profile warning about referencing future quotes if plugin implements new GetExtraDataEx function
  7. AFL: GuiEdit complained about 2nd parameter instead of 1st (being less than zero)

CHANGES FOR VERSION 6.21.0 (as compared to 6.20.1)

  1. AFL: decreased memory fragmentation when user changes type of variable from array to scalar and back thousands of times
  2. AFL: GuiButton( "Text", id, x, y, width , height , notifyflags ) - creates a button
  3. AFL: GuiEdit( id, x, y, width, height, notifyflags ); - creates an edit field
  4. AFL: GuiGetEvent( num, what = 0 )
  5. AFL: GuiGetText( id ) - get text from control
  6. AFL: GuiSetColors( idFrom, idTo, border , clrText = -1, clrBack = -1, clrBorder = -1, clrSelText = -1, clrSelBack = -1, clrSelBorder = -1, clrHoverText = -1, clrHoverBack = -1, clrHoverBorder = -1, clrDisText = -1, clrDisBack = -1, clrDisBorder = -1
  7. AFL: GuiSetText( "text", id ) - set text of the control
  8. AFL: RequestMouseMoveRefresh() - request formula execution / refresh when mouse is moved INSIDE given chart pane (so it only triggers for ONE window under the cursor)
  9. If Quote.exe is missing and AmiBroker can't do auto-update of quotes, a detailed information is displayed of where it expects Quote.exe file to be present
  10. Plugin loading changed: first AmiBroker attempts to load plugins for "Plugins" subfolder from where Broker.EXE file is located (new behavior) and if subfolder is NOT found, it then defaults to old behavior (using "Plugins" subfolder under current working

KNOWN ISSUES:

  1. None

For more details, instructions and examples how to use new features see the 6.22.0 BETA READ ME

AmiBroker 6.21.0 BETA released

Stability: Rank 3 - regular BETA should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.21.0) of AmiBroker, with preliminary native chart GUI support has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6210beta.exe
(2 254 240 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6210x64.exe
(10 590 392 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

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

Remember to BACKUP YOUR FILES FIRST !
Note that this version can only be installed onto previous full installation of version 6.20 or higher from http://www.amibroker.com/download.html

FEATURE HIGHLIGHT
This version features preliminary support for native chart GUI (buttons and edits at the moment). Please be reasonable with Gui* functions and be aware of Windows limits. As all controls in Windows (buttons, edit boxes, etc) are actual Window objects they are subject to Windows limitation. And there is a limit of 10000 windows PER PROCESS. So don't try to create thousands of buttons (like a button for every bar of data) because first you will see huge performance decrease and next you will hit the limit and run into problems (crash), see https://blogs.msdn.microsoft.com/oldnewthing/20070718-00/?p=25963.

Best practice is to keep the number under 100-200. If you need more consider using low-level graphics instead.

For more details, instructions and examples how to use new features see the 6.21.0 BETA READ ME

Here is a sample formula that shows basic usage of Gui* functions:

GuiButton"Custom button"1104010030);

GuiButton"Dynamic "+Date(), 21204015030);
GuiButton"System button"33204010030);
GuiEdit5450401002031 );

GuiSetColors132colorRedcolorBlackcolorRedcolorWhitecolorBluecolorYellow
colorRedcolorBlackcolorYellow );

GuiSetColors33); // default (system) look

editText GuiGetText);

Title "Text entered: " editText "\nLast event: " GuiGetEvent0);

id GuiGetEvent0);
event GuiGetEvent0);

if( 
id == && event == GuiSetText("Button clicked",5);

CHANGES FOR VERSION 6.21.0 (as compared to 6.20.1)

  1. AFL: decreased memory fragmentation when user changes type of variable from array to scalar and back thousands of times
  2. AFL: GuiButton( "Text", id, x, y, width , height , notifyflags ) - creates a button
  3. AFL: GuiEdit( id, x, y, width, height, notifyflags ); - creates an edit field
  4. AFL: GuiGetEvent( num, what = 0 )
  5. AFL: GuiGetText( id ) - get text from control
  6. AFL: GuiSetColors( idFrom, idTo, border , clrText = -1, clrBack = -1, clrBorder = -1, clrSelText = -1, clrSelBack = -1, clrSelBorder = -1, clrHoverText = -1, clrHoverBack = -1, clrHoverBorder = -1, clrDisText = -1, clrDisBack = -1, clrDisBorder = -1
  7. AFL: GuiSetText( "text", id ) - set text of the control
  8. AFL: RequestMouseMoveRefresh() - request formula execution / refresh when mouse is moved INSIDE given chart pane (so it only triggers for ONE window under the cursor)
  9. If Quote.exe is missing and AmiBroker can't do auto-update of quotes, a detailed information is displayed of where it expects Quote.exe file to be present
  10. Plugin loading changed: first AmiBroker attempts to load plugins for "Plugins" subfolder from where Broker.EXE file is located (new behavior) and if subfolder is NOT found, it then defaults to old behavior (using "Plugins" subfolder under current working

KNOWN ISSUES:

  1. None

For more details, instructions and examples how to use new features see the 6.21.0 BETA READ ME

AmiBroker 6.20.1 becomes official

AmiBroker 6.20.1 becomes official release version today. No issues were found in release candidate released last week here: http://www.amibroker.com/devlog/2017/02/17/amibroker-6-20-1-release-candidate/ so it becomes official, stable release.

DOWNLOAD LINKS

32-bit version:
http://www.amibroker.com/members/bin/AmiBroker6201.exe
(9 905 152 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6201x64.exe
(10 591 808 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

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

AmiBroker 6.20.1 Release Candidate

Stability: Rank 5 - stable, should work fine in most environments

UPDATE Feb 25, 2017: 6.20.1 is now considered as official release version.

A new release candidate version (6.20.1) of AmiBroker, complete with full setup, data files and updated documentation has just been released. This version is going to become official after one week if no important issues surface.

32-bit version:
http://www.amibroker.com/members/bin/AmiBroker6201.exe
(9 905 152 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6201x64.exe
(10 591 808 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

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

NOTE: This version works both as fresh first-time install and as in-place upgrade. Previous installation (if any) is detected and setup switches into ‘upgrade’ mode. Don’t worry, your charts, formulas, etc won’t be affected by the upgrade.

CHANGES FOR VERSION 6.20.1 (as compared to 6.20.0)

  1. Batch: DataImportASCII command allows to automate imports via batch. The parameter is file name to be imported. The importer uses file extension to determine format file used, so if you are importing File.aqh then aqh.format definition file will be used
  2. Default for time compression timestamping changed to recommended value, i.e. 'start time of interval'
  3. Plugin API: added GetExtraDataEx to support pad&align (see Release Notes)

CHANGES FOR VERSION 6.20.0 (as compared to 6.19.0)

  1. AFL: new function GetExtraDataForeign - the same as GetExtraData but works with user-specified ticker instead of current one
  2. AFL: ShellExecute supports "runbatch" command. After running batch batch and analysis windows that were opened by batch are automatically closed
  3. Batch: new command DataPluginCmd - calls data plugin DataPluginCmd function (if it is exported from your data DLL) - allows custom actions to be peformed by the plugin from the batch (like maintenance)
  4. Batch: new command ExecuteAndWait - allows to execute external program and wait for its completion (allows among other things launching AmiQuote download and waiting until it is complete)
  5. New Analysis: changed forced refresh frequency of result list to every 250ms when analysis is in progress (since 6.16 when messaging system has changed it was refreshed "on idle")
  6. New Analysis: when user specified symbol with NO quotes at all as a reference symbol AND used "last N days" range AND used Exploration then it would lead to crash. Protection implemented against this scenario.
  7. OLE: AnalysisDoc.Export supports now extra (optional) parameter WhatToExport and it allows now to export not only result list but also walkforward tab Analysis.Export("file", 1 );
  8. UI: In 64 bit version File Dialog was not resizable due to differences in Microsoft runtime. Now it is made resizable.

CHANGES FOR VERSION 6.19.0 (as compared to 6.18.0)

  1. Batch Scheduler implemented (Tools->Scheduler) - integrated tool to schedule automated runs of your batches
  2. Batch: ExportWalkForward command added
  3. Batch: Pause command added
  4. AFL: GetOption supports all fields available in SetOption call
  5. AFL: new function: AddMultiTextColumn - adds a text column to the exploration where text displayed is choosen based on array value
  6. AFL: new function: MxSum - calculates sum of all elements of matrix (grand sum)
  7. AFL: StDev added support for variable period (faster and more accurate than formula-based solutions)
  8. AFL: Title now accepts {{VOLUME}} and {{FULLNAME}} special tokens that get replaced by current volume and full name of the symbol. Example Title = "{{VOLUME}}";
  9. AFL: updated text of Error 62 message to list newly supported sequence %s
  10. AFL: variable period Sum() now returns NULL if range is greater than current bar index (previously returned partial sum)
  11. Analysis: WalkForward settings including IS/OS dates are no longer global, they are now per-project and saved in APX file
  12. ASCII importer: added $RAWCLOSE2AUX1 and $RAWCLOSE2AUX2 commands that allow to put raw close into aux1/aux2 fields when using ADJCLOSE in 'close' field
  13. Changed wording to "Free upgrade period expired." (from "License expired")
  14. Date/Time fields in XML files now use ISO format always (not regional format), for better file exchangability accross regions
  15. Debugger: Watch window: added ability to display values of static variables in watch window - just append '$' (dollar) prefix before static variable name
  16. Default report chart dimensions (new instals) increased to 800x480px
  17. On HiDPI (>=150dpi) screens icons in menus were small, now they are bigger
  18. On HiDPI screens XYCharts and MonteCarlo charts could have axis labels partially truncated depending on choosen font size. Now it is fixed.
  19. UI: Performance Monitor shows now the number of static variables used and the amount of memory consumed by them (Tools->Performance Monitor)
  20. UI: Plugin data access time is now displayed with microsecond precision
  21. UI: Symbol and interval combo boxes in toolbar are made larger on HiDPI screens

CHANGES FOR VERSION 6.18.0 (as compared to 6.17.0)

  1. AFL: GetFnData/GetFnDataForeign added support for "PointValue" and "FullName" fields
  2. Batch processor: In 6.17.0 Export to file command was executed properly but never marked as completed. Fixed.
  3. Batch window checks if there is any other batch running and refuses to start when the other batch has not finished.
  4. Batch: Added command line parameter to exit AmiBroker after running batch file (/exit)
  5. Batch: Added command line parameter to run batch files: /runbatch "full path to batch file
  6. Batch: Load Database "path to workspace/database" - warning this function may be RISKY because it may interfere with other running operations !!
  7. Batch: new command: Save Database
  8. Batch: new command: Set log filename "filename"
  9. Batch: new command: Write text to log "text"
  10. OLE: added new method to AnalysisDoc object: Abort() - will abort any running Analysis scan/exploration/backtest
  11. UI: File->Database Setings displayed underestimated memory usage per symbol (32 bytes per quote instead of 40). Corrected.

CHANGES FOR VERSION 6.17.0 (as compared to 6.16.0)

  1. New Batch processor - allows to define sequences of scans/explorations/backtests/optimizations using different project files that are then run automatically. Detailed instructions on how to use Batch window are here http://www.amibroker.com/guide/h_batch.html
  2. AFL: Changed default number formatting string from "%g" to "%.7g" (so 7 significant digits are now displayed instead of 6)
  3. AFL: new function GetFnDataForeign( "field", "symbol" ) - the same as GetFnData but retrieves non-current symbol's data
  4. AFL: new function InternetClose( handle )
  5. AFL: new function InternetOpenURL( "url" )
  6. AFL: new function InternetReadString( handle ) - read a string (line) from internet resource
  7. AFL: printf/StrFormat/TRACEF support now "%s" (string specifier) and accept string arguments passed and made faster too
  8. Data: Gics.txt classification updated (thanks to PremiumData)
  9. OLE Automation: individual backtest is now supported via OLE automation
  10. OLE: Interval property of Document object is now writable so you can set chart interval from OLE
  11. Startup is made faster
  12. UI: AFL Editor MDI UI did not get immediate refresh after file name change when main window was in modal state due to the way how MFC works. Fixed.
  13. UI: File->Database Settings, default maximum "number of bars" increased to 1 million
  14. UI: New Analysis Settings submenu is now duplicated in main window Analysis->Options menu for easier access for beginners
  15. Watch window: added support for modulo (%) operator in watches

CHANGES FOR VERSION 6.16.0 (as compared to 6.15.0)

  1. New Analysis: implemented entirely new inter-thread communication method that does not strain main thread message queue. This gives tremendous improvement in responsivity of UI when Analysis is running
  2. New Analysis: removed forced message pumping when AFL finished as it was causing issues with proper MDI tab refreshes in Windows 10 while Analysis was running
  3. New Analysis: UI: added an option to keep using existing AFL file on opening APX project instead of asking the user what to do when differences are found between AFL file and content of APX project.
  4. AFL: changed the way how custom-backtest reports "stocknum". Previously Status("stocknum") was equal to zero on custom backtest phase and this may have caused parts that use if(Status("stocknum")==0) to be excecuted during custom backtest phase. Now custom backtest reports stocknum equal -1.
  5. AFL: DateTimeConvert supports now more formats, format = 6 - day, 7 - month, 8 - year, 9 - day of week, 10 - day of year, 11 - quarter (1..4)
  6. Charts: as apparently single pixel geometric pens are 8 times slower than DC pen, the optimization has been implemented that uses DC single pixel pen instead of geometric pen when bar width is 1, giving 8x faster 1-pixel bar charts
  7. Since 6.15 when $AUTOADD was set to 0 (zero), then symbols not existing in the database but present in the imported file were not logged into import.log as earlier. Fixed.
  8. UI: when AM/PM (12 hour format) was used in list views 12:00AM was interpreted as 12:00 (noon), instead of 00:00 (midnight). Fixed.
  9. When backtesting Short only strategy and using backtestRegular mode and using HoldMinBars > 1, a disabled stop could trigger if it was enabled in previous backtest run. Fixed.
  10. Support for Windows 98 and Millenium is dropped. If anybody needs that back please let us know (email to support)!

CHANGES FOR VERSION 6.15.0 (as compared to 6.14.0)

  1. AFL: DateTimeFormat( "formatstr", datetime ) - converts datetime to string according to user-specified format
  2. AFL: new function Kurtosis( ARRAY, range, population = True )
  3. AFL: new function Skewness( ARRAY, range, population = True )
  4. AFL: new modes added to DateTimeToStr() that use ISO regardless of regional settings mode = 3 (iso date and time YYYY-MM-DD HH:MM:SS) HH:MM:SS part is only included for non-EOD records, 4 (iso date only YYYY-MM-DD), 5 (iso time only HH:MM:SS)
  5. AFL: NumToStr could crash if format parameter was greater than 127. Fixed. Now an error message is displayed when format parameter is too large
  6. AFL: NumToStr now supports formatDateTimeISO
  7. AFL: StDev function added 3rd argument "Population = True", when Population is True it calculates population based stdev, otherwise sample based
  8. ASCII import: from version 6.11 importer always added new symbols even if $AUTOADD 0 was used. Fixed.
  9. UI: Charts window - an attempt to rename a file or directory to something that already exists is now prevented and results in error message box.
  10. UI: in 6.14 when New Analysis was switched to 'floating' mode, it could crash on attempt to run analysis. Fixed.
  11. UI: Quote editor - in single-symbol mode "ticker" field sometimes was not updated. Fixed.
  12. UI: Symbol->Quick Find menu command brings focus to Symbol's window search box. New installations use F3 key assignment for Quick Find. Old installations use old assignment (you can change F3 assignment in Tools->Customize->Keyboard)

CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)

  1. AFL: ParamDate() added support for format=2 to return datetime instead of datenum/string
  2. AFL: PercentRank function now accepts variable period (range)
  3. AFL: PriceVolDistribution crashed if startbar argument was negative. Fixed by implementing protection against negative bar indexes.
  4. AFL: PriceVolDistribution sometimes produced some random values in 6.13. Fixed.
  5. ASCII importer now supports microsecond resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999, uuu - microseconds 000..999
  6. New Analysis: new feature a PAUSE button to temporarily pause/resume any running analysis. Note that already running threads are not interrupted, they are allowed to complete gracefully and then pause state is entered.
  7. UI: A warning message is displayed when user attempts to close AmiBroker while Analysis is in progress
  8. UI: QuoteEditor in some cases did not properly round fractional part of millisecond down to microsecond. Fixed
  9. UI: QuoteEditor: Edit fields for OHLC prices, Volume, OpenInt and Aux now check for proper entry as you type and display red background if entered string is not proper numer. Also those edit fields don't accept characters other than digits (0..9), decimal
  10. UI: Toolbar icons are set to "Large icons" mode automatically on HighDPI screens
  11. When broker.workspace file was corrupted or truncated, the file remained open which eventually prevented from writing it on close. Fixed.

CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)

  1. AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays() could cause exception during code verify when number of symbols exceeded cache size. Fixed.
  2. AFL Editor: changes made in 6.11 to the way how automatic names for new formulas are assigned have been removed and replaced by new method that is faster and more reliable.
  3. AFL Editor: if clipboard is locked by another application the editor would retry opening clipboard upto 8 times before giving up
  4. AFL Editor: when formula was open cursor was located at the end. Now it is located at the top.
  5. AFL: GfxSetCoordsMode( mode ) accepts now four different modes
  6. AFL: MA function made upto 2 times faster, StDev function made 20% faster, Correlation made 40% faster
  7. AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function. Implements hi-precision algorithm.
  8. AFL: PriceVolDistribution( priceH, priceL, vol, bins, absolute = False, startbar = 0, endbar = -1 )
  9. AFL: 64-bit version AFL Correlation() produced slightly different values (+/-0.00001 typ) than 32-bit version due to compiler differences. Now 64-bit version produces same values as produced by all 32-bit versions.
  10. Charting: new feature - Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid (if TickSize > 0 for given symbol)
  11. Plugin loading routine displays a message box when plugins with incorrect bitness are found
  12. Plugin loading routine writes detailed error message to the broker.log in case of problem of DLL loading (must enable plugin log to use this feature)
  13. When drawn study is being modified, Y distance shown in the status bar accounts for activated snap-to-price and/or snap-to-tick mode now.

CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)

  1. AFL: new function GfxDrawImage( "filename", x, y )
  2. AFL: new function CumProd( factor ) - cumulative product of array elements
  3. AFL: new function Prod( array, range ) - cumulative product of array elements over specified number of bars (range)
  4. AFL: new function ProdSince( condition, array ) - cumulative product of array elements since condition is met
  5. AFL: new function VoiceSelect( num ) - select SAPI (Speech API) voice to be used with Say() function, num is a numerical index of installed voices. By default Windows comes with just one voice, but one can add countless 3rd party voices
  6. AFL: new function VoiceCount( ) - returns number of available SAPI (Speech API) voices - to be used with Say() command
  7. AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
  8. UI: New Analysis: Alt+Enter shortcut added to bring up settings window
  9. UI: Quote Editor allows now immediate search for matching date - just type digits in format YYYYMMDD and list will automatically scroll and mark to quote that most closely matches entered date
  10. UI: Realtime quote window: a RMB context menu items are grayed when local data is used and an empty message is set to inform the user that he/she needs realtime data source to use this window
  11. UI: Symbol Information - date fields (like last split date, div date or delisting date) can now be cleared (select all and press DELETE) to set Empty/Null date
  12. UI: Symbols with COMMA (,) caused problems with multiple-selection operations. Now it is handled properly.

CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)

  1. AFL: added formatDateTimeISO for ISO formatting regardless of locale settings
  2. AFL: MxFromString was slow on very large matrices (>100000 cells) due to poor performance of strtod function from Microsoft C runtime. Now MxFromString does not use it and is even 1000 times faster on 100K+ cell matrices (5ms vs 5second)
  3. ASCII importer can now be even 20 times faster when importing NEW (non existing) data that were oddly sorted (like for example in reverse order - descending dates instead of ascending).
  4. ASCII importer is now twice as fast when updating already existing quotes thanks to using in-house code instead of msvcrt functions.
  5. Charting: Fibonacci maximum user-definable level increased to 9000% (from 1000%)
  6. Idle processing is forced now every 125 ms (instead of 250ms) in Analysis window to update UI components more frequently under heavy CPU load
  7. Ruin stop is identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
  8. Startup splash screen is displayed a little sooner now and some pre-loading of editor components is done at start to save time to open editor later
  9. When there were thousands of files in "Formulas" folder opening editor for the first time could take some time. Now this time is significantly reduced.

KNOWN ISSUES:

  1. None

For more details, instructions and examples how to use new features see the 6.20 What's New

AmiBroker 6.20.0 BETA released

Stability: Rank 4 - pretty stable, should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.20.0) of AmiBroker, the last one before official version, with plenty of new features and improvements has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6200beta.exe
(2 296 880 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6200x64.exe
(10 473 784 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

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

NOTE: This version works both as fresh first-time install and as in-place upgrade. Previous installation (if any) is detected and setup switches into ‘upgrade’ mode. Don’t worry, your charts, formulas, etc won’t be affected by the upgrade.

Remember to BACKUP YOUR FILES FIRST !
Note that this version can only be installed onto previous full installation of version 6.10 or higher from http://www.amibroker.com/download.html

CHANGES FOR VERSION 6.20.0 (as compared to 6.19.0)

  1. AFL: new function GetExtraDataForeign - the same as GetExtraData but works with user-specified ticker instead of current one
  2. AFL: ShellExecute supports "runbatch" command. After running batch batch and analysis windows that were opened by batch are automatically closed
  3. Batch: new command DataPluginCmd - calls data plugin DataPluginCmd function (if it is exported from your data DLL) - allows custom actions to be peformed by the plugin from the batch (like maintenance)
  4. Batch: new command ExecuteAndWait - allows to execute external program and wait for its completion (allows among other things launching AmiQuote download and waiting until it is complete)
  5. New Analysis: changed forced refresh frequency of result list to every 250ms when analysis is in progress (since 6.16 when messaging system has changed it was refreshed "on idle")
  6. New Analysis: when user specified symbol with NO quotes at all as a reference symbol AND used "last N days" range AND used Exploration then it would lead to crash. Protection implemented against this scenario.
  7. OLE: AnalysisDoc.Export supports now extra (optional) parameter WhatToExport and it allows now to export not only result list but also walkforward tab Analysis.Export("file", 1 );
  8. UI: In 64 bit version File Dialog was not resizable due to differences in Microsoft runtime. Now it is made resizable.

CHANGES FOR VERSION 6.19.0 (as compared to 6.18.0)

  1. Batch Scheduler implemented (Tools->Scheduler) - integrated tool to schedule automated runs of your batches
  2. Batch: ExportWalkForward command added
  3. Batch: Pause command added
  4. AFL: GetOption supports all fields available in SetOption call
  5. AFL: new function: AddMultiTextColumn - adds a text column to the exploration where text displayed is choosen based on array value
  6. AFL: new function: MxSum - calculates sum of all elements of matrix (grand sum)
  7. AFL: StDev added support for variable period (faster and more accurate than formula-based solutions)
  8. AFL: Title now accepts {{VOLUME}} and {{FULLNAME}} special tokens that get replaced by current volume and full name of the symbol. Example Title = "{{VOLUME}}";
  9. AFL: updated text of Error 62 message to list newly supported sequence %s
  10. AFL: variable period Sum() now returns NULL if range is greater than current bar index (previously returned partial sum)
  11. Analysis: WalkForward settings including IS/OS dates are no longer global, they are now per-project and saved in APX file
  12. ASCII importer: added $RAWCLOSE2AUX1 and $RAWCLOSE2AUX2 commands that allow to put raw close into aux1/aux2 fields when using ADJCLOSE in 'close' field
  13. Changed wording to "Free upgrade period expired." (from "License expired")
  14. Date/Time fields in XML files now use ISO format always (not regional format), for better file exchangability accross regions
  15. Debugger: Watch window: added ability to display values of static variables in watch window - just append '$' (dollar) prefix before static variable name
  16. Default report chart dimensions (new instals) increased to 800x480px
  17. On HiDPI (>=150dpi) screens icons in menus were small, now they are bigger
  18. On HiDPI screens XYCharts and MonteCarlo charts could have axis labels partially truncated depending on choosen font size. Now it is fixed.
  19. UI: Performance Monitor shows now the number of static variables used and the amount of memory consumed by them (Tools->Performance Monitor)
  20. UI: Plugin data access time is now displayed with microsecond precision
  21. UI: Symbol and interval combo boxes in toolbar are made larger on HiDPI screens

CHANGES FOR VERSION 6.18.0 (as compared to 6.17.0)

  1. AFL: GetFnData/GetFnDataForeign added support for "PointValue" and "FullName" fields
  2. Batch processor: In 6.17.0 Export to file command was executed properly but never marked as completed. Fixed.
  3. Batch window checks if there is any other batch running and refuses to start when the other batch has not finished.
  4. Batch: Added command line parameter to exit AmiBroker after running batch file (/exit)
  5. Batch: Added command line parameter to run batch files: /runbatch "full path to batch file
  6. Batch: Load Database "path to workspace/database" - warning this function may be RISKY because it may interfere with other running operations !!
  7. Batch: new command: Save Database
  8. Batch: new command: Set log filename "filename"
  9. Batch: new command: Write text to log "text"
  10. OLE: added new method to AnalysisDoc object: Abort() - will abort any running Analysis scan/exploration/backtest
  11. UI: File->Database Setings displayed underestimated memory usage per symbol (32 bytes per quote instead of 40). Corrected.

CHANGES FOR VERSION 6.17.0 (as compared to 6.16.0)

  1. New Batch processor - allows to define sequences of scans/explorations/backtests/optimizations using different project files that are then run automatically. Detailed instructions on how to use Batch window are here http://www.amibroker.com/guide/h_batch.html
  2. AFL: Changed default number formatting string from "%g" to "%.7g" (so 7 significant digits are now displayed instead of 6)
  3. AFL: new function GetFnDataForeign( "field", "symbol" ) - the same as GetFnData but retrieves non-current symbol's data
  4. AFL: new function InternetClose( handle )
  5. AFL: new function InternetOpenURL( "url" )
  6. AFL: new function InternetReadString( handle ) - read a string (line) from internet resource
  7. AFL: printf/StrFormat/TRACEF support now "%s" (string specifier) and accept string arguments passed and made faster too
  8. Data: Gics.txt classification updated (thanks to PremiumData)
  9. OLE Automation: individual backtest is now supported via OLE automation
  10. OLE: Interval property of Document object is now writable so you can set chart interval from OLE
  11. Startup is made faster
  12. UI: AFL Editor MDI UI did not get immediate refresh after file name change when main window was in modal state due to the way how MFC works. Fixed.
  13. UI: File->Database Settings, default maximum "number of bars" increased to 1 million
  14. UI: New Analysis Settings submenu is now duplicated in main window Analysis->Options menu for easier access for beginners
  15. Watch window: added support for modulo (%) operator in watches

CHANGES FOR VERSION 6.16.0 (as compared to 6.15.0)

  1. New Analysis: implemented entirely new inter-thread communication method that does not strain main thread message queue. This gives tremendous improvement in responsivity of UI when Analysis is running
  2. New Analysis: removed forced message pumping when AFL finished as it was causing issues with proper MDI tab refreshes in Windows 10 while Analysis was running
  3. New Analysis: UI: added an option to keep using existing AFL file on opening APX project instead of asking the user what to do when differences are found between AFL file and content of APX project.
  4. AFL: changed the way how custom-backtest reports "stocknum". Previously Status("stocknum") was equal to zero on custom backtest phase and this may have caused parts that use if(Status("stocknum")==0) to be excecuted during custom backtest phase. Now custom backtest reports stocknum equal -1.
  5. AFL: DateTimeConvert supports now more formats, format = 6 - day, 7 - month, 8 - year, 9 - day of week, 10 - day of year, 11 - quarter (1..4)
  6. Charts: as apparently single pixel geometric pens are 8 times slower than DC pen, the optimization has been implemented that uses DC single pixel pen instead of geometric pen when bar width is 1, giving 8x faster 1-pixel bar charts
  7. Since 6.15 when $AUTOADD was set to 0 (zero), then symbols not existing in the database but present in the imported file were not logged into import.log as earlier. Fixed.
  8. UI: when AM/PM (12 hour format) was used in list views 12:00AM was interpreted as 12:00 (noon), instead of 00:00 (midnight). Fixed.
  9. When backtesting Short only strategy and using backtestRegular mode and using HoldMinBars > 1, a disabled stop could trigger if it was enabled in previous backtest run. Fixed.
  10. Support for Windows 98 and Millenium is dropped. If anybody needs that back please let us know (email to support)!

CHANGES FOR VERSION 6.15.0 (as compared to 6.14.0)

  1. AFL: DateTimeFormat( "formatstr", datetime ) - converts datetime to string according to user-specified format
  2. AFL: new function Kurtosis( ARRAY, range, population = True )
  3. AFL: new function Skewness( ARRAY, range, population = True )
  4. AFL: new modes added to DateTimeToStr() that use ISO regardless of regional settings mode = 3 (iso date and time YYYY-MM-DD HH:MM:SS) HH:MM:SS part is only included for non-EOD records, 4 (iso date only YYYY-MM-DD), 5 (iso time only HH:MM:SS)
  5. AFL: NumToStr could crash if format parameter was greater than 127. Fixed. Now an error message is displayed when format parameter is too large
  6. AFL: NumToStr now supports formatDateTimeISO
  7. AFL: StDev function added 3rd argument "Population = True", when Population is True it calculates population based stdev, otherwise sample based
  8. ASCII import: from version 6.11 importer always added new symbols even if $AUTOADD 0 was used. Fixed.
  9. UI: Charts window - an attempt to rename a file or directory to something that already exists is now prevented and results in error message box.
  10. UI: in 6.14 when New Analysis was switched to 'floating' mode, it could crash on attempt to run analysis. Fixed.
  11. UI: Quote editor - in single-symbol mode "ticker" field sometimes was not updated. Fixed.
  12. UI: Symbol->Quick Find menu command brings focus to Symbol's window search box. New installations use F3 key assignment for Quick Find. Old installations use old assignment (you can change F3 assignment in Tools->Customize->Keyboard)

CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)

  1. AFL: ParamDate() added support for format=2 to return datetime instead of datenum/string
  2. AFL: PercentRank function now accepts variable period (range)
  3. AFL: PriceVolDistribution crashed if startbar argument was negative. Fixed by implementing protection against negative bar indexes.
  4. AFL: PriceVolDistribution sometimes produced some random values in 6.13. Fixed.
  5. ASCII importer now supports microsecond resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999, uuu - microseconds 000..999
  6. New Analysis: new feature a PAUSE button to temporarily pause/resume any running analysis. Note that already running threads are not interrupted, they are allowed to complete gracefully and then pause state is entered.
  7. UI: A warning message is displayed when user attempts to close AmiBroker while Analysis is in progress
  8. UI: QuoteEditor in some cases did not properly round fractional part of millisecond down to microsecond. Fixed
  9. UI: QuoteEditor: Edit fields for OHLC prices, Volume, OpenInt and Aux now check for proper entry as you type and display red background if entered string is not proper numer. Also those edit fields don't accept characters other than digits (0..9), decimal
  10. UI: Toolbar icons are set to "Large icons" mode automatically on HighDPI screens
  11. When broker.workspace file was corrupted or truncated, the file remained open which eventually prevented from writing it on close. Fixed.

CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)

  1. AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays() could cause exception during code verify when number of symbols exceeded cache size. Fixed.
  2. AFL Editor: changes made in 6.11 to the way how automatic names for new formulas are assigned have been removed and replaced by new method that is faster and more reliable.
  3. AFL Editor: if clipboard is locked by another application the editor would retry opening clipboard upto 8 times before giving up
  4. AFL Editor: when formula was open cursor was located at the end. Now it is located at the top.
  5. AFL: GfxSetCoordsMode( mode ) accepts now four different modes
  6. AFL: MA function made upto 2 times faster, StDev function made 20% faster, Correlation made 40% faster
  7. AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function. Implements hi-precision algorithm.
  8. AFL: PriceVolDistribution( priceH, priceL, vol, bins, absolute = False, startbar = 0, endbar = -1 )
  9. AFL: 64-bit version AFL Correlation() produced slightly different values (+/-0.00001 typ) than 32-bit version due to compiler differences. Now 64-bit version produces same values as produced by all 32-bit versions.
  10. Charting: new feature - Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid (if TickSize > 0 for given symbol)
  11. Plugin loading routine displays a message box when plugins with incorrect bitness are found
  12. Plugin loading routine writes detailed error message to the broker.log in case of problem of DLL loading (must enable plugin log to use this feature)
  13. When drawn study is being modified, Y distance shown in the status bar accounts for activated snap-to-price and/or snap-to-tick mode now.

CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)

  1. AFL: new function GfxDrawImage( "filename", x, y )
  2. AFL: new function CumProd( factor ) - cumulative product of array elements
  3. AFL: new function Prod( array, range ) - cumulative product of array elements over specified number of bars (range)
  4. AFL: new function ProdSince( condition, array ) - cumulative product of array elements since condition is met
  5. AFL: new function VoiceSelect( num ) - select SAPI (Speech API) voice to be used with Say() function, num is a numerical index of installed voices. By default Windows comes with just one voice, but one can add countless 3rd party voices
  6. AFL: new function VoiceCount( ) - returns number of available SAPI (Speech API) voices - to be used with Say() command
  7. AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
  8. UI: New Analysis: Alt+Enter shortcut added to bring up settings window
  9. UI: Quote Editor allows now immediate search for matching date - just type digits in format YYYYMMDD and list will automatically scroll and mark to quote that most closely matches entered date
  10. UI: Realtime quote window: a RMB context menu items are grayed when local data is used and an empty message is set to inform the user that he/she needs realtime data source to use this window
  11. UI: Symbol Information - date fields (like last split date, div date or delisting date) can now be cleared (select all and press DELETE) to set Empty/Null date
  12. UI: Symbols with COMMA (,) caused problems with multiple-selection operations. Now it is handled properly.

CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)

  1. AFL: added formatDateTimeISO for ISO formatting regardless of locale settings
  2. AFL: MxFromString was slow on very large matrices (>100000 cells) due to poor performance of strtod function from Microsoft C runtime. Now MxFromString does not use it and is even 1000 times faster on 100K+ cell matrices (5ms vs 5second)
  3. ASCII importer can now be even 20 times faster when importing NEW (non existing) data that were oddly sorted (like for example in reverse order - descending dates instead of ascending).
  4. ASCII importer is now twice as fast when updating already existing quotes thanks to using in-house code instead of msvcrt functions.
  5. Charting: Fibonacci maximum user-definable level increased to 9000% (from 1000%)
  6. Idle processing is forced now every 125 ms (instead of 250ms) in Analysis window to update UI components more frequently under heavy CPU load
  7. Ruin stop is identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
  8. Startup splash screen is displayed a little sooner now and some pre-loading of editor components is done at start to save time to open editor later
  9. When there were thousands of files in "Formulas" folder opening editor for the first time could take some time. Now this time is significantly reduced.

KNOWN ISSUES:

  1. None

For more details, instructions and examples how to use new features see the 6.20.0 BETA READ ME

AmiBroker 6.19.0 BETA released

Stability: Rank 3 - Regular BETA, pretty stable, should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.19.0) of AmiBroker with Batch scheduler and 19 other new features and improvements has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6190beta.exe
(2 291 952 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6190x64.exe
(10 468 224 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

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

NOTE: This version works both as fresh first-time install and as in-place upgrade. Previous installation (if any) is detected and setup switches into ‘upgrade’ mode. Don’t worry, your charts, formulas, etc won’t be affected by the upgrade.

Remember to BACKUP YOUR FILES FIRST !
Note that this version can only be installed onto previous full installation of version 6.10 or higher from http://www.amibroker.com/download.html

CHANGES FOR VERSION 6.19.0 (as compared to 6.18.0)

  1. Batch Scheduler implemented (Tools->Scheduler) - integrated tool to schedule automated runs of your batches
  2. Batch: ExportWalkForward command added
  3. Batch: Pause command added
  4. AFL: GetOption supports all fields available in SetOption call
  5. AFL: new function: AddMultiTextColumn - adds a text column to the exploration where text displayed is choosen based on array value
  6. AFL: new function: MxSum - calculates sum of all elements of matrix (grand sum)
  7. AFL: StDev added support for variable period (faster and more accurate than formula-based solutions)
  8. AFL: Title now accepts {{VOLUME}} and {{FULLNAME}} special tokens that get replaced by current volume and full name of the symbol. Example Title = "{{VOLUME}}";
  9. AFL: updated text of Error 62 message to list newly supported sequence %s
  10. AFL: variable period Sum() now returns NULL if range is greater than current bar index (previously returned partial sum)
  11. Analysis: WalkForward settings including IS/OS dates are no longer global, they are now per-project and saved in APX file
  12. ASCII importer: added $RAWCLOSE2AUX1 and $RAWCLOSE2AUX2 commands that allow to put raw close into aux1/aux2 fields when using ADJCLOSE in 'close' field
  13. Changed wording to "Free upgrade period expired." (from "License expired")
  14. Date/Time fields in XML files now use ISO format always (not regional format), for better file exchangability accross regions
  15. Debugger: Watch window: added ability to display values of static variables in watch window - just append '$' (dollar) prefix before static variable name
  16. Default report chart dimensions (new instals) increased to 800x480px
  17. On HiDPI (>=150dpi) screens icons in menus were small, now they are bigger
  18. On HiDPI screens XYCharts and MonteCarlo charts could have axis labels partially truncated depending on choosen font size. Now it is fixed.
  19. UI: Performance Monitor shows now the number of static variables used and the amount of memory consumed by them (Tools->Performance Monitor)
  20. UI: Plugin data access time is now displayed with microsecond precision
  21. UI: Symbol and interval combo boxes in toolbar are made larger on HiDPI screens

CHANGES FOR VERSION 6.18.0 (as compared to 6.17.0)

  1. AFL: GetFnData/GetFnDataForeign added support for "PointValue" and "FullName" fields
  2. Batch processor: In 6.17.0 Export to file command was executed properly but never marked as completed. Fixed.
  3. Batch window checks if there is any other batch running and refuses to start when the other batch has not finished.
  4. Batch: Added command line parameter to exit AmiBroker after running batch file (/exit)
  5. Batch: Added command line parameter to run batch files: /runbatch "full path to batch file
  6. Batch: Load Database "path to workspace/database" - warning this function may be RISKY because it may interfere with other running operations !!
  7. Batch: new command: Save Database
  8. Batch: new command: Set log filename "filename"
  9. Batch: new command: Write text to log "text"
  10. OLE: added new method to AnalysisDoc object: Abort() - will abort any running Analysis scan/exploration/backtest
  11. UI: File->Database Setings displayed underestimated memory usage per symbol (32 bytes per quote instead of 40). Corrected.

CHANGES FOR VERSION 6.17.0 (as compared to 6.16.0)

  1. New Batch processor - allows to define sequences of scans/explorations/backtests/optimizations using different project files that are then run automatically. Detailed instructions on how to use Batch window are here http://www.amibroker.com/guide/h_batch.html
  2. AFL: Changed default number formatting string from "%g" to "%.7g" (so 7 significant digits are now displayed instead of 6)
  3. AFL: new function GetFnDataForeign( "field", "symbol" ) - the same as GetFnData but retrieves non-current symbol's data
  4. AFL: new function InternetClose( handle )
  5. AFL: new function InternetOpenURL( "url" )
  6. AFL: new function InternetReadString( handle ) - read a string (line) from internet resource
  7. AFL: printf/StrFormat/TRACEF support now "%s" (string specifier) and accept string arguments passed and made faster too
  8. Data: Gics.txt classification updated (thanks to PremiumData)
  9. OLE Automation: individual backtest is now supported via OLE automation
  10. OLE: Interval property of Document object is now writable so you can set chart interval from OLE
  11. Startup is made faster
  12. UI: AFL Editor MDI UI did not get immediate refresh after file name change when main window was in modal state due to the way how MFC works. Fixed.
  13. UI: File->Database Settings, default maximum "number of bars" increased to 1 million
  14. UI: New Analysis Settings submenu is now duplicated in main window Analysis->Options menu for easier access for beginners
  15. Watch window: added support for modulo (%) operator in watches

CHANGES FOR VERSION 6.16.0 (as compared to 6.15.0)

  1. New Analysis: implemented entirely new inter-thread communication method that does not strain main thread message queue. This gives tremendous improvement in responsivity of UI when Analysis is running
  2. New Analysis: removed forced message pumping when AFL finished as it was causing issues with proper MDI tab refreshes in Windows 10 while Analysis was running
  3. New Analysis: UI: added an option to keep using existing AFL file on opening APX project instead of asking the user what to do when differences are found between AFL file and content of APX project.
  4. AFL: changed the way how custom-backtest reports "stocknum". Previously Status("stocknum") was equal to zero on custom backtest phase and this may have caused parts that use if(Status("stocknum")==0) to be excecuted during custom backtest phase. Now custom backtest reports stocknum equal -1.
  5. AFL: DateTimeConvert supports now more formats, format = 6 - day, 7 - month, 8 - year, 9 - day of week, 10 - day of year, 11 - quarter (1..4)
  6. Charts: as apparently single pixel geometric pens are 8 times slower than DC pen, the optimization has been implemented that uses DC single pixel pen instead of geometric pen when bar width is 1, giving 8x faster 1-pixel bar charts
  7. Since 6.15 when $AUTOADD was set to 0 (zero), then symbols not existing in the database but present in the imported file were not logged into import.log as earlier. Fixed.
  8. UI: when AM/PM (12 hour format) was used in list views 12:00AM was interpreted as 12:00 (noon), instead of 00:00 (midnight). Fixed.
  9. When backtesting Short only strategy and using backtestRegular mode and using HoldMinBars > 1, a disabled stop could trigger if it was enabled in previous backtest run. Fixed.
  10. Support for Windows 98 and Millenium is dropped. If anybody needs that back please let us know (email to support)!

CHANGES FOR VERSION 6.15.0 (as compared to 6.14.0)

  1. AFL: DateTimeFormat( "formatstr", datetime ) - converts datetime to string according to user-specified format
  2. AFL: new function Kurtosis( ARRAY, range, population = True )
  3. AFL: new function Skewness( ARRAY, range, population = True )
  4. AFL: new modes added to DateTimeToStr() that use ISO regardless of regional settings mode = 3 (iso date and time YYYY-MM-DD HH:MM:SS) HH:MM:SS part is only included for non-EOD records, 4 (iso date only YYYY-MM-DD), 5 (iso time only HH:MM:SS)
  5. AFL: NumToStr could crash if format parameter was greater than 127. Fixed. Now an error message is displayed when format parameter is too large
  6. AFL: NumToStr now supports formatDateTimeISO
  7. AFL: StDev function added 3rd argument "Population = True", when Population is True it calculates population based stdev, otherwise sample based
  8. ASCII import: from version 6.11 importer always added new symbols even if $AUTOADD 0 was used. Fixed.
  9. UI: Charts window - an attempt to rename a file or directory to something that already exists is now prevented and results in error message box.
  10. UI: in 6.14 when New Analysis was switched to 'floating' mode, it could crash on attempt to run analysis. Fixed.
  11. UI: Quote editor - in single-symbol mode "ticker" field sometimes was not updated. Fixed.
  12. UI: Symbol->Quick Find menu command brings focus to Symbol's window search box. New installations use F3 key assignment for Quick Find. Old installations use old assignment (you can change F3 assignment in Tools->Customize->Keyboard)

CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)

  1. AFL: ParamDate() added support for format=2 to return datetime instead of datenum/string
  2. AFL: PercentRank function now accepts variable period (range)
  3. AFL: PriceVolDistribution crashed if startbar argument was negative. Fixed by implementing protection against negative bar indexes.
  4. AFL: PriceVolDistribution sometimes produced some random values in 6.13. Fixed.
  5. ASCII importer now supports microsecond resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999, uuu - microseconds 000..999
  6. New Analysis: new feature a PAUSE button to temporarily pause/resume any running analysis. Note that already running threads are not interrupted, they are allowed to complete gracefully and then pause state is entered.
  7. UI: A warning message is displayed when user attempts to close AmiBroker while Analysis is in progress
  8. UI: QuoteEditor in some cases did not properly round fractional part of millisecond down to microsecond. Fixed
  9. UI: QuoteEditor: Edit fields for OHLC prices, Volume, OpenInt and Aux now check for proper entry as you type and display red background if entered string is not proper numer. Also those edit fields don't accept characters other than digits (0..9), decimal
  10. UI: Toolbar icons are set to "Large icons" mode automatically on HighDPI screens
  11. When broker.workspace file was corrupted or truncated, the file remained open which eventually prevented from writing it on close. Fixed.

CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)

  1. AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays() could cause exception during code verify when number of symbols exceeded cache size. Fixed.
  2. AFL Editor: changes made in 6.11 to the way how automatic names for new formulas are assigned have been removed and replaced by new method that is faster and more reliable.
  3. AFL Editor: if clipboard is locked by another application the editor would retry opening clipboard upto 8 times before giving up
  4. AFL Editor: when formula was open cursor was located at the end. Now it is located at the top.
  5. AFL: GfxSetCoordsMode( mode ) accepts now four different modes
  6. AFL: MA function made upto 2 times faster, StDev function made 20% faster, Correlation made 40% faster
  7. AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function. Implements hi-precision algorithm.
  8. AFL: PriceVolDistribution( priceH, priceL, vol, bins, absolute = False, startbar = 0, endbar = -1 )
  9. AFL: 64-bit version AFL Correlation() produced slightly different values (+/-0.00001 typ) than 32-bit version due to compiler differences. Now 64-bit version produces same values as produced by all 32-bit versions.
  10. Charting: new feature - Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid (if TickSize > 0 for given symbol)
  11. Plugin loading routine displays a message box when plugins with incorrect bitness are found
  12. Plugin loading routine writes detailed error message to the broker.log in case of problem of DLL loading (must enable plugin log to use this feature)
  13. When drawn study is being modified, Y distance shown in the status bar accounts for activated snap-to-price and/or snap-to-tick mode now.

CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)

  1. AFL: new function GfxDrawImage( "filename", x, y )
  2. AFL: new function CumProd( factor ) - cumulative product of array elements
  3. AFL: new function Prod( array, range ) - cumulative product of array elements over specified number of bars (range)
  4. AFL: new function ProdSince( condition, array ) - cumulative product of array elements since condition is met
  5. AFL: new function VoiceSelect( num ) - select SAPI (Speech API) voice to be used with Say() function, num is a numerical index of installed voices. By default Windows comes with just one voice, but one can add countless 3rd party voices
  6. AFL: new function VoiceCount( ) - returns number of available SAPI (Speech API) voices - to be used with Say() command
  7. AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
  8. UI: New Analysis: Alt+Enter shortcut added to bring up settings window
  9. UI: Quote Editor allows now immediate search for matching date - just type digits in format YYYYMMDD and list will automatically scroll and mark to quote that most closely matches entered date
  10. UI: Realtime quote window: a RMB context menu items are grayed when local data is used and an empty message is set to inform the user that he/she needs realtime data source to use this window
  11. UI: Symbol Information - date fields (like last split date, div date or delisting date) can now be cleared (select all and press DELETE) to set Empty/Null date
  12. UI: Symbols with COMMA (,) caused problems with multiple-selection operations. Now it is handled properly.

CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)

  1. AFL: added formatDateTimeISO for ISO formatting regardless of locale settings
  2. AFL: MxFromString was slow on very large matrices (>100000 cells) due to poor performance of strtod function from Microsoft C runtime. Now MxFromString does not use it and is even 1000 times faster on 100K+ cell matrices (5ms vs 5second)
  3. ASCII importer can now be even 20 times faster when importing NEW (non existing) data that were oddly sorted (like for example in reverse order - descending dates instead of ascending).
  4. ASCII importer is now twice as fast when updating already existing quotes thanks to using in-house code instead of msvcrt functions.
  5. Charting: Fibonacci maximum user-definable level increased to 9000% (from 1000%)
  6. Idle processing is forced now every 125 ms (instead of 250ms) in Analysis window to update UI components more frequently under heavy CPU load
  7. Ruin stop is identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
  8. Startup splash screen is displayed a little sooner now and some pre-loading of editor components is done at start to save time to open editor later
  9. When there were thousands of files in "Formulas" folder opening editor for the first time could take some time. Now this time is significantly reduced.

KNOWN ISSUES:

  1. None

For more details, instructions and examples how to use new features see the 6.19.0 BETA READ ME

New web site design launched

We are proud to present a new web site design that is both mobile-friendly (scales well down to very narrow screens) and High-DPI friendly using new HTML5 standards. We really hope you will like it. Old one was from year 2000 so it was about the highest time to change it for good. There are still some pieces left from old design in some corners but these will be eliminated soon.

Trivia

If you wondered what tools were used to create new AmiBroker page - well... main tool was just Notepad2 (plain text editor with syntax highlighting). Yes it is all manually typed from scratch in HTML5/CSS. No templates. I have Dreamweaver too but decided not to use it. Images were edited by good old Macromedia Fireworks (Macromedia was taken over by Adobe, but I still like the old program :-). And this is pretty much it. OK... one more tool... AmiBroker itself ! ... the red waves on top are curves generated by AmiBroker in its "About" window :-) and if you wondered how these curves are generated - the code behind it is inspired by Lissajous curves (which you may know from physics course)

AmiBroker 6.18.0 BETA released

Stability: Rank 3 - Regular BETA, pretty stable, should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.18.0) of AmiBroker has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6180beta.exe
(2 254 208 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6180x64.exe
(10 458 784 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

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

NOTE: This version works both as fresh first-time install and as in-place upgrade. Previous installation (if any) is detected and setup switches into ‘upgrade’ mode. Don’t worry, your charts, formulas, etc won’t be affected by the upgrade.

Remember to BACKUP YOUR FILES FIRST !
Note that this version can only be installed onto previous full installation of version 6.10 or higher from http://www.amibroker.com/download.html

CHANGES FOR VERSION 6.18.0 (as compared to 6.17.0)

  1. AFL: GetFnData/GetFnDataForeign added support for "PointValue" and "FullName" fields
  2. Batch processor: In 6.17.0 Export to file command was executed properly but never marked as completed. Fixed.
  3. Batch window checks if there is any other batch running and refuses to start when the other batch has not finished.
  4. Batch: Added command line parameter to exit AmiBroker after running batch file (/exit)
  5. Batch: Added command line parameter to run batch files: /runbatch "full path to batch file
  6. Batch: Load Database "path to workspace/database" - warning this function may be RISKY because it may interfere with other running operations !!
  7. Batch: new command: Save Database
  8. Batch: new command: Set log filename "filename"
  9. Batch: new command: Write text to log "text"
  10. OLE: added new method to AnalysisDoc object: Abort() - will abort any running Analysis scan/exploration/backtest
  11. UI: File->Database Setings displayed underestimated memory usage per symbol (32 bytes per quote instead of 40). Corrected.

CHANGES FOR VERSION 6.17.0 (as compared to 6.16.0)

  1. New Batch processor - allows to define sequences of scans/explorations/backtests/optimizations using different project files that are then run automatically. Detailed instructions on how to use Batch window are here http://www.amibroker.com/guide/h_batch.html
  2. AFL: Changed default number formatting string from "%g" to "%.7g" (so 7 significant digits are now displayed instead of 6)
  3. AFL: new function GetFnDataForeign( "field", "symbol" ) - the same as GetFnData but retrieves non-current symbol's data
  4. AFL: new function InternetClose( handle )
  5. AFL: new function InternetOpenURL( "url" )
  6. AFL: new function InternetReadString( handle ) - read a string (line) from internet resource
  7. AFL: printf/StrFormat/TRACEF support now "%s" (string specifier) and accept string arguments passed and made faster too
  8. Data: Gics.txt classification updated (thanks to PremiumData)
  9. OLE Automation: individual backtest is now supported via OLE automation
  10. OLE: Interval property of Document object is now writable so you can set chart interval from OLE
  11. Startup is made faster
  12. UI: AFL Editor MDI UI did not get immediate refresh after file name change when main window was in modal state due to the way how MFC works. Fixed.
  13. UI: File->Database Settings, default maximum "number of bars" increased to 1 million
  14. UI: New Analysis Settings submenu is now duplicated in main window Analysis->Options menu for easier access for beginners
  15. Watch window: added support for modulo (%) operator in watches

CHANGES FOR VERSION 6.16.0 (as compared to 6.15.0)

  1. New Analysis: implemented entirely new inter-thread communication method that does not strain main thread message queue. This gives tremendous improvement in responsivity of UI when Analysis is running
  2. New Analysis: removed forced message pumping when AFL finished as it was causing issues with proper MDI tab refreshes in Windows 10 while Analysis was running
  3. New Analysis: UI: added an option to keep using existing AFL file on opening APX project instead of asking the user what to do when differences are found between AFL file and content of APX project.
  4. AFL: changed the way how custom-backtest reports "stocknum". Previously Status("stocknum") was equal to zero on custom backtest phase and this may have caused parts that use if(Status("stocknum")==0) to be excecuted during custom backtest phase. Now custom backtest reports stocknum equal -1.
  5. AFL: DateTimeConvert supports now more formats, format = 6 - day, 7 - month, 8 - year, 9 - day of week, 10 - day of year, 11 - quarter (1..4)
  6. Charts: as apparently single pixel geometric pens are 8 times slower than DC pen, the optimization has been implemented that uses DC single pixel pen instead of geometric pen when bar width is 1, giving 8x faster 1-pixel bar charts
  7. Since 6.15 when $AUTOADD was set to 0 (zero), then symbols not existing in the database but present in the imported file were not logged into import.log as earlier. Fixed.
  8. UI: when AM/PM (12 hour format) was used in list views 12:00AM was interpreted as 12:00 (noon), instead of 00:00 (midnight). Fixed.
  9. When backtesting Short only strategy and using backtestRegular mode and using HoldMinBars > 1, a disabled stop could trigger if it was enabled in previous backtest run. Fixed.
  10. Support for Windows 98 and Millenium is dropped. If anybody needs that back please let us know (email to support)!

CHANGES FOR VERSION 6.15.0 (as compared to 6.14.0)

  1. AFL: DateTimeFormat( "formatstr", datetime ) - converts datetime to string according to user-specified format
  2. AFL: new function Kurtosis( ARRAY, range, population = True )
  3. AFL: new function Skewness( ARRAY, range, population = True )
  4. AFL: new modes added to DateTimeToStr() that use ISO regardless of regional settings mode = 3 (iso date and time YYYY-MM-DD HH:MM:SS) HH:MM:SS part is only included for non-EOD records, 4 (iso date only YYYY-MM-DD), 5 (iso time only HH:MM:SS)
  5. AFL: NumToStr could crash if format parameter was greater than 127. Fixed. Now an error message is displayed when format parameter is too large
  6. AFL: NumToStr now supports formatDateTimeISO
  7. AFL: StDev function added 3rd argument "Population = True", when Population is True it calculates population based stdev, otherwise sample based
  8. ASCII import: from version 6.11 importer always added new symbols even if $AUTOADD 0 was used. Fixed.
  9. UI: Charts window - an attempt to rename a file or directory to something that already exists is now prevented and results in error message box.
  10. UI: in 6.14 when New Analysis was switched to 'floating' mode, it could crash on attempt to run analysis. Fixed.
  11. UI: Quote editor - in single-symbol mode "ticker" field sometimes was not updated. Fixed.
  12. UI: Symbol->Quick Find menu command brings focus to Symbol's window search box. New installations use F3 key assignment for Quick Find. Old installations use old assignment (you can change F3 assignment in Tools->Customize->Keyboard)

CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)

  1. AFL: ParamDate() added support for format=2 to return datetime instead of datenum/string
  2. AFL: PercentRank function now accepts variable period (range)
  3. AFL: PriceVolDistribution crashed if startbar argument was negative. Fixed by implementing protection against negative bar indexes.
  4. AFL: PriceVolDistribution sometimes produced some random values in 6.13. Fixed.
  5. ASCII importer now supports microsecond resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999, uuu - microseconds 000..999
  6. New Analysis: new feature a PAUSE button to temporarily pause/resume any running analysis. Note that already running threads are not interrupted, they are allowed to complete gracefully and then pause state is entered.
  7. UI: A warning message is displayed when user attempts to close AmiBroker while Analysis is in progress
  8. UI: QuoteEditor in some cases did not properly round fractional part of millisecond down to microsecond. Fixed
  9. UI: QuoteEditor: Edit fields for OHLC prices, Volume, OpenInt and Aux now check for proper entry as you type and display red background if entered string is not proper numer. Also those edit fields don't accept characters other than digits (0..9), decimal
  10. UI: Toolbar icons are set to "Large icons" mode automatically on HighDPI screens
  11. When broker.workspace file was corrupted or truncated, the file remained open which eventually prevented from writing it on close. Fixed.

CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)

  1. AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays() could cause exception during code verify when number of symbols exceeded cache size. Fixed.
  2. AFL Editor: changes made in 6.11 to the way how automatic names for new formulas are assigned have been removed and replaced by new method that is faster and more reliable.
  3. AFL Editor: if clipboard is locked by another application the editor would retry opening clipboard upto 8 times before giving up
  4. AFL Editor: when formula was open cursor was located at the end. Now it is located at the top.
  5. AFL: GfxSetCoordsMode( mode ) accepts now four different modes
  6. AFL: MA function made upto 2 times faster, StDev function made 20% faster, Correlation made 40% faster
  7. AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function. Implements hi-precision algorithm.
  8. AFL: PriceVolDistribution( priceH, priceL, vol, bins, absolute = False, startbar = 0, endbar = -1 )
  9. AFL: 64-bit version AFL Correlation() produced slightly different values (+/-0.00001 typ) than 32-bit version due to compiler differences. Now 64-bit version produces same values as produced by all 32-bit versions.
  10. Charting: new feature - Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid (if TickSize > 0 for given symbol)
  11. Plugin loading routine displays a message box when plugins with incorrect bitness are found
  12. Plugin loading routine writes detailed error message to the broker.log in case of problem of DLL loading (must enable plugin log to use this feature)
  13. When drawn study is being modified, Y distance shown in the status bar accounts for activated snap-to-price and/or snap-to-tick mode now.

CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)

  1. AFL: new function GfxDrawImage( "filename", x, y )
  2. AFL: new function CumProd( factor ) - cumulative product of array elements
  3. AFL: new function Prod( array, range ) - cumulative product of array elements over specified number of bars (range)
  4. AFL: new function ProdSince( condition, array ) - cumulative product of array elements since condition is met
  5. AFL: new function VoiceSelect( num ) - select SAPI (Speech API) voice to be used with Say() function, num is a numerical index of installed voices. By default Windows comes with just one voice, but one can add countless 3rd party voices
  6. AFL: new function VoiceCount( ) - returns number of available SAPI (Speech API) voices - to be used with Say() command
  7. AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
  8. UI: New Analysis: Alt+Enter shortcut added to bring up settings window
  9. UI: Quote Editor allows now immediate search for matching date - just type digits in format YYYYMMDD and list will automatically scroll and mark to quote that most closely matches entered date
  10. UI: Realtime quote window: a RMB context menu items are grayed when local data is used and an empty message is set to inform the user that he/she needs realtime data source to use this window
  11. UI: Symbol Information - date fields (like last split date, div date or delisting date) can now be cleared (select all and press DELETE) to set Empty/Null date
  12. UI: Symbols with COMMA (,) caused problems with multiple-selection operations. Now it is handled properly.

CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)

  1. AFL: added formatDateTimeISO for ISO formatting regardless of locale settings
  2. AFL: MxFromString was slow on very large matrices (>100000 cells) due to poor performance of strtod function from Microsoft C runtime. Now MxFromString does not use it and is even 1000 times faster on 100K+ cell matrices (5ms vs 5second)
  3. ASCII importer can now be even 20 times faster when importing NEW (non existing) data that were oddly sorted (like for example in reverse order - descending dates instead of ascending).
  4. ASCII importer is now twice as fast when updating already existing quotes thanks to using in-house code instead of msvcrt functions.
  5. Charting: Fibonacci maximum user-definable level increased to 9000% (from 1000%)
  6. Idle processing is forced now every 125 ms (instead of 250ms) in Analysis window to update UI components more frequently under heavy CPU load
  7. Ruin stop is identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
  8. Startup splash screen is displayed a little sooner now and some pre-loading of editor components is done at start to save time to open editor later
  9. When there were thousands of files in "Formulas" folder opening editor for the first time could take some time. Now this time is significantly reduced.

KNOWN ISSUES:

  1. None

For more details, instructions and examples how to use new features see the 6.18.0 BETA READ ME

AmiBroker 6.17.0 BETA released

Stability: Rank 3 - Regular BETA, pretty stable, should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.17.0) of AmiBroker has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6170beta.exe
(2 250 664 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6170x64.exe
(10 456 400 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

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

NOTE: This version works both as fresh first-time install and as in-place upgrade. Previous installation (if any) is detected and setup switches into ‘upgrade’ mode. Don’t worry, your charts, formulas, etc won’t be affected by the upgrade.

Remember to BACKUP YOUR FILES FIRST !
Note that this version can only be installed onto previous full installation of version 6.10 or higher from http://www.amibroker.com/download.html

CHANGES FOR VERSION 6.17.0 (as compared to 6.16.0)

  1. New Batch processor - allows to define sequences of scans/explorations/backtests/optimizations using different project files that are then run automatically. Detailed instructions on how to use Batch window are here http://www.amibroker.com/guide/h_batch.html
  2. AFL: Changed default number formatting string from "%g" to "%.7g" (so 7 significant digits are now displayed instead of 6)
  3. AFL: new function GetFnDataForeign( "field", "symbol" ) - the same as GetFnData but retrieves non-current symbol's data
  4. AFL: new function InternetClose( handle )
  5. AFL: new function InternetOpenURL( "url" )
  6. AFL: new function InternetReadString( handle ) - read a string (line) from internet resource
  7. AFL: printf/StrFormat/TRACEF support now "%s" (string specifier) and accept string arguments passed and made faster too
  8. Data: Gics.txt classification updated (thanks to PremiumData)
  9. OLE Automation: individual backtest is now supported via OLE automation
  10. OLE: Interval property of Document object is now writable so you can set chart interval from OLE
  11. Startup is made faster
  12. UI: AFL Editor MDI UI did not get immediate refresh after file name change when main window was in modal state due to the way how MFC works. Fixed.
  13. UI: File->Database Settings, default maximum "number of bars" increased to 1 million
  14. UI: New Analysis Settings submenu is now duplicated in main window Analysis->Options menu for easier access for beginners
  15. Watch window: added support for modulo (%) operator in watches

CHANGES FOR VERSION 6.16.0 (as compared to 6.15.0)

  1. New Analysis: implemented entirely new inter-thread communication method that does not strain main thread message queue. This gives tremendous improvement in responsivity of UI when Analysis is running
  2. New Analysis: removed forced message pumping when AFL finished as it was causing issues with proper MDI tab refreshes in Windows 10 while Analysis was running
  3. New Analysis: UI: added an option to keep using existing AFL file on opening APX project instead of asking the user what to do when differences are found between AFL file and content of APX project.
  4. AFL: changed the way how custom-backtest reports "stocknum". Previously Status("stocknum") was equal to zero on custom backtest phase and this may have caused parts that use if(Status("stocknum")==0) to be excecuted during custom backtest phase. Now custom backtest reports stocknum equal -1.
  5. AFL: DateTimeConvert supports now more formats, format = 6 - day, 7 - month, 8 - year, 9 - day of week, 10 - day of year, 11 - quarter (1..4)
  6. Charts: as apparently single pixel geometric pens are 8 times slower than DC pen, the optimization has been implemented that uses DC single pixel pen instead of geometric pen when bar width is 1, giving 8x faster 1-pixel bar charts
  7. Since 6.15 when $AUTOADD was set to 0 (zero), then symbols not existing in the database but present in the imported file were not logged into import.log as earlier. Fixed.
  8. UI: when AM/PM (12 hour format) was used in list views 12:00AM was interpreted as 12:00 (noon), instead of 00:00 (midnight). Fixed.
  9. When backtesting Short only strategy and using backtestRegular mode and using HoldMinBars > 1, a disabled stop could trigger if it was enabled in previous backtest run. Fixed.
  10. Support for Windows 98 and Millenium is dropped. If anybody needs that back please let us know (email to support)!

CHANGES FOR VERSION 6.15.0 (as compared to 6.14.0)

  1. AFL: DateTimeFormat( "formatstr", datetime ) - converts datetime to string according to user-specified format
  2. AFL: new function Kurtosis( ARRAY, range, population = True )
  3. AFL: new function Skewness( ARRAY, range, population = True )
  4. AFL: new modes added to DateTimeToStr() that use ISO regardless of regional settings mode = 3 (iso date and time YYYY-MM-DD HH:MM:SS) HH:MM:SS part is only included for non-EOD records, 4 (iso date only YYYY-MM-DD), 5 (iso time only HH:MM:SS)
  5. AFL: NumToStr could crash if format parameter was greater than 127. Fixed. Now an error message is displayed when format parameter is too large
  6. AFL: NumToStr now supports formatDateTimeISO
  7. AFL: StDev function added 3rd argument "Population = True", when Population is True it calculates population based stdev, otherwise sample based
  8. ASCII import: from version 6.11 importer always added new symbols even if $AUTOADD 0 was used. Fixed.
  9. UI: Charts window - an attempt to rename a file or directory to something that already exists is now prevented and results in error message box.
  10. UI: in 6.14 when New Analysis was switched to 'floating' mode, it could crash on attempt to run analysis. Fixed.
  11. UI: Quote editor - in single-symbol mode "ticker" field sometimes was not updated. Fixed.
  12. UI: Symbol->Quick Find menu command brings focus to Symbol's window search box. New installations use F3 key assignment for Quick Find. Old installations use old assignment (you can change F3 assignment in Tools->Customize->Keyboard)

CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)

  1. AFL: ParamDate() added support for format=2 to return datetime instead of datenum/string
  2. AFL: PercentRank function now accepts variable period (range)
  3. AFL: PriceVolDistribution crashed if startbar argument was negative. Fixed by implementing protection against negative bar indexes.
  4. AFL: PriceVolDistribution sometimes produced some random values in 6.13. Fixed.
  5. ASCII importer now supports microsecond resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999, uuu - microseconds 000..999
  6. New Analysis: new feature a PAUSE button to temporarily pause/resume any running analysis. Note that already running threads are not interrupted, they are allowed to complete gracefully and then pause state is entered.
  7. UI: A warning message is displayed when user attempts to close AmiBroker while Analysis is in progress
  8. UI: QuoteEditor in some cases did not properly round fractional part of millisecond down to microsecond. Fixed
  9. UI: QuoteEditor: Edit fields for OHLC prices, Volume, OpenInt and Aux now check for proper entry as you type and display red background if entered string is not proper numer. Also those edit fields don't accept characters other than digits (0..9), decimal
  10. UI: Toolbar icons are set to "Large icons" mode automatically on HighDPI screens
  11. When broker.workspace file was corrupted or truncated, the file remained open which eventually prevented from writing it on close. Fixed.

CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)

  1. AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays() could cause exception during code verify when number of symbols exceeded cache size. Fixed.
  2. AFL Editor: changes made in 6.11 to the way how automatic names for new formulas are assigned have been removed and replaced by new method that is faster and more reliable.
  3. AFL Editor: if clipboard is locked by another application the editor would retry opening clipboard upto 8 times before giving up
  4. AFL Editor: when formula was open cursor was located at the end. Now it is located at the top.
  5. AFL: GfxSetCoordsMode( mode ) accepts now four different modes
  6. AFL: MA function made upto 2 times faster, StDev function made 20% faster, Correlation made 40% faster
  7. AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function. Implements hi-precision algorithm.
  8. AFL: PriceVolDistribution( priceH, priceL, vol, bins, absolute = False, startbar = 0, endbar = -1 )
  9. AFL: 64-bit version AFL Correlation() produced slightly different values (+/-0.00001 typ) than 32-bit version due to compiler differences. Now 64-bit version produces same values as produced by all 32-bit versions.
  10. Charting: new feature - Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid (if TickSize > 0 for given symbol)
  11. Plugin loading routine displays a message box when plugins with incorrect bitness are found
  12. Plugin loading routine writes detailed error message to the broker.log in case of problem of DLL loading (must enable plugin log to use this feature)
  13. When drawn study is being modified, Y distance shown in the status bar accounts for activated snap-to-price and/or snap-to-tick mode now.

CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)

  1. AFL: new function GfxDrawImage( "filename", x, y )
  2. AFL: new function CumProd( factor ) - cumulative product of array elements
  3. AFL: new function Prod( array, range ) - cumulative product of array elements over specified number of bars (range)
  4. AFL: new function ProdSince( condition, array ) - cumulative product of array elements since condition is met
  5. AFL: new function VoiceSelect( num ) - select SAPI (Speech API) voice to be used with Say() function, num is a numerical index of installed voices. By default Windows comes with just one voice, but one can add countless 3rd party voices
  6. AFL: new function VoiceCount( ) - returns number of available SAPI (Speech API) voices - to be used with Say() command
  7. AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
  8. UI: New Analysis: Alt+Enter shortcut added to bring up settings window
  9. UI: Quote Editor allows now immediate search for matching date - just type digits in format YYYYMMDD and list will automatically scroll and mark to quote that most closely matches entered date
  10. UI: Realtime quote window: a RMB context menu items are grayed when local data is used and an empty message is set to inform the user that he/she needs realtime data source to use this window
  11. UI: Symbol Information - date fields (like last split date, div date or delisting date) can now be cleared (select all and press DELETE) to set Empty/Null date
  12. UI: Symbols with COMMA (,) caused problems with multiple-selection operations. Now it is handled properly.

CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)

  1. AFL: added formatDateTimeISO for ISO formatting regardless of locale settings
  2. AFL: MxFromString was slow on very large matrices (>100000 cells) due to poor performance of strtod function from Microsoft C runtime. Now MxFromString does not use it and is even 1000 times faster on 100K+ cell matrices (5ms vs 5second)
  3. ASCII importer can now be even 20 times faster when importing NEW (non existing) data that were oddly sorted (like for example in reverse order - descending dates instead of ascending).
  4. ASCII importer is now twice as fast when updating already existing quotes thanks to using in-house code instead of msvcrt functions.
  5. Charting: Fibonacci maximum user-definable level increased to 9000% (from 1000%)
  6. Idle processing is forced now every 125 ms (instead of 250ms) in Analysis window to update UI components more frequently under heavy CPU load
  7. Ruin stop is identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
  8. Startup splash screen is displayed a little sooner now and some pre-loading of editor components is done at start to save time to open editor later
  9. When there were thousands of files in "Formulas" folder opening editor for the first time could take some time. Now this time is significantly reduced.

KNOWN ISSUES:

  1. None

For more details, instructions and examples how to use new features see the 6.17.0 BETA READ ME

Medved Trader data plugin

A data plugin for Medved Trader has been released. You can download it from here:

http://www.amibroker.com/bin/MT.dll

This plugin requires 32-bit version of AmiBroker.

To install, close any running AmiBroker instance and copy the DLL to "Plugins" subfolder.

Note this plugin is basically the same as Quote Tracker plugin but is made compatible with Medved Trader (due to changed way to detect if Medved Trader is running as compared with Quote Tracker).

Note that HTTP API in Medved Trader is not enabled by default. You need to enable it yourself, from Settings->Application Settings in Medved Trader as shown below:

mtsettings

« Previous PageNext Page »