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

RE: [amibroker] Auto-optimization AFL uploaded



PureBytes Links

Trading Reference Links




<SPAN 
class=879010320-28102003>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.
<SPAN 
class=879010320-28102003> 
<SPAN 
class=879010320-28102003>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.
<SPAN 
class=879010320-28102003> 
<SPAN 
class=879010320-28102003>dave
<SPAN 
class=879010320-28102003> 
<BLOCKQUOTE 
>
  I 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 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. 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.daveYahoo! Groups 
  SponsorADVERTISEMENTSend 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.htmlYour 
  use of Yahoo! Groups is subject to the 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


  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.