Thanks Dingo. Yes that's what I have done now. I've
made two small programs in
Visual Fox with following code :
AASettingsFile = "C:\\Program
Files\\AmiBroker\\Settings\\MySettings2.abs" AB
= CreateObject("Broker.Application") AA
=
AB.Analysis AA.LoadSettings(AASettingsFile)
First program with MySettings1.abs and second with
MySettings2.abs. When looking
what happens in AB when I run these programs
in VFP, I can see them switch the settings from MySettings1 to MySettings2.
So this works fine.
But this also means that if I want to do things
like this in AB, I am forced to work in a kind of batch environment. Correct ?
Or is there a way to do this in AFL by calling these programs ? After what
I have seen on the Forum the answer is no ...
Regards, Ton.
----- Original Message -----
Sent: Saturday, March 22, 2008 4:43
PM
Subject: RE: [amibroker] What's wrong
with my formula (trouble with custombacktest)
The COM stuff is also useable by external scripts and
that is when these particular functions are very useful. If you use an
external script to control AB then you CAN load the settings file and then
load the formula and then run the formula. But the way AB is written
this procedure does NOT work when you try to do the COM work inside an AFL
formula.
d
Thanks Graham. Yes I thought I knew the 'AB
Bible'. But it's telling me something else
than what AB is doing. And I just do not
understand why. In the 'AmiBroker Object Model'
document LoadSettings is a method. Even the
example in mentioned document says that
LoadSettings should set the Backtest
environment to the loaded 'abs' file. So in
my humble opinion this should do what it says
:
// Create AB object
AB =
CreateObject("Broker.Application");
// Retrieve AA object
AA = AB.Analysis; // Load Mysettings1 AA.LoadSettings("C:\Program
Files\AmiBroker\Settings\MySettings1.abs");
... setting the backtester environment to
'MySettings1.abs'. Unfortunately it's not doing that and I do not understand why not. If the manual tells me
different things than what I am seeing something is wrong. It's me of course. But why ?
I know the discussion about this
topic on the Forum. Running Loadsettings in an AFL is too late
for the rest of the AFL code. So I should run
it before the rest of the AFL. Let's say I am creating a separate AFL with just the above code and run the rest in
another AFL after that. But even this seems
to do nothing. The only thing I am getting the AA Window. That's
all. I don't get it ...
Regards, Ton.
----- Original Message -----
Sent: Saturday, March 22, 2008 10:26
AM
Subject: Re: [amibroker] What's wrong
with my formula (trouble with custombacktest)
The advanced backtest code is explained in the help files, see
Amibroker Formula Language - Advanced Porfolio Backtester
Interface. Advanced code is for changing the backtest trades,
or producing your own metrics after the main first pass (normal) backtest
is completed. (note: custom backtest and advanced backtest refer to the
same thing)
You have not shown any of this in the information
provided. All you have shown are the front end settings which are used
during the standard backtest, and are to be included in the main part of
the AFL code, not in the custom backtest part.
--
Cheers Graham Kav AFL Writing Service http://www.aflwriting.com
On 22/03/2008, Ton
Sieverding <ton.sieverding@scarlet.be>
wrote:
I don't follow Graham and of course would
like to be corrected. Are you telling me
that when starting my AFL with following
instruction, the Backtester is not accepting
these settings when running the AFL
?
AA.LoadSettings("MySettings.abs");
If the Backtester is not following this
instruction what than is the purpose of the
SAVE and LOAD feature in AA ? I have the
feeling that I can save more setting
details by using the AA Settings screen
than by loading the underneath mentioned
Settings.AFL. In other words, I my opinion
there are more settings in de AA Settings
than I will find in the Setoption instruction ... And it's a hell of a lot easier
to make an
ABS file than and Settings.AFL
...
Regards, Ton.
----- Original Message -----
Sent:
Friday, March 21, 2008 9:57 PM
Subject:
Re: [amibroker] What's wrong with my formula (trouble with
custombacktest)
These are not custom (advanced) backtest codes, just the options
for backtesting, and do not belong in the advanced file. They will not
be read until after the backtest has been completed and is ready for
changing in the cbt. If you want these standard for all
backtesting, then just use #Include function, not #include "C:\Program
Files\Amibroker1\Formulas\Custom\custom_backtest.afl"; --
Cheers Graham Kav AFL Writing Service http://www.aflwriting.com
On 22/03/2008, Ton Sieverding <ton.sieverding@scarlet.be> wrote:
Louis please go to the 'Automatic
Analysis' Tool and open the Settings. Modify all values
according to want you want to see. Then SAVE everything in an
ABS file that you can open in the beginning of your AFL. That's all
...
Regards, Ton.
-----
Original Message -----
Sent:
Friday, March 21, 2008 2:54 PM
Subject:
Re: [amibroker] What's wrong with my formula (trouble with
custombacktest)
Hi,
Ok let me try to explain again.
I have a file
with
run
= Optimize ("run", 1,1,1000,1);
SetOption("UseCustomBacktestProc",
True ); SetCustomBacktestProc(
"C:\\Program
Files\\Amibroker1\\Formulas\\Custom\\custom_backtest.afl"
);
SetOption("MaxOpenPositions",
5 ); SetOption("InitialEquity",
100000 ); SetOption("AllowPositionShrinking",
True ); SetOption ("AllowSameBarExit",
False); SetOption
("ActivateStopsImmediately", False); SetOption ("MinShares",
100); SetOption ("MinPosValue",
5000); SetOption
("PriceBoundChecking", True); SetOption ("CommissionMode",
2); SetOption ("CommissionAmount",
25); SetOption ("AccountMargin",
100); SetOption
("ReverseSignalForcesExit", True); SetOption
("UsePrevBarEquityForPosSizing", True); SetOption
("PortfolioReportMode",0 );
ShortTrades =
ParamToggle("Short Trades?","Oui|Non",1); Longtrades = ParamToggle("Long
Trades?","Oui|Non",1);
PositionScore =
Random();
buy=....; sell=.....; short=....
etc.
Then, in
c:\\Program
Files\\Amibroker1\\Formulas\\Custom\\custom_backtest.afl
I have another file with
SetOption("MaxOpenPositions",
5 ); SetOption("InitialEquity",
100000 ); SetOption("AllowPositionShrinking",
True ); SetOption ("AllowSameBarExit",
False); SetOption
("ActivateStopsImmediately", False); SetOption ("MinShares",
100); SetOption ("MinPosValue",
5000); SetOption
("PriceBoundChecking", True); SetOption ("CommissionMode",
2); SetOption ("CommissionAmount",
25); SetOption ("AccountMargin",
100); SetOption
("ReverseSignalForcesExit", True); SetOption
("UsePrevBarEquityForPosSizing", True); SetOption
("PortfolioReportMode",0 );
and when I click "backtest" nothing
happens if
SetOption("UseCustomBacktestProc",
True );
but
it works well if
SetOption("UseCustomBacktestProc",
False);
but
of course I'd prefer to use the custom
backtest.
Also, if I click the "use custom backtest"
in the AB interface and choose the first file or the second, still
nothing happens if custombacktestproc is true. It has to be
false for results to show.
Can you
help?
Thanks,
Louis
2008/3/21, Graham <kavemanperth@gmail.com>:
I do not understand what you mean by parameters. The custom
file is for the advanced backtest coding that is read after the
portfolio backtest run is complete to either change the backtest
or report special custom metrics. If all you want is input
information for the afl, then use #include
--
Cheers Graham Kav AFL Writing Service http://www.aflwriting.com
On 21/03/2008, Louis Préfontaine <rockprog80@xxxxxxcom> wrote:
Hi Graham, Yes I have the file setted as you said,
but what exactly should I put in that file? If I put
only the parameters and no rule, is it ok? Ton: I am
not sure what is AA or ABS... Louis
2008/3/19, Ton Sieverding <ton.sieverding@scarlet.be>:
Louis, why are you using all
these SetOptions when AA has the ABS facility ? Create an
ABS, load the ABS in your AFL with LoadSettings method
and you've got what you want. What's wrong with that
?
Regards, Ton.
-----
Original Message -----
Sent:
Wednesday, March 19, 2008 3:54 AM
Subject:
Re: [amibroker] What's wrong with my formula (trouble with
custombacktest)
Hi,
I don't have 4.90, so setbacktestmode does
not work...
I edited a new file with this
inside:
run = Optimize ("run",
1,1,1000,1);
SetOption("UseCustomBacktestProc",
True );
SetOption("MaxOpenPositions",
5 ); SetOption("InitialEquity",
100000 ); SetOption("AllowPositionShrinking",
True ); SetOption
("AllowSameBarExit", False); SetOption
("ActivateStopsImmediately", False); SetOption
("MinShares", 100); SetOption
("MinPosValue", 5000); SetOption
("PriceBoundChecking", True); SetOption
("CommissionMode", 2); SetOption
("CommissionAmount", 25); SetOption
("AccountMargin", 100); SetOption
("ReverseSignalForcesExit", True); SetOption
("UsePrevBarEquityForPosSizing",
True); SetOption
("PortfolioReportMode",0 );
ShortTrades =
ParamToggle("Short
Trades?","Oui|Non",1); Longtrades =
ParamToggle("Long
Trades?","Oui|Non",1);
PositionScore =
Random();
and saved it as
custom_backtest.afl at the right place.
Then I added this at the beginning of the file with
my formula:
SetOption("UseCustomBacktestProc",
True ); SetCustomBacktestProc(
"C:\\Program
Files\\Amibroker\\Formulas\\Custom\\custom_backtest.afl"
);
I don't understand why it is not
working...
Louis
2008/3/18, Graham <kavemanperth@gmail.com>:
If you set custombacktestproc as true ,
you must have a custom backtest code to
read.
you could try the function
SetBacktestMode
--
Cheers Graham Kav AFL Writing Service http://www.aflwriting.com
On 19/03/2008, Louis Préfontaine <rockprog80@xxxxxxcom>
wrote:
Hi,
My formula starts like this:
run =
Optimize ("run", 1,1,1000,1);
SetOption("UseCustomBacktestProc",
True );
SetOption("MaxOpenPositions",
5 ); SetOption("InitialEquity",
100000 ); SetOption("AllowPositionShrinking",
True ); SetOption
("AllowSameBarExit", False); SetOption
("ActivateStopsImmediately",
False); SetOption
("MinShares", 100); SetOption
("MinPosValue", 5000); SetOption
("PriceBoundChecking", True); SetOption
("CommissionMode", 2); SetOption
("CommissionAmount", 25); SetOption
("AccountMargin", 100); SetOption
("ReverseSignalForcesExit", True); SetOption
("UsePrevBarEquityForPosSizing",
True); SetOption
("PortfolioReportMode",0 );
ShortTrades =
ParamToggle("Short
Trades?","Oui|Non",1); Longtrades =
ParamToggle("Long
Trades?","Oui|Non",1);
PositionScore =
Random();
buy=................................. sell=..... etc.
Is there
something wrong with this, as when I click "backtest"
I see no results. When I change the
custombacktestproc for "false" everything works well,
but how do I do to get it my own way? Cause I'd
like to be able to be in more than one trade at a
time. And also, I think been in more than
one trade at a time could make my Monte Carlo
backtesting more reliable (am I
right?).
Thanks,
Louis
__._,_.___
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
__,_._,___
|