[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] AmiBroker 4.46.1 BETA released



PureBytes Links

Trading Reference Links



Hello,A new beta version (4.46.1) of AmiBroker 
has just been released.Includes enhancements allowing to auto-adjust data 
from Yahoo andability to display tommorrows trades recommendations in 
portfolio backtesterwhen using one bar delay.It is available for 
registered users only from the members area at:<A 
href=""><FONT 
size=2>http://www.amibroker.com/members/bin/ab4461beta.exe<FONT 
size=2>and<A 
href=""><FONT 
size=2>http://www.amibroker.net/members/bin/ab4461beta.exe<FONT 
size=2>(File size: 516 350 bytes,  516 KB)If you forgot your user 
name / password to the members areayou can use automatic reminder service 
at: <FONT 
size=2>http://www.amibroker.com/login.htmlThe 
highlight of this new version is multiple time frame support in AFL.The 
instructions are available below and in the "ReadMe" file( Help->Read Me 
menu from AmiBroker )
CHANGES FOR VERSION 4.46.1 (as compared to 4.46.0)
  scoreNoRotate now works again 
  small fix in regarding month boundary handling in "Use local time for 
  daily compression" mode.
  AA settings, new switch: "Add artificial future bar". When checked 
  AmiBroker adds tommorrow's bar and this enables you to see tommorrow's (or 
  next bar) trade recommendations when your system uses one bar delay. 
  Artificial future bar is a copy of last available data bar but has of course 
  incremented date and volume set to zero.
  two functions (where present in 4.46.0 but not 
  documented)IsFavourite() - returns 'true' if current symbol belongs to 
  favoritesIsIndex() - returns 'true' if current symbol belongs to index 
  category
CHANGES FOR VERSION 4.46.0 (as compared to 4.45.0)
  New AFL functions
  
    added NumToStr as synonum of WriteVal (as this function 
    did not 'write' anything, just returned string) 
    added StrToNum( string ) - converts string to numbe 
    added StrFind( string, substring ) - finds first 
    occurrence of substring in string. returns 0 if not found, otherwise returns 
    character index (one-based) of first occurrence 
    added StrFormat( formatstr, ... ) that performs 
    sprintf-like formatting and returns string 
    CategoryGetName( category, number) function - returns 
    name of category (market/group/sector/industry/watchlist) 
    CategoryGetSymbols( category, number ) added - synonym 
    to GetCategorySymbols
    CategoryAddSymbol( symbol, category, number ); - adds 
    the symbol to given category, note that for markets, groups, industries 
    'adding' means moving from one category to another, since the symbol is 
    assigned always to one and only one market, group, industry and sector. This 
    limitation does not apply to watchlists, favorites, and index categories. 
    When symbol string is empty ("") then current symbol is used. 
    CategoryRemoveSymbol( symbol, category, number ); - 
    removes the symbol to given category, note that for markets, groups, 
    industries 'removing' means moving from given category to category with 
    number zero, since the symbol is assigned always to one and only one market, 
    group, industry and sector. This limitation does not apply to watchlists, 
    favorites, and index categories. When symbol string is empty ("") then 
    current symbol is used.
  added new AFL functions for output/file handling (almost exactly like in C 
  run-time): 
  
    printf( formatstr, ... ) - output formatted text to the 
    commentary/interpretation (note 1: for numbers always use %f, %e or %g 
    formatting, %d or %x will not work because there are no integers in AFL, 
    note 2: as of now only numbers and arrays can now be printed. For arrays 
    'selected value' is printed) 
    fopen( filename, mode ) - opens file, returns 
    filehandle . Mode can be "r" - for reading, "w" for writing, "a" for 
    appending (and all other regular C-runtime library modes) 
    fclose( filehandle ); - closes file 
    fputs( string, filehandle ) - puts (writes) string to 
    file 
    fgets( filehandle ) - gets (reads) string from file 
    (returns string) 
    feof( filehandle ) - detects end-of-file marker ( gives 
    True - if end of file reached ) 
  PositionScore table is now shifted according to buy trade delay in regular 
  mode too. (it was shifted so in rotational mode already). Caveat: make sure to 
  set long and short delays to the same values if you are trading both long and 
  short sides, otherwise only long trades get correct ranks. Note 2: 
  PositionSize is not and was never shifted with trade delaysto allow code 
  for purchasing N stocks working with any delay, example PositionSize = 5 * 
  BuyPrice 
  added new option to File->Database Settings->Intraday settings "Use 
  local time for daily compression".All previous versions used exchange or 
  data vendor time to do build daily bars (this means that regardless of your 
  time shift settings daily bars looked the same because they used exchange or 
  data source time (for example if you are using QuoteTracker it was US EST 
  time) - this caused problems for Australian users using QuoteTracker as data 
  source because QuoteTracker reported ASX quotes with US time that lead to 
  invalid daily bars. Now if you check "Use local time for daily compression" 
  AmiBroker will use your local time (according to 'time shift' setting) to 
  build daily bars. Note that switching this on means that daily bars may look 
  different when you change time zone (i.e. time shift setting)
  ASCII importer: support for importing unadjusted Yahoo data performing 
  adjustment on the fly: 
  
    new field ADJCLOSE - to read adj. close column from 
    Yahoo. Works _only_ in conjunction with CLOSE field. When both CLOSE and 
    ADJCLOSE are present in the ASCII format definition then importer calculates 
    split factor by dividing ADJCLOSE/CLOSE. It then multiples OPEN, HIGH, LOW 
    and CLOSE fields by this factor and divides VOLUME field by this factor. 
    This effectively converts unadjusted prices to split adjusted prices. Split 
    ratio gets locked once ADJCLOSE drops below 0.05.
    new command $ROUNDADJ decimaldigits - causes 
    split-adjusted prices (see above) to be rounded to 'decimaldigits' 
    precision. By default no rounding is done.
    new command $RECALCSPLITS 1 - (off by default) causes 
    that splits are recalculated by AmiBrokerby the algorithm that tries to 
    construct correct adjusted price, based on inaccurate information provided 
    by Yahoo.Note that Yahoo provides only 2 decimal digits in adj. close 
    field therefore the more adj. close approaches zero due to adjustements the 
    error grows. The option $RECALCSPLITS 1 is intended to address this problem 
    (at least partially).It works as follows:1. for each bar ratio 
    ADJCLOSE/CLOSE is calculated2. if the ratio changes in two consecutive 
    bars by more than 10% it means thatsplit happened that bar. True split 
    ratio is guessed by matching true fractionin the format of X/Y, where X 
    and Y = 1..9, to the change in ratios.3. Then true split ratio is used 
    to adjust all past bars until new split is detected.
    new command $RAWCLOSE2OI 1 - (off by default) - causes 
    that OpenInterest field gets assigned CLOSE (raw close) field value 
    multiplied by 100
  new aqh.format file included in "formats" subfolder using new ASCII 
  importer commands to import and adjust prices from Yahoo. Compatible with 
  existing AmiQuote versions. Best regards,Tomasz 
JaneczkoHope this helps.
AmiBroker 4.46.1 Beta Read Me
October 23, 2003 17:38 
THIS IS A BETA VERSION OF THE SOFTWARE. EXPECT BUGS !!!
Backup your data files and entire AmiBroker folder 
first!
INSTALLATION INSTRUCTIONS
IMPORTANT: This archive is update-only. You have to install full 
version 4.40 first. 
Just run the installer and follow the instructions. 
Then run AmiBroker. You should see "AmiBroker 4.46.1 beta" written in the 
About box.
See CHANGE LOG below for detailed list of changes.
HELP ON NEW FEATURES
New backtest report
New report is hugely enhanced compared to old one. It includes separate 
statistics for all, long and short sides as well as large number of new metrics. 
You can get short help on given figure by hovering your mouse over given field 
name. You will see the description in the tooltip. Short explanations are 
provided also below:
Exposure % - modified since last release 
-'Market exposure of the trading system calculated on bar by bar basis. Sum of 
bar exposures divided by number of bars. Single bar exposure is the value of 
open positions divided by portfolio equity.
Net Risk Adjusted Return % - Net profit % divided by 
Exposure %
Annual Return % - Compounded Annual Return % (CAR)
Risk Adjusted Return % - Annual return % divided by Exposure 
%
Avg. Profit/Loss - (Profit of winners + Loss of 
losers)/(number of trades)
Avg. Profit/Loss % - '(% Profit of winners + % Loss of 
losers)/(number of trades)
Avg. Bars Held - sum of bars in trades / number of 
trades
Max. trade drawdown - The largest peak to valley decline 
experienced in any single trade
Max. trade % drawdown - The largest peak to valley 
percentage decline experienced in any single trade
Max. system drawdown - The largest peak to valley decline 
experienced in portfolio equity
Max. system % drawdown - The largest peak to valley 
percentage decline experienced in portfolio equityRecovery 
Factor - Net profit divided by Max. system 
drawdownCAR/MaxDD - Compound Annual % Return divided by 
Max. system % drawdown
RAR/MaxDD - Risk Adjusted Return divided by Max. system % 
drawdown 
Profit Factor - Profit of winners divided by loss of 
losers
Payoff Ratio - Ratio average win / average 
lossStandard Error - Standard error measures chopiness 
of equity line. The lower the better.
Risk-Reward Ratio - Measure of the relation between the risk 
inherent in a trading the system compared to its potential gain. Higher is 
better. Calculated as slope of equity line (expected annual return) divided by 
its standard error.
Ulcer Index - Square root of sum of squared drawdowns 
divided by number of bars
Ulcer Performance Index - (Annual profit - Tresury notes 
profit)/Ulcer Index'>Ulcer Performance Index. Currently tresury notes profit 
is hardcoded at 5.4. In future version there will be user-setting for this.
Sharpe Ratio of trades - Measure of risk adjusted return of 
investment. Above 1.0 is good, more than 2.0 is very good. More information <A 
href="">http://www.stanford.edu/~wfsharpe/art/sr/sr.htm 
. Calculation: first average percentage return and standard deviation of returns 
is calculated. Then these two figures are annualized by multipling them by ratio 
(NumberOfBarsPerYear)/(AvgNumberOfBarsPerTrade). Then the risk free rate of 
return is subtracted (currently hard-coded 5) from annualized average return and 
then divided by annualized standard deviation of 
returns.K-Ratio - Detects inconsistency in returns. 
Should be 1.0 or more. The higher K ratio is the more consistent return you may 
expect from the system. Linear regression slope of equity line multiplied by 
square root of sum of squared deviations of bar number divided by standard error 
of equity line multiplied by square root of number of bars. More information: 
Stocks & Commodities V14:3 (115-118): Measuring System Performance by Lars 
N. Kestner
Optimization in new portfolio backtester