PureBytes Links
Trading Reference Links
|
Dale,
Yes it is possible to perform optimization using for loop
inside exploration code:
Sample code follows, it runs optimization inside for loop and
reports only THE BEST
result. It should be run usign "EXPLORE". The code in fact
runs several
backtests inside 'for' loop and notes the best result and best
parameter range.
bestequity = 0<FONT
size=1>;bestrange = 0<FONT
size=1>;
// optimization loop
for( range = 12;
range < 40; range ++
){
Buy = Cross<FONT
size=1>( Close, EMA<FONT
size=1>( Close, range ) );
Sell = Cross<FONT
size=1>( EMA(
Close, range ), Close );
L<FONT face="Courier New"
size=1>e =
LastValue<FONT
face="Courier New" size=1>( <FONT color=#0000ff
size=1>Equity()
);
if( L<FONT
face="Courier New" size=1>e > bestequity )
{ bestequity =
L<FONT face="Courier New"
size=1>e; bestrange = range; }<FONT
size=1>}
range = bestrange;
Buy = Cross(
Close, EMA(
Close, range ) );
Sell = Cross(
EMA( Close, range
), Close );
Filter = <FONT
face="Courier New" color=#0000ff size=1>BarIndex<FONT face="Courier New"
size=1>() == BarCount - <FONT face="Courier New" color=#ff00ff
size=1>1;<FONT
face="Courier New" color=#0000ff size=1>
AddColumn( bestrange, <FONT
face="Courier New" color=#ff00ff size=1>"Best range"<FONT
face="Courier New" size=1> );<FONT face="Courier New" color=#0000ff
size=1>
AddColumn( <FONT
face="Courier New" color=#0000ff size=1>Equity<FONT face="Courier New"
size=1>(), "Best
Equity" );
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
dingo
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Sunday, April 13, 2003 5:20
PM
Subject: RE: AmiBroker 4.31.1 BETA
released, was [amibroker] AmiBroker 4.31.0 BETA released
<FONT face=Arial color=#0000ff
size=2>Bodacious Binary TJ!
<FONT face=Arial color=#0000ff
size=2>
<FONT face=Arial color=#0000ff
size=2>After seeing how quiet you've been these last few weeks I started
getting excited... and I was happily rewared this am when I saw your
message!
<FONT face=Arial color=#0000ff
size=2>
In
trying to get my thinking together on this: is it now possible to simulate an
optimization when running an Exploration by using the FOR construct?
What I'm trying to do is get some extra columns that contain calculated data
during an Optimization. SInce you can't use the Addcolumn in the Optimizer
I've been wondering how I might go about this using the FOR (or even the
While). If you have a few moments could you illustrate how this might be
done (if possible) using a simple example?
<FONT face=Arial color=#0000ff
size=2>
<FONT face=Arial color=#0000ff
size=2>d
<FONT face=Arial color=#0000ff
size=2>
<FONT
face=Tahoma size=2>-----Original Message-----From: Tomasz
Janeczko [mailto:amibroker@xxxxxx] Sent: Sunday, April 13, 2003
10:07 AMTo: amibroker@xxxxxxxxxxxxxxxSubject:
AmiBroker 4.31.1 BETA released, was [amibroker] AmiBroker 4.31.0 BETA
released
Hello,
A new version 4.31.1 BETA is available now
for download from:
<A
href="">http://www.amibroker.com/members/bin/ab4311beta.exe
It fixes bug introduced in 4.31.0 that caused no text
output
in commentary/interpretation window.
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
Tomasz
Janeczko
To: <A
title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Sunday, April 13, 2003 11:07
AM
Subject: [amibroker] AmiBroker 4.31.0
BETA released
Hello,
A new beta version (4.31.0) of AmiBroker has just been
released.
It is available for registered users only from the
members area at:
<A
href="">http://www.amibroker.com/members/bin/ab4310beta.exe
If you forgot your user name / password to the members
area
you can use automatic reminder service at: <A
href="">http://www.amibroker.com/login.html
This release brings huge improvement to AFL:
for and while loops
and if-else flow control statements.
Native AFL loops run 2..3 times faster than JScript
(according to my
preliminary tests on arrays with 1000-5000
bars)
For more details and example code please read the
following "READ ME" text.
NOTE: from now on all beta releases will be available to
registered
users only (in member area).
Best regards,Tomasz
Janeczkoamibroker.com
AmiBroker 4.31.0 Beta Read Me
April 13, 2003 10:38
THIS IS AN EARLY BETA VERSION OF THE SOFTWARE. EXPECT BUGS
!!!
AGAIN: THIS IS AN EARLY 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.30 first.
Just run the installer and follow the instructions.
Then run AmiBroker. You should see "AmiBroker 4.31.0 beta" written in
the About box.
CHANGES FOR
VERSION 4.31.0 (as compared to 4.30.0)
Workspace window uses "icon font" set in the Windows settings
instead of hard coded Tahoma 8
for better readability and ClearType(tm) compatibility on WinXP, all
dialog windows use now 'MS Shell Dlg' face name that maps to standard MS
Sans Serif on Win 9x/Me/NT and Tahoma on Win 2K and XP.
rewritten AFL parser, now formula is parsed and coverted to syntax
tree and then interpreted. This would allow further improvements
including compilation. This allowed also to add loops/if-else
statements.
implemented IF/ELSE statement, WHILE and FOR loops:The same
basic 'for' loop in AFL is 2..3 times faster than in JScriptSyntax
follows C++/JScript style:
while( conditional_expression ) statement;
for( initializer_part; conditional_expression; iterator_part )
statement;
if( conditional_expression ) statement;
if( conditional_expression )
statement;elsestatement;
implemented compound statements: these are blocks of statements
enclosedin opening and closing curly brace
{statement1;statement2;...statementN;}
compound statement can appear anywhere when simple statement can.
For example:
i = 10;while( i < 20 ){Plot( MA( Close, i ),
"MA" + WriteVal( i, 0 ), colorBlack + i );i = i + 1;}
implemented C-style postfix and prefix increment/decrement
operators
i = 10;WriteIf( i++ );WriteIf( ++i );WriteIf( i
);
implemented array element access (subscript) operator []:
WriteVal( Close[ 0 ] ); // prints the first bar of close
array
/* a sample low-level implementation of exponential moving
average in AFL */
myema[ 0 ] = Close[ 0 ];
for( i = 1; i < BarCount; i++ ){myema[ i ] = 0.1 *
Close[ i ] + 0.9 * myema[ i - 1 ];}
added built-in constant 'BarCount' that returns number of bars
available in arrays (the number of elements of array)When QuickAFL
is turned on it may be less than true number of bars because QuickAFL
feature attempts to use only visible bars (and few before). You can
control how many bars the formula requires using SetBarsRequired()
function
implemented infinite-loop protection. Nice if you forgot to increment
counter variable in 'for' loop :-)
tab key now works without need to press ALT/CTRL in AFL editors
added C-like synonyms for logical ADD/OR/NOT: &&, ||, !
/* a sample low-level implementation of Profit-target stop
in AFL: */
Buy = Cross( MACD(), Signal() );
priceatbuy=0;
for( i = 0; i < BarCount; i++
){ if( priceatbuy == 0 &&
Buy[ i ] ) priceatbuy = BuyPrice[ i
];
if( priceatbuy > 0 &&
SellPrice[ i ] > 1.1 * priceatbuy
) { Sell[
i ] = 1; SellPrice[ i ] =
1.1 *
priceatbuy; priceatbuy =
0; } else Sell[
i ] = 0;}
/* sample EMA rainbow */
Plot( Close, "Price", colorBlack, styleCandle );for( Range
= 15; Range < 100; Range++ ) Plot( EMA( Close,
Range ), "MA"+WriteVal(Range,0), colorRose + Range % 8, styleNoLabel
);
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 <A
href="">bugs@xxxxxxxxxxxxx
Send BUG REPORTS to
bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page:
<A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Send
BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Yahoo! Groups Sponsor
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
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
|