amibroker

HomeDevLog

New IB data plugin v1.6.1

A new version (1.6.1) of Interactive Brokers data plugin has been released.

Download link: http://www.amibroker.com/bin/ib161/IB.dll

Instructions: http://www.amibroker.com/ib.html

CHANGES (as compared to 1.6.0):

  1. now streaming connection uses small buffer, while backfill connection uses large buffer
  2. added protection against stopping backfill when user scrolls through symbol list and invalid ticker is encountered

New Interactive Brokers data plugin v1.6.0 released

A new version (1.6.0) of IB plugin has been released.

Download link: http://www.amibroker.com/bin/ib160/IB.dll

Instructions: http://www.amibroker.com/ib.html

CHANGES (as compared to 1.5.1):

  1. added handling of TWS error message = 300 (can’t find Eid)
  2. added handling of TWS error message = 165 (HDMS disconnect) – allows to workaround TWS throttling
  3. added “Cancel Backfill” menu option
  4. added “Minimum” backfill length that backfills in less than a day if you have already some data from today
  5. most recently selected backfill length is stored between session
  6. added separate connection for backfill to workaround TWS problems with hanging backfills plus automatic reconnection if backfill times out or HDMS disconnects
  7. added some runtime checks for valid pointers to workaround TWS bug of sending incorrect IDs for certain messages
  8. quotes after backfill are flushed from plugin memory
  9. added get_quotes notification for use in future versions of AmiBroker

This new plugin is an attempt to workaround a very annoying ‘feature’ in TWS API: hanging (or throttling) historical data requests (see this IB discussion, and this)

Most recent versions of TWS simply refuse to deliver any more historical data after making about 50 requests. Consecutive requests hang and after about 2-3 minutes application receives error 165 (HDMS disconnect). Then the only chance to resume working is to disconnect and reconnect. New plugin does that automatically. When it detects time out or receives error 165 “disconnect” it kills existing connection and connects with new client ID. To improve reliability backfill connection is now separate from streaming connection, so these reconnects do not affect streaming real time data.

64-bit version updated

64-bit version of AmiBroker has been updated to 4.79.0 (in sync with 32 bit version). More details, download and setup instructions are available at: http://www.amibroker.com/x64/

AmiBroker 4.79.0 BETA released

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

It is available for registered users only from the members area at:
http://www.amibroker.com/members/bin/ab4790beta.exe

(File size: 1 126 966 bytes, 1 MB)

If you forgot your user name / password to the members area you can use automatic reminder service at: http://www.amibroker.com/login.html

The instructions are available in the “ReadMe” file ( Help->Read Me menu from AmiBroker )

IMPORTANT NOTES:

If you are using Firewall you may need to check if it did not block Broker.EXE file after upgrade. (It happened to some users that firewall blocked AmiBroker after upgrade and they could not connect to RT data sources due to that)

CHANGES FOR VERSION 4.79.0 (as compared to 4.78.1)

  1. Added HoldMinBars feature that disables exit during user-specified number of bars even if signals/stops are generated during that period. Please note that IF during HoldMinBars period ANY stop is generated it is ignored. Also this period is ignored when it comes to calculation of trailing stops (new highest highs and drops below trailing stops generated during HoldMinBars are ignored).This setting, similar to EarlyExitFee/EarlyExitBars is available on per-symbol basis (i.e. it can be set to different value for each symbol)

    Example:

    SetOption("HoldMinBars"127 ); Buy=BarIndex()==0Sell=1// even if sell signals are generated each day, //they are ignored until bar 128
  2. additional checks added to ensure proper operation of individual equity chart
    AA window generates error if it can not write LastBacktestFormula to the registry AA complains with error message when individual equity formula does not contain #include @LastBacktestFormula statement that is required for proper operation
    (it includes the formula used in last backtest so Equity() function can process it)
  3. AFL formula editor toolbar / menu is now customizable
  4. Asc() function for converting first character of the string to the ASCII code

    Asc( string, pos = 0 )

    Returns the ANSI character code corresponding to the first letter in a string (if position is not specified) or code of character at specified position. If you don’t specify position (pos argument) then first character is used. Negative values of pos reference characters counting from the end of string.

    Useful for creation of exploration that displays single letters for signals instead of numbers.

    Buy Cross(MACD(),Signal()); Sell Cross(Signal(),MACD()); Filter Buy OR SellAddColumnIIfBuyAsc("B"), Asc("S")), "Signal"formatChar );
  5. Changed EarlyExitFee functionality so it does NOT affect equity (and stats like drawdowns) if position is not liquidated during early bars
  6. Chart sheet tabs improvements: added drag-drop moving, quick selection menu, home/end buttons
  7. Fix: double click on Y axis does not turn <> range markers anymore (allocated to: 4.79.0)
  8. Fix: Param slider, when step =2 and start is odd (for example 3 ) then subsequent values were even (they should be odd 3, 5, 7,…) now it is fixed
  9. Fixed handling of mixed color encodings in AddColumn (pre-defined color constants did not work together with ColorRGB / ColorHSB, now it is fixed)

    Example of code that did not work correctly in 4.78.1 and earlier but now works fine.

    Filter 1AddColumn(Close"Close"1.2colorDefaultColorRGB(25500) );   //   this works AddColumn(Close"Close"1.2ColorRGB(00255), ColorRGB(25500));   //   this works AddColumn(Close"Close"1.2colorBlueColorRGB(25500)); // this works in 4.79, but didn't in previous versions AddTextColumn(" "" "); AddColumn(Close"Close"1.2ColorRGB(25500), colorDefault); //   this works AddColumn(Close"Close"1.2ColorRGB(25500), ColorRGB(00255) );   //   this works AddColumn(Close"Close"1.2ColorRGB(25500), colorBlue); // this works in 4.79, but didn't in previous versions
  10. Fractional increments on Y axis: added 1/320 increment (to use for example with ZT contract) and changed display method so integer part is separated from fractional part by ^ character
  11. Implemented easy real-time alerts (allocated to: 4.79.0)
    “easy alerts” are available from RTquote window context menu.
    (Click on Real Time Quote window with RIGHT mouse button and select “Easy Alerts” option
    – then define alerts you want to generate using real time streaming quotes).
    If you add any alerts, please note that symbols used in alerts add up to total number of streaming symbols, so if you have 50 symbol limit on your data source and have 40 symbols in your real time quote window you will be able to setup alerts for only 10 extra symbols (if you use the same symbols as in real time quote window then it does not add up to the total count)
  12. OLE: added ability to control sorting in AA window from OLE level
    Object:
    Analysis

    New method:
    SortByColumn( iColumn, bAscending, bMultiMode )

    where iColumn – is zero-based column index to sort bybAscending – true/false decides the order we wantbMulti – if set to false – it means that we want to sort by single column or we define starting column for multi-column sortif set to true – it means that we are defining additional columns for multiple-column sort.So to sort by many columns you need to call SortByColumn once with bMulti set to false and then call SortByColumn for all remaining sort columns with bMulti set to true.

    Example (multiple column sort by column 1 and 2):

    AB = new ActiveXObject("Broker.Application");AA AB.Analysis// sort by date/time column AA.SortByColumn1FalseFalse ); // add secondary sort column (see last argument = True) AA.SortByColumn2FalseTrue ); 
  13. OLE: added Application.Visible property
    AB = new ActiveXObject("Broker.Application"); AB.Visible TrueWScript.Sleep(1000); AB.Visible FalseWScript.Sleep(1000); AB.Visible TrueWScript.Sleep(1000); AB.Quit();
  14. OLE: when AmiBroker is created from OLE, it loads default layout now (previous versions did not
  15. Scaling in/out fixes: added extra checks not to exceed available cash (scaling-in) and not to drop below zero shares (scaling out)
  16. Time&sales now allows the user to disable display of bid/ask and/or trades
    By default both trades and bidl/ask quotes are shown, but now you can decide to turn off either one or both by clicking with RIGHT mouse button over Time&Sales window and checking/unchecking “Show Trades” and “Show Bid / Ask Quotes”
    menu items.
  17. Tools: Preferences: Misc, renamed “Save on exit” to “Auto-save” and changed auto-save logic, so layouts are saved on each change

    When Auto-save: Layouts is turned ON, currently loaded layout is saved on change (i.e. when another layout is loaded, previously selected layout changes are saved first), the same with database load – if you load different database then recently used layout is stored automatically. IMPORTANT: changes are saved now to most recently loaded layout (not to ‘default’ one as it was before). So default layout is NOT affected by auto-save if you manually loaded different layout.

AmiBroker 4.78.1 BETA released

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

It is available for registered users only from the members area at:
http://www.amibroker.com/members/bin/ab4781beta.exe

(File size: 1 099 218 bytes, 1 MB)

If you forgot your user name / password to the members area you can use automatic reminder service at: http://www.amibroker.com/login.html

The instructions are available in the “ReadMe” file ( Help->Read Me menu from AmiBroker )

IMPORTANT NOTES:

If you are using Firewall you may need to check if it did not block Broker.EXE file after upgrade. (It happened to some users that firewall blocked AmiBroker after upgrade and they could not connect to RT data sources due to that)

CHANGES FOR VERSION 4.78.1 (as compared to 4.78.0)

  1. atcFlagEnableInPortfolio now works fine with atcFlagCompositeGroup flag
    Previously using atcFlagCompositeGroup (or atcFlagDefaults) prevented creation of composite in custom backtest procedure (even if atcFlagEnableInPortfolio was specified). atcFlagEnableInPorfolio worked only without it. Now it is fixed (works fine with or without atcFlagCompositeGroup)
  2. AFLEditor: Edit->Replace fixed
  3. HTMLExport: fixed crash occuring sometimes when lots of columns were used
  4. HTMLExport: fix: colorDefault is not BLACK for background (bgcolor in tag is skipped) – this fix also reduces file size
  5. HTMLExport: header row is in separate line (CR at the end)
  6. backward compatiblity fix for ExportImage() function (when width and height are not provided then default – current window size – is used). (NOTE: this also fixes Edit->Image->Export )

AmiBroker 4.78.0 BETA released

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

It is available for registered users only from the members area at:
http://www.amibroker.com/members/bin/ab4780beta.exe

(File size: 1 098 846 bytes, 1 MB)

If you forgot your user name / password to the members area you can use automatic reminder service at: http://www.amibroker.com/login.html

The instructions are available in the “ReadMe” file ( Help->Read Me menu from AmiBroker )

IMPORTANT NOTES:

If you are using Firewall you may need to check if it did not block Broker.EXE file after upgrade. (It happened to some users that firewall blocked AmiBroker after upgrade and they could not connect to RT data sources due to that)

CHANGES FOR VERSION 4.78.0 (as compared to 4.77.0)

  1. AA: HTML export added that supports FULL COLOR output
    To export to HTML just click “EXPORT” button in AA window and select “HTML files” from “Files of type” combo box in file dialog.

    You can also use OLE interface Export method – if EXTENSION provided in the file name is .html then AmiBroker will output HTML file, otherwise it will output CSV (text) file. If you want colorful output in Excel, just EXPORT the file to HTML and load it into Excel (or drag-drop to excel).

    Please note that Excel color palette is limited (not all 16 million colors available in AmiBroker can be represented in Excel).
    Example colorful test exploration:

    Filter=1; for( 025616 )   AddColumnC"C"+i1.2colorDefault,              ColorHSB( ( BarIndex() + ) % 256255-i255 ) );
  2. List control code reviewed for better 64bit compatibility
  3. List selection is maintained after sorting
  4. Multiple column sort implemented in AA result list (and other list controls as well)

    To sort by more than one column:
    a) click the FIRST column then
    b) SHIFT-click second, third, fourth column … and so on (upto 40 columns can be sorted at once)
    (to SHIFT-click means to click with left mouse button while having SHIFT key pressed down)
    c) to change the Asc/Desc order click on the same column again

    To restart sorting, release SHIFT key and click on column (it will become first).

    Subsequent columns (in the order you have clicked on them) are marked with 1, 2, 3, 4, 5, 6, 7, 8, 9 numbers
    (if you select more than 10 columns, then all columns above 10th will be marked with ‘…’)

  5. Backtester: added EarlyExitBars/EarlyExitFee functionality (not supported by old (v.4.4) backtester)

    Early exit (redemption) fee is charged when trade is exited during first N bars since entry.
    The fee is added to exit commission and you will see it in the commissions reported for example in detailed log. It is also reflected in the portfolio equity (so for first N bars since entry portfolio equity is lower by early exit fee).

    // these two new options can be set on per-symbol basis // how many bars (trading days) // an early exit (redemption) fee is applied SetOption("EarlyExitBars"128 ); // early redemption fee (in percent) SetOption("EarlyExitFee");

    (note 180 calendar days is 128 or 129 trading days)

    // how to set it up on per-symbol basis? // it is simple - use 'if' statement if( Name() == "SYMBOL1" ) {  SetOption("EarlyExitBars"128 );  SetOption("EarlyExitFee"); } if( Name() == "SYMBOL2" ) {  SetOption("EarlyExitBars"25 );  SetOption("EarlyExitFee"); }
  6. AA: “Scan every” feature has been renamed to “Run every” and allows automatic repeat of scan or exploration (new feaeture) it allows also shorter intervals

    Run every intervals can now be defined in MINUTES (default) or SECONDS.
    To enter run-every interval in seconds simply add “s” or “sec” at the end of interval value, for example:

    10 sec – for run every 10 seconds
    5 s – for run every 5 seconds
    13 min – for run every 13 minutes
    35 m – for run every 35 minutes
    7 – for run every 7 minutes (if time unit is not specified then by default minutes are used)

  7. OLE: ExportImage() now supports Width and Height parameters

    ExportImage function that now allows to specify width and height. So to export say 640×480 gif image you need to write:

    AB = new ActiveXObject("Broker.Application");Win AB.ActiveWindow;Win.ExportImage"test.gif"640480 );

    and you will get perfect image with no jagginess or any scaling artifacts.
    And it works independently of your current window size and it does NOT affect your current window size.

  8. fix: customColor1 can be selected again using color picker

Houston presentations

My own presentations from Houston (updated versions of them) are now available for download in three different formats

PowerPoint:
http://www.amibroker.com/docs/Houston1.ppt
http://www.amibroker.com/docs/Houston2.ppt

PDF (Acrobat Reader):
http://www.amibroker.com/docs/Houston1.pdf
http://www.amibroker.com/docs/Houston2.pdf

Macromedia Flash (for on-line viewing):
http://www.amibroker.com/docs/Houston1.html
http://www.amibroker.com/docs/Houston2.html

(Hint: If you want to save PPT (PowerPoint) or PDF to your hard disk, click with RIGHT mouse button over the link and select “Save Target As…” from the menu. Flash format is for on-line viewing only)

Note that these are “source” presentations without any kind of audio commentary, still
I hope you will find them useful.

Houston conference and workshops were organized by Richard Boroff (FTMonitor) and there will be complete set of audio materials recorded during conference including all presentations (not only mine) together with question and answer sessions available later for purchase from FTMonitor. Please allow 6+ weeks time for editing audio recordings and preparing CD-ROMs.

By the way I would like to thank Richard Boroff for all organizational efforts (it was really very well-prepared event), Joe Landry for picking me up from the airport and showing me NASA space center, Bruce Robinson and Don Thorp for helping me with shopping and shipping this big basket with sweet things :-), all speakers (Bill Barack, Bruce Robinson, Fred Tonetti , Don Wilson, Bill Barnard, Jimmy Hixson, Greg Cook, Roy Ashworth) for spending time preparing all those presentations and scripts/programs/formulas, and all participants for valuable feedback, all those presents and great atmosphere and very warm welcome.

I also thank *every* AmiBroker user for making it all possible (it is because of you that you spread the word about AmiBroker, it all become possible).

Knowledge Base now features syntax highlighting

Knowledge Base now features automatic AFL syntax highlighting. It is not yet perfect (i.e. it is a bit different from AmiBroker’s built-in algorithm but it was quick to implement and I think it does the job quite well). Also added today is the archive listing showing only titles of posts for quick viewing.

64-bit versions of AmiBroker and AmiQuote available

We are proud to announce the release of probably world’s first 64-bit technical analysis software platform.

64-bit versions of both AmiBroker and AmiQuote are available now from http://www.amibroker.com/x64/.

Main benefits of 64 bit versions include:

  1. performance increased by 25% compared to 32 bit edition running on the same machine
  2. ability to use physical memory (RAM) upto 1 TERA byte
  3. ability to use virtual memory upto 16 TERA bytes

To run this software you need to use 64-bit capable CPU and 64-bit edition of Windows.
For more details check http://www.amibroker.com/x64/.

DevLog and Knowledge Base started

Today two new on-line services started: DevLog (this one) http://www.amibroker.com/devlog/ which is intended to provide you with up-to-date news about releases, betas as well as on-going development. In addition to that from time to time I may add some personal note or comment.

Second service is Knowledge Base http://www.amibroker.com/kb/
which is intended to provide tips & tricks, code examples, etc. for everyday AmiBroker use. The idea behind is to build searchable knowledge base from the answers that previously got “lost” in thousands of responses sent to the mailing list.

Both are based on WordPress (blogging software) which is RSS aware, and allows you to integrate them into your favourite RSS-news reader. To learn more what RSS is and how RSS can make your life easier please check this site.

I hope you will like both services.