PureBytes Links
Trading Reference Links
|
Hi, Stephane,
A propos same book, "The Ultimate Trading Guide" by Hill, Pruitt, Hill, -
Wiley, have you made good use of it?
Do you know of anyone who uses "Drummond Geometry" ?
Herbert
----- Original Message -----
From: "Stephane Carrasset" <nenapacwanfr@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Thursday, October 30, 2003 2:19 AM
Subject: [amibroker] Re: Auto-optimization AFL uploaded
> Hello,
>
> I have read nearly one meter of books and I remember one " the
> ultimate trading guide". it backtests p 216 a simple donchian system
> that is reoptimized on a rolling 2 years basis, the results were
> worst than static parameters and the conclusion was that
> reoptimization does not work...
>
> stephane
>
>
> wrote:
> > re the bug, you're correct, thanks. I don't specifically remember
> fixing it,
> > but it's wrong as you found in v1, but corrected in the unreleased
> v1.1.
> >
> > re the possibility that profitability isn't great because
> optimization
> > happens too often, you got that you can control how often that gets
> done,
> > right? in the framework configuration section,
> equity_lookback_frequency is
> > the number of bars between optimizations, with 0 meaning every day
> and -1
> > meaning optimize once at the beginning.
> >
> >
> > re other reasons why this doesn't make systems profitable, well,
> that's a
> > very very very interesting question, one I've thought and posted
> about a
> > lot.
> >
> > I don't see any huge difference in principle between auto-
> optimization and
> > backtesting in general. when we say some strategy works well, we
> generally
> > mean that someone backtested it at some point in time, with some
> particular
> > set of parameters, and it worked well. if another person hears
> about it 25
> > years later, and backtests with data going up to that much later
> date, they
> > may get very different optimal parameters, or a completely failing
> result
> > with any settings. so our evaluation of systems and their
> parameters is
> > always dependent on the time frame we chose to examine.
> >
> > if that's the case, it seems to me that a robust system should be
> > optimizable at any given point in time, and be successful going
> forward with
> > those best-choice parameters. re-optimizing every day takes that to
> an
> > extreme, but avoids completely arbitrary decisions about when to
> optimize
> > and when not to. every week? month? year? every saturday? every
> january 1?
> > june 22? what possible justification is there for any of these? to
> put it
> > differently, why does ignoring possible changes in market dynamics
> in
> > between optimizations improve the performance or reliability of a
> system?
> >
> > outside of when you choose to optimize, it fundamentally comes down
> to
> > whether past performance predicts future performance or not. if
> > auto-optimization fails as a concept, doesn't that say that there's
> a basic
> > disconnect between how a system and settings performed in the past
> and how
> > it does in the future? if that's true, why do we believe that any
> backtest
> > results tell us anything useful at all?
> >
> > one possible answer is that raw profitability may not be the best
> predictor
> > of future performance, so we need better metrics to judge past
> performance
> > than simple equity growth. the framework comes with two rules for
> scoring
> > performance during optimization, and you're heartily encouraged to
> edit
> > those or add your own.
> >
> >
> > if I really believed that observing past performance told us
> nothing about
> > the future, I'd have to abandon TA completely and look to
> fundamentals,
> > industry news and knowledge, etc for trading strategy. I haven't
> gone that
> > far obviously, but I'm at a loss to explain away the argument I've
> just
> > given. better performance metrics are the only logical avenue I can
> see out
> > of that dead end.
> >
> > I don't mean to sound like I think I've got this all figured out,
> quite the
> > opposite. I feel like I've disproved my own existence or something,
> proved
> > the impossible. so please, somebody, wise me up!
> >
> > dave
> > update:
> >
> > I have attached a file with my settings and results by rule.
> (Again, I
> > used
> > QQQ daily data for from 1/2/3 to 10/28/3.)
> >
> > I agree with your statement: '...almost no trading rules I've
> tested are
> > very profitable when managed this way, with any framework
> settings I've
> > tried...'
> >
> > So, I wonder what this means? Perhaps the optimization happens too
> > frequently?
> >
> > -john
> >
> > Also I found a possible bug in BuySellStochCCI. I added the
> second line
> > below:
> >
> > function BuySellStochCCI(dynamic, p1, p2) { // p1 = CCI period
> > period=p1; //added this to Dave's code
> > cc = CCIx(period);
> > cc = StochTransform(cc, period);
> > Buy = Cover = Cross(cc, 50);
> > Sell = Short = Cross(50, cc);
> > }
> >
> >
> >
> > ----- Original Message -----
> > From: john gibb
> > To: amibroker@xxxxxxxxxxxxxxx
> > Sent: Wednesday, October 29, 2003 10:33 AM
> > Subject: Re: [amibroker] Auto-optimization AFL uploaded
> >
> >
> > I assume by 'analysis mode' you mean Scan mode; right?
> >
> > And, yes, the Index Symbols below have no
> Buys/Sells/Shorts/Covers with
> > 'my'
> > rule in Scan mode, although they do have volume...
> >
> > Since it seems to be working, I am now wondering what my next
> step should
> > be, given my ultimate objective of a QQQ options system that uses
> EOD
> > data.
> > I welcome your inputs on this, but I think I will first take
> advantage of
> > all the rules you have provided and compare, via the sum of
> BackTest
> > Profit,
> > their QQQ results with those of my rule. (And I will also record
> Explore
> > results so I can see the optimum parameter values, although I am
> not clear
> > on how to best utilize these results yet.)
> >
> > thanks again
> >
> > -john
> > ----- Original Message -----
> > From: Dave Merrill
> > To: amibroker@xxxxxxxxxxxxxxx
> > Sent: Tuesday, October 28, 2003 7:03 PM
> > Subject: RE: [amibroker] Auto-optimization AFL uploaded
> >
> >
> > glad it's working. it's too bad the no-array limitations on the
> native AB
> > functions make us get a little more techie about this than we'd
> otherwise
> > have to, it's workable.
> >
> > re no rows, near the bottom is the exploration code, including
> the filter
> > statement, which I think defaults to buy or sell or short or
> cover. if
> > that's what you want, then the problem is probably that you're
> not seeing
> > any buys, in analysis mode either, yes? if so, make sure the
> index tickers
> > you're using have volume data (some do some don't in the
> QuotesPlus data I
> > use), or modify the minimum volume requirement in the TRADE ENTRY
> > RESTRICTIONS section.
> >
> > that's actually the sleazy answer. a better one is to look in the
> > FRAMEWORK
> > ENGINE section, at 'tweak volume entry requirements for things
> with no
> > volume data', and find this expression:
> > StrLeft(Name(), 1) == "!"
> > with my QuotesPlus data, that's how indexes are flagged, by
> having their
> > ticker names begin with "!". with other providers, it's probably
> > different;
> > I think yahoo is "^", for example. change that code, and anything
> with
> > that
> > prefix won't be subject to the minimum volume rule in TRADE ENTRY
> > RESTRICTIONS. the unreleased update of the framework has a better
> way of
> > handling this.
> >
> > hope this helps,
> >
> > dave
> > It works!!!! Making my MFI period, p1, a constant, eliminated the
> > error...thanks
> >
> > Then, since sum() appears to take an array for its period, I was
> able to
> > get
> > this updated, dynamic-or-not function to run:
> >
> > function BuySellPcntBMFI(dynamic, p1, p2) { // p1 = MFI period,
> p2 = high
> > crossover threshhold
> > price = Close;
> > BA = 20; //Bband MA
> > BD = 2;//Bband Stdev
> > BL = ML = 20;// lower crossover threshhold
> > MP = p1;// MFI period
> > if(dynamic) {
> > MoneyFlow = V * Avg;
> > Change = Avg - Ref( Avg, -1 );
> > PositiveFlow=Sum( IIf( Change > 0, MoneyFlow, 0 ) ,p1 );
> > NegativeFlow=Sum( IIf( Change < 0, MoneyFlow, 0 ) ,p1 );
> > MoneyRatio=PositiveFlow/NegativeFlow;
> > MFIndex=100-(100/(1+MoneyRatio));
> > } else {
> > MFIndex=MFI(MP);
> > }
> > MH = BH = p2;// higher crossover threshhold
> > b= ((price - BBandBot( price, BA, BD )) / (BBandTop( price,
> BA, BD ) -
> > BBandBot(price, BA, BD ))) * 100;
> > Buy = Cover = b > BH AND MFIndex > MH;
> > Sell = Short = b < BL AND MFIndex < ML;
> > }
> >
> > thanks again
> >
> > -john
> >
> > BTW, when I use 1990-to-current EOD data for MSN's $COMPX or
> Yahoo's ^IXIC
> > (both supposedly the NASDAQ composite) as my 'current stock', i
> get a
> > single
> > result row for Backtest and NO rows, just headers, for Explore.
> > Individual
> > stocks do yield multiple rows.
> >
> >
> > ----- Original Message -----
> > From: Dave Merrill
> > To: amibroker@xxxxxxxxxxxxxxx
> > Sent: Tuesday, October 28, 2003 12:09 PM
> > Subject: RE: [amibroker] Auto-optimization AFL uploaded
> >
> >
> > hi john, I don't have time right now to mess in detail w this,
> but try
> > temporarily replacing p2 with a fixed number and see if the error
> goes
> > away.
> > it won't give you correct results, but might verify my suspicion,
> which is
> > that AB's BBand functions can't take arrays for their period. if
> that's
> > the
> > case, you'd need to code a replacement in AFL that can, or if
> we're lucky,
> > maybe those functions are part of indicators.dll.
> >
> > I hope that some day soon, we'll get versions of all built in AB
> > indicators
> > that are array-capable. many of them already are, and it would be
> great if
> > life was that kind of symetrical, not to mention useful.
> >
> > dave
> >
> > I think i have a 'dynamic=false' situation like your
> BuySellStoch. (I am
> > using p1 as the number of periods for MFI() and assume that this
> > "mfi(periods=14)" syntax in Help means that MFI can take only a
> > single-value
> > parameter. And p2 is a single-value crossover threshold for
> Bollinger's
> > %b.)
> >
> > FWIW, here is my rule code producing the error:
> >
> > function BuySellPcntBMFI(dynamic, p1, p2) { // p1 = MFI period,
> p2 = high
> > crossover threshhold
> > price = Close;
> > BA = 20; //Bband MA
> > BD = 2;//Bband Stdev
> > BL = ML = 20;// lower crossover threshhold
> > MP = p1;// MFI period
> > MH = BH = p2;// higher crossover threshhold
> > //b is Bollinger's %b
> > b = ((price - BBandBot( price, BA, BD )) / (BBandTop( price,
> BA,
> > BD ) -
> > BBandBot(price, BA, BD ))) * 100;
> > Buy = Cover = b > BH AND MFI(MP) > MH;
> > Sell = Short = b < BL AND MFI(MP) < ML;
> > }
> >
> > TIA,
> >
> > -john
> >
> > ----- Original Message -----
> > From: Dave Merrill
> > To: amibroker@xxxxxxxxxxxxxxx
> > Sent: Tuesday, October 28, 2003 8:03 AM
> > Subject: RE: [amibroker] Auto-optimization AFL
> >
> >
> > thanks for the compliments, glad it's kind of sane in there (:-).
> >
> > just FYI, there's a new version of this that I haven't posted
> yet. among
> > other changes, it handles up to 3 optimization parameters, and
> allows each
> > rule to set the optimization parameter ranges independently. it
> also moves
> > the docs into a separate file, so the code file is smaller and
> easier to
> > deal with. I'll get that up as soon as I can finish it off.
> >
> > no, you don't have to set dynamic yourself, and shouldn't. did
> you read
> > the
> > comments about it? I bet it's not dynamic itself that your rule
> is getting
> > hung up on, it's the optimization parameters being arrays when
> dynamic is
> > true.
> >
> > here's the section about this from the newer version, expanded a
> bit from
> > the original; not sure if the example BuySell rules it mentions
> are
> > exactly
> > the same:
> >
> > --------------
> > during optimization, the active rule is called multiple times,
> once with
> > each combination of p1, p2 and p3 being tested. at this time, p1,
> p2 and
> > p3
> > are simple numeric values, not arrays. once optimal settings have
> been
> > determined for every bar, the rule is called once more, to
> generate actual
> > trading signals. this time, p1, p2 and p3 are arrays, each bar
> dynamically
> > containing the optimal p1, p2 and p3 value for that bar.
> >
> > whether they're simple values or arrays matters because not all AB
> > functions
> > can accept arrays as inputs. for example, MA, TEMA, DEMA, WMA and
> AMA can
> > use an array as their period, but EMA and MACD can't. it's usually
> > possible
> > to code an equivalent in AFL that can, like the included EMAx
> function is
> > a
> > replacement for EMA. an AFL replacement may be significantly
> slower
> > though,
> > if it has to do a lot of work, since rules are called many times
> during
> > optimization. you could also use a DLL, like indicators.dll from
> the 3rd
> > party section of the AB site, but I didn't want this code to
> depend on
> > outside tools.
> >
> > if this is an issue for a particular rule, include both slower
> > array-capable
> > code for use in the final signal-generation phase, and faster,
> > non-array-capable code for use during the many optimization
> tries. use the
> > 'dynamic' parameter to know which to call; see BuySellStoch,
> below, for an
> > example. you can also write a custom function with both versions,
> and pass
> > dynamic into it; see BuySellCCI and CCIx for an example.
> > --------------
> >
> > hth,
> >
> > dave
> > Hi Dave,
> >
> > I started working with it...very nice, structured, work...this
> will help
> > folks learn AFL as well as general programming design, I believe..
> >
> > so far, i am having a bit of trouble with the 'dynamic' True/False
> > parameter
> > being fed to one of my indicators---but i suspect this is my
> problem not
> > yours:
> >
> > BuySellRule(True, best_p1, best_p2);
> > -----------------------------------^
> >
> > Bad args.
> > 0-th argument of function call has invalid (or unsupported) type
> >
> > I don't have to specifically set 'dynamic'; do I?
> >
> > thanks
> >
> > -john
> > ----- Original Message -----
> > From: Dave Merrill
> > To: amibroker@xxxxxxxxxxxxxxx
> > Sent: Thursday, October 23, 2003 6:32 PM
> > Subject: RE: [amibroker] Auto-optimization AFL uploaded
> >
> >
> > thanks, appreciate it (:-).
> >
> > so, did you figure out how we can all be millionaires by morning
> with it
> > yet? or at least learn something about something?
> >
> > you probably noticed this, but the way it comes set up, it's not
> using
> > equity feedback to optimize with, but net bars on the right side
> of the
> > market. my initial impression after I built that was that it
> worked better
> > than equity, but since then, I've concluded that, guess what, it
> depends.
> > so
> > anyway, try the other scoring algorithm too, if you haven't
> already.
> >
> > keep me posted (:-).
> >
> > anyone else playing with this thing?
> >
> > dave
> > I've downloaded it and run it about a dozen times. What you've
> done is
> > very
> > impressive.
> >
> > Thanks,
> > Howard
> >
> > -----Original Message-----
> > From: Dave Merrill [mailto:dmerrill@x...]
> > Sent: Wednesday, October 22, 2003 1:11 PM
> > To: amibroker@xxxxxxxxxxxxxxx
> > Subject: RE: [amibroker] Auto-optimization AFL uploaded
> >
> > forgot to say it howard, but I'm very interested in what you
> think about
> > it,
> > and any results you get from fiddling with it.
> >
> > dave
> >
> >
> > 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
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service.
> >
> >
> > Yahoo! Groups Sponsor
> > ADVERTISEMENT
> >
> >
> >
> >
> > 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
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service.
> >
> > Yahoo! Groups Sponsor
> >
> >
> >
> > 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
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service.
>
>
>
> 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 http://docs.yahoo.com/info/terms/
>
>
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Rent DVDs Online - Over 14,500 titles.
No Late Fees & Free Shipping.
Try Netflix for FREE!
http://us.click.yahoo.com/vhSowB/XP.FAA/3jkFAA/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
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
|