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

[amibroker] Re: Trend Trading System help



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/