PureBytes Links
Trading Reference Links
|
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
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
Dave Merrill
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Tuesday, October 28, 2003 7:03
PM
Subject: RE: [amibroker]
Auto-optimization AFL uploaded
<SPAN
class=155574802-29102003>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.
<SPAN
class=155574802-29102003>
<SPAN
class=155574802-29102003>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.
<SPAN
class=155574802-29102003>
<SPAN
class=155574802-29102003>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:
<SPAN
class=155574802-29102003> StrLeft(Name(), 1) ==
"!"
<SPAN
class=155574802-29102003>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.
<SPAN
class=155574802-29102003>
<SPAN
class=155574802-29102003>hope this helps,
<SPAN
class=155574802-29102003>
<SPAN
class=155574802-29102003>dave
<BLOCKQUOTE
>It
works!!!! Making my MFI period, p1, a constant, eliminated
theerror...thanksThen, since sum() appears to take an array for
its period, I was able to getthis updated, dynamic-or-not function to
run:function BuySellPcntBMFI(dynamic, p1, p2) { // p1 = MFI period,
p2 = highcrossover 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-johnBTW, 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
singleresult row for Backtest and NO rows, just headers, for
Explore. Individualstocks do yield multiple rows.-----
Original Message ----- From: Dave MerrillTo:
amibroker@xxxxxxxxxxxxxxxSent: Tuesday, October 28, 2003 12:09
PMSubject: RE: [amibroker] Auto-optimization AFL uploadedhi
john, I don't have time right now to mess in detail w this, but
trytemporarily 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 isthat AB's BBand functions can't take arrays for their
period. if that's thecase, 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 indicatorsthat are array-capable. many of them already are,
and it would be great iflife was that kind of symetrical, not to mention
useful.daveI think i have a 'dynamic=false' situation like
your BuySellStoch. (I amusing 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-valueparameter. 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 = highcrossover 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 MerrillTo: amibroker@xxxxxxxxxxxxxxxSent: Tuesday,
October 28, 2003 8:03 AMSubject: RE: [amibroker] Auto-optimization
AFLthanks 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. amongother changes, it handles up to 3 optimization parameters, and
allows eachrule to set the optimization parameter ranges independently.
it also movesthe docs into a separate file, so the code file is smaller
and easier todeal 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 thecomments about it? I bet it's not dynamic itself that your
rule is gettinghung up on, it's the optimization parameters being arrays
when dynamic istrue.here's the section about this from the newer
version, expanded a bit fromthe original; not sure if the example
BuySell rules it mentions are exactlythe
same:--------------during optimization, the active rule is
called multiple times, once witheach combination of p1, p2 and p3 being
tested. at this time, p1, p2 and p3are simple numeric values, not
arrays. once optimal settings have beendetermined for every bar, the
rule is called once more, to generate actualtrading signals. this time,
p1, p2 and p3 are arrays, each bar dynamicallycontaining the optimal p1,
p2 and p3 value for that bar.whether they're simple values or arrays
matters because not all AB functionscan accept arrays as inputs. for
example, MA, TEMA, DEMA, WMA and AMA canuse an array as their period,
but EMA and MACD can't. it's usually possibleto code an equivalent in
AFL that can, like the included EMAx function is areplacement 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 duringoptimization. you
could also use a DLL, like indicators.dll from the 3rdparty section of
the AB site, but I didn't want this code to depend onoutside
tools.if this is an issue for a particular rule, include both slower
array-capablecode 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 anexample. you can also write a custom function
with both versions, and passdynamic into it; see BuySellCCI and CCIx for
an example.--------------hth,daveHi Dave,I
started working with it...very nice, structured, work...this will
helpfolks learn AFL as well as general programming design, I
believe..so far, i am having a bit of trouble with the 'dynamic'
True/False parameterbeing fed to one of my indicators---but i suspect
this is my problem notyours:BuySellRule(True, best_p1,
best_p2);-----------------------------------^Bad args.0-th
argument of function call has invalid (or unsupported) typeI don't
have to specifically set 'dynamic'; do
I?thanks-john----- Original Message ----- From: Dave
MerrillTo: amibroker@xxxxxxxxxxxxxxxSent: Thursday, October 23, 2003
6:32 PMSubject: RE: [amibroker] Auto-optimization AFL
uploadedthanks, appreciate it (:-).so, did you figure
out how we can all be millionaires by morning with ityet? or at least
learn something about something?you probably noticed this, but the
way it comes set up, it's not usingequity feedback to optimize with, but
net bars on the right side of themarket. my initial impression after I
built that was that it worked betterthan equity, but since then, I've
concluded that, guess what, it depends. soanyway, try the other scoring
algorithm too, if you haven't already.keep me posted
(:-).anyone else playing with this thing?daveI've
downloaded it and run it about a dozen times. What you've done is
veryimpressive.Thanks,Howard-----Original
Message-----From: Dave Merrill [mailto:dmerrill@xxxxxxx]Sent:
Wednesday, October 22, 2003 1:11 PMTo:
amibroker@xxxxxxxxxxxxxxxSubject: RE: [amibroker] Auto-optimization AFL
uploadedforgot to say it howard, but I'm very interested in what you
think about it,and any results you get from fiddling with
it.daveSend
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
ADVERTISEMENT
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.
|