PureBytes Links
Trading Reference Links
|
Hi,
I re-read this to be sure I understood how it worked. My only
question is, can I import true EOD data (using the eSignal plug-in in
mixed mode) so that on any given day, all days prior to the current
are true EOD and only the current day is compressed? The reason for
this is looking for an end of day cross-over where, without accurate
EOD bars, a cross-over @, say, 3:50 PM EST can't be confirmed valid.
Also, I thought I read that a database can contain a huge number of
bars -- 500,000 -- is that correct? If so, it wouldn't seem necessary
to back up RT data collection for some time.
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx>
wrote:
> Hello,
>
> There are TWO "sides":
> - AmiBroker side
> - plugin side.
>
> AmiBroker 's 4.54+ handling of mixed mode is as follows:
> ======================================
>
> AmiBroker receives MIXED eod and intraday bars in single "file" (or
block) from the plugin. Note also that
> it can work without plugin at all, in other words - you can import
first EOD data file and then import intraday data file
> using ASCII importer and mixed mode will work too.
>
> Generally speaking daily time interval in mixed mode works so that
> 1. IF EOD data bar is available for given day then EOD bar is used
> 2. If there is no EOD data bar for given day then time-compressed
daily bar is calculated from intraday data
>
> So if BOTH exist at the same time then EOD data are taken for daily
bar
>
> Intraday time intervals work so that all EOD bars mixed in between
are removed and only true intraday data are presented.
>
> 1. See the above - EOD will have a preference (if present)
> 2. See above (there is NO way to select the database because it is
all in ONE database - the plugin combines EOD + intraday data into
single file,
> that AB 4.54 is able to handle correctly)
> 3. This works already that way (intraday interval use intraday
bars, daily time interval)
>
> Under *NO* circumstance you will get doubled EOD bars that may
occur in OLD version (4.53 and older) if you attempted to use mixed
data.
>
> PLUGIN side
> ==========
> Depending on plugin implementation the plugin may or may not
deliver EOD data bars for all days.
>
> Currently both eSignal and MarketCast plugins download EOD data
ONLY FOR THAT BARS
> that are NOT available as intraday. So for example eSignal plugin
gets EOD data only when there are NO intraday data available (i.e.
are older than last 120 days),
> so the block of data looks as follows:
>
> <10 YEARS OF EOD><LAST 120 DAYS OF INTRADAY>
>
> and after setting interval to daily it would look like this:
> <10 YEARS OF EOD><120 DAYS TIME COMPRESSED>
>
> The other possibility (NOT implemented as of now) is that plugin
delivers EOD bars for ALL days:
>
> <10 YEARS OF EOD><120 EOD mixed with 120 days of INTRADAY>
>
> and after setting interval to daily it would look like this:
> <10 YEARS OF EOD><120 DAYS EOD>
>
>
> AmiBroker 4.54 handles BOTH cases but current plugins implement
just case 1.
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: Herman van den Bergen
> To: amibroker@xxxxxxxxxxxxxxx
> Sent: Wednesday, April 28, 2004 9:32 PM
> Subject: RE: [amibroker] AmiBroker 4.54.0 BETA released - Thanks!
>
>
> Thank you very much Tomasz, to be able to access both types of
data is just great. Your work is much appreciated!!
>
> Perhaps my questions/desires are a bit premature... but could you
explain to what extend we can use this. For example:
>
> 1) When we run a back test set to Daily periodicity, will the
back tester use EOD or RT data? ...Will a choice be possible at some
point?
>
> 2) When using TimeFrames, will using TimeFrameSet(inDaily) use
the EOD db and TimeFrameSet(in1Minute) use the RT db? ...Will a
DataBaseSet(EOD) and DataBaseSet(RT) be available at some point?
>
> 3) If possible at this stage, how would we code to run the first
part of the system in EOD, for example to calculate Timing signals
and Scores, and then switch to 1-Minute data to process intraday
entries/exits?
>
> TIA,
> herman.
> -----Original Message-----
> From: Tomasz Janeczko [mailto:amibroker@x...]
> Sent: Wednesday, April 28, 2004 2:23 PM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] AmiBroker 4.54.0 BETA released
>
>
>
> Hello,
>
> A new beta version (4.54.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/ab4540beta.exe
> and
> http://www.amibroker.net/members/bin/ab4540beta.exe
>
> (File size: 770 408 bytes, 770 KB)
>
> 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 below and in the "ReadMe" file
> ( Help->Read Me menu from AmiBroker )
>
> The highlight of this version is mixed EOD/intraday mode that
allows
> working with very long EOD histories and intraday data in
single database
> (there is no longer the need to run two instances for that).
Currently this mode is supported
> by eSignal and Market Cast plugins only.
>
> The archive comes with updated versions of eSignal (1.7.0) and
MarketCast (1.1.0)
> plugins both featuring support for new mixed EOD/Intraday mode.
>
> To create database with new mixed mode you have to go to
> File->New database and create it as usual, but later click
on "Intraday Settings" button
> and make sure that "Allow mixed intraday/EOD" box is checked.
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> AmiBroker 4.54.0 Beta Read Me
> April 28, 2004 20:08
>
> 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.50 first.
>
> Just run the installer and follow the instructions.
>
> Then run AmiBroker. You should see "AmiBroker 4.54.0 beta"
written in the About box.
>
> Many thanks to all providing detailed descriptions how to
reproduce given bug.
>
>
> See CHANGE LOG below for detailed list of changes.
>
> CHANGE LOG
>
> CHANGES FOR VERSION 4.54.0 (as compared to 4.53.1)
>
> a.. "Allow mixed EOD/intraday data" mode added (controllable
from File->Database Settings->Intraday, checkbox with the same name)
it allows to work with database that has a mixture of intraday and
EOD data in one data file. If this is turned on then in intraday
modes EOD bars are removed on-the-fly and in daily mode EOD bars are
displayed instead of time compressed intraday or if there is no EOD
bar for corresponding day then intraday bars are compressed as usual.
> This mode works in conjunction with new versions of plugins
that allow mixed data. Mixed mode is now supported by MarketCast
plugin (1.1 or higher)(Australia) and eSignal plugin (1.7.0 or
higher) only.
>
> Mixed mode allows intraday plus very long daily histories in
one database.
>
> Note that this is EXPERIMENTAL feature.
>
> b.. Real-Time quote window enhanced
> Now only fields that are changed change the background
to 'yellow' and if the value in given field increases then it is
displayed in green if decreases then is displayed in red. This allows
easy identification of movement.
>
> c.. all strings in the program moved to resources for easy
localization
>
> d.. fixed problem with SetForeign()+FullName() returning
symbol instead of full name of foreign security.
>
> e.. added new AFL function IsContinuous() to check
if "continuous" flag is turned on in Symbol->Information window
>
> f.. OLE properties can be retrieved (DISPATCH_PROPERTYGET)
directly from AFL now using parameterless function syntax. This
allows reading values exposed by OLE automation directly from AFL
code. Example:
>
> AB = CreateObject("Broker.Application");
> Stocks = AB.Stocks(); // get collection
> Stock = Stocks.Item( Name() ); // currently selected
>
> "FullName : " + Stock.FullName();
> "Alias : " + Stock.Alias();
> "Address : " + Stock.Address();
> "Shares: " + Stock.Issue();
> "Book value: " + Stock.BookValue();
> "Market : " + Stock.MarketID();
> "WebID : " + Stock.WebID();
>
> You can check if OLE object is valid by calling IsNull()
function, example:
>
> AB = CreateObject("Broker.Application");
> Stocks = AB.Stocks(); // get collection
> Stock = Stocks.Item( "INTC" );
>
> if( IsNull( Stock ) )
> {
> printf("COM object invalid (Null) - symbol does not
exist\n");
> }
> else
> {
> printf("COM object valid - you can access its methods\n");
> }
>
> g.. IsEmpty/IsNull and IsTrue functions operate with scalars
and OLE dispatches without upsizing them to array
>
>
> CHANGES FOR VERSION 4.53.1 (as compared to 4.53.0)
>
> a.. addressed problem with broker.layers file. Now version
4.53.1 correctly reads broker.layers file saved with older versions
however note that old versions are not compatible with new format.
> b.. layer properties dialog provides more comfortable setting
of layer visibility
> c.. other minor fixes
>
> CHANGES FOR VERSION 4.53.0 (as compared to 4.52.0)
>
> a.. per-group intraday settings (filtering/daily compression)
Use Symbol->Categories: "GROUP" -> Use own intraday settings, click
> on "Intraday settings" button to define intraday settings
specific to given group.
>
> b.. intraday settings now allow to specify separate day (RTH)
and night (ETH) sessions
>
> c.. time filtering now allows to display:
> a) 24 hours trading (no filtering)
> b) day session only
> c) night session only
> d) day and night sessions only
>
> d.. new intraday time compression mode: Day/Night - shows two
bars (day and night) per day
>
> e.. daily compression can be now based on
> a) exchange time (available since 4.00)
> b) local time (available since 4.50)
> c) day/night session times definable by the user (new)
>
> f.. when "activatestopsimmediately" is turned ON then cash
from stopped out positions is NOT available to enter trades the same
day
>
> g.. easy access to selected category settings from Symbol-
>Information window.
>
> h.. Workspace tree supports in-place editing of market,
group, sector, industry and watch list names. Single click on
category name and just enter the name
>
> CHANGES FOR VERSION 4.52.0 (as compared to 4.51.1)
>
> a.. fixed problem with fixup=0 and handling multiple data
holes in a row
>
> b.. added new commands to ASCII format definitions:
> $MINTICKERLEN <number> - defines minimum accepted length of
the ticker symbol
> $MAXTICKERLEN <number> - defines maximum accepted length of
the ticker symbol
> For example ASX users may wish to use
> $MAXTICKERLEN 3
> to make sure that ASCII importer accepts only symbols that
have no more than 3 characters (this excludes ASX options and
warrants)
>
> c.. fixed problem with incorrect very first value of the
array returned by variable-period version of HHV/LLV
>
> d.. fixed Procedure/function parameter overwrite issue when
using built-in price arrays and variable overwrite issue
>
> e.. memory allocated for return value is marked for earlier
freeing so calling user-defined functions inside loops should consume
less memory
>
> f.. Interval() function enhanced. Now accepts format
parameter:
> Interval( format = 0 );
> possible values:
> format = 0 - returns bar interval in seconds
> format = 1 - as above plus TICK bar intervals are returned
with negative sign
> so Interval() function applied to 10 tick chart will return -
10
> format = 2 - returns STRING with name of interval such
as "weekly/monthly/daily/hourly/15-minute/5-tick"
>
> g.. vertical quote selection line in linked windows is now
independent
>
> h.. changing "same day stops" via SetOption
("ActivateStopsImmediately") in portfolio backtest mode has an effect
now (previously reacted only on manual settings)
>
> i.. SetOption("CommissionMode", mode ) works now in portfolio
mode too (previously worked
> in old backtest mode only)
>
> j.. SetOption("CommissionAmount", amount ) works now in
portfolio mode too (previously worked
> in old backtest mode only)
>
> k.. $SEPARATOR command in ASCII importer definitions now
allows to import files that have fields separated by more than one
separator characters Separator string (array of characters) must be
enclosed in quotation marks. If there is only one separator character
(as in old versions) then quotation marks are needed.
> For example files with joined date and time
>
> $SEPARATOR ", "
> $FORMAT DATE_YMD,TIME,OPEN,HIGH,LOW,CLOSE
>
> will be able to import file like this:
> 2004-02-04 12:30,3.41,3.44,3.40,3.42
> (note date and time field are separated by space not by comma)
>
> l.. Import wizard now supports new separators 'comma or
space', 'semicolon or space' and 'tab or space'
>
> m.. ASCII importer and Quote Editor properly
> distinguish records with time specified as 00:00:00 from EOD
records (without time)
>
>
> CHANGES FOR VERSION 4.51.1 (as compared to 4.51.0)
>
> a.. OLE interface methods numbering adjusted to maintain
backward compatibility with previous versions and other programs
referring to old OLE interface
>
> CHANGES FOR VERSION 4.51.0 (as compared to 4.50.10)
>
> a.. OLE automation interface changes:
> Analysis.Backtest and Analysis.Optimize now support
new "Type" parameter.
> Type can be one of the following values:
> 0 : portfolio backtest/optimize
> 1 : individual backtest/optimize
> 2 : old backtest/optimize
>
> For backward compatibility Type parameter is optional and
defaults to 2
> (old backtest/optimize)
>
> Example code:
>
> AB = new ActiveXObject("Broker.Application");
> AB.Analysis.Backtest( 0 ); // perform portfolio backtest
> AB.Analysis.Optimize( 0 ); // perform portfolio optimize
>
> b.. OLE automation interface new object: "Commentary"
>
> This object has 5 methods:
> - BOOL LoadFormula( STRING pszFileName ) - loads the formula
> - BOOL SaveFormula( STRING pszFileName ) - saves the formula
> - void Apply() - displays the commentary
> - BOOL Save( STRING pszFileName ); - saves commentary output
(result) to the file (use after call to Apply())
> - void Close() - closes the commentary window
>
> Commentary object is accessible from Broker.Application
object via Commentary property:
>
> Example code:
>
> AB = new ActiveXObject("Broker.Application");
> AB.Commentary.LoadFormula("C:\\Program
Files\\AmiBroker\\AFL\\MACD_c.afl");
> AB.Commentary.Apply();
> AB.Commentary.Save("Test.txt");
> AB.Commentary.SaveFormula("MACDTest.afl");
> //AB.Commentary.Close();
>
> c.. AFL function Now( format = 0 ) accepts new parameter
values
>
> Returns current date / time in numerous of formats:
> // formats supported by old versions
> format = 0 - returns string containing current date/time
formatted according to system settings
> format = 1 - returns string containing current date only
formatted according to system settings
> format = 2 - returns string containing current time only
formatted according to system settings
> format = 3 - returns DATENUM number with current date
> format = 4 - returns TIMENUM number with current time
> format = 5 - returns DATETIME number with current date/time
> // new formats available from version 4.51
> format = 6 - returns current DAY (1..31)
> format = 7 - returns current MONTH (1..12)
> format = 8 - returns current YEAR (four digit)
> format = 9 - returns current DAY OF WEEK (1..7, where
1=Sunday, 2=Monday, and so on)
> format = 10 - returns current DAY OF YEAR (1..366)
>
> d.. Custom indicators:
> If plot name is empty the value of such plot does not appear
in the title
> and does not appear in the data tool tip
>
> Plot( C, "Price", colorWhite, styleCandle );
> Plot( MA( C, 10 ), "", colorRed ); // NOTE that this plot
name/value will NOT appear in the title
> Plot( MA( C, 20 ), "MA20", colorGreen );
>
> e.. SetOption( "field", value )
> accepts new fields:
> "CommissionMode" -
> 0 - use portfolio manager commission table
> 1 - percent of trade
> 2 - $ per trade
> 3 - $ per share/contract
>
> "CommissionAmount" - amount of commission in modes 1..3
>
> "MarginRequirement" - account margin requirement (as in
settings), 100 = no margin
>
> "ReverseSignalForcesExit" - reverse entry signal forces exit
of existing trade (default = True )
>
> f.. new AFL function: GetOption( "field" ) - retrieves the
settings, accepted fields the same as in SetOption.
>
> Example:
>
> PositionSize = -100 / GetOption("MaxOpenPositions");
>
> g.. new AFL function: GetRTData( "field" )
> - retrieves the LAST (the most recent) value of the following
fields
> reported by streaming real time data source )
> (Note 1: this function is available ONLY in PROFESSIONAL
edition,
> calling it using Standard edition will give you NULL values
for all fields)
> (Note 2: works only if data source uses real time data source
(plugin) )
> (Note 3: availablity of data depends on underlying data source
> - check the real-time quote window to see if given field is
available )
> (Note 4: function result represents the current value at the
time of the call
> /formula execution/, and they will be refreshed depending on
chart or commentary refresh interval
> /settable in preferences/. Built-in real time quote window is
refreshed
> way more often (at least 10 times per second) )
>
> Supported fields:
> "Ask" - current best ask price
> "AskSize " - current ask size
> "Bid" - current best bid price
> "BidSize " - current bid size
> "52WeekHigh" - 52 week high value
> "52WeekHighDate" - 52 week high date (in datenum format)
> "52WeekLow" - 52 week low value
> "52WeekLowDate" - 52 week low date (in datenum format)
> "Change" - change since yesterdays close
> "Dividend" - last dividend value
> "DivYield" - dividend yield
> "EPS" - earnings per share
> "High" - current day's high price
> "Low" - current day's low price
> "Open" - current day's open price
> "Last" - last trade price
> "OpenInt" - current open interest
> "Prev" - previous day close
> "TotalVolume" - total today's volume
> "TradeVolume" - last trade volume
> "ChangeDate" - datenum (YYYMMDD) of last data change
> "ChangeTime" - timenum (HHMMSS) of last data change
> "UpdateDate" - datenum (YYYMMDD) of last data update
> "UpdateTime" - timenum (HHMMSS) of last data update
> "Shares" - total number of shares
>
> Example:
> "Bid = "+GetRTData("Bid");
> "Ask = "+GetRTData("Ask");
> "Last = "+GetRTData("Last");
> "Vol = "+GetRTData("TradeVolume");
>
> "EPS = "+GetRTData("EPS");
> "52week high = "+GetRTData("52weekhigh");
>
> h.. Custom indicators:
> Default names and graph values appear in the title
> when using old-style graph0, graph1, graph2 statements in the
custom indicators
>
>
> HOW TO REPORT BUGS
>
> If you experience any problem with this beta version please
send detailed description of the problem (especially the steps needed
to reproduce it) to bugs at amibroker.com
>
>
>
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to:
amiquote@xxxxxxxxxxxxxxx
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html
>
>
>
>
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to:
amiquote@xxxxxxxxxxxxxxx
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html
>
>
>
> --------------------------------------------------------------------
--------
> Yahoo! Groups Links
>
> a.. To visit your group on the web, go to:
> http://groups.yahoo.com/group/amibroker/
>
> b.. To unsubscribe from this group, send an email to:
> amibroker-unsubscribe@xxxxxxxxxxxxxxx
>
> c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms
of Service.
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|