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

Re: [amibroker] AmiBroker 4.31.0 BETA Examples



PureBytes Links

Trading Reference Links




Jayson,
 
I am not sure but I think you were using Tradestation 
before..
if I am correct let me explain some fundamental 
difference.
 
Tradestation is designed so there is a "super-loop" 
outside
that iterates your formula for all bars.
 
The formula in Tradestation is executed (number-of-bars) 
times.
 
AmiBroker is different because the formula is executed only 
once
(there is no hidden super-loop outside of your 
formula).
 
If you write
 
Typical = ( H + L + C )/3;
 
AmiBroker takes h, l, c arrays and adds each element to the 
arrays
to produce 'typical' array. This statement is parsed only 
once
and AmiBroker processes entire array at once.
 
The same code in Tradestaton would be wrapped in a 
'super-loop'
that iterates the same code n-times.
 
Now using newly introduced for statement in AFL we can 

'emulate' what TS does:
 
for( i = 0; i < BarCount; i++ )  
{
   Typical[ i ] = ( High[ i ] + Low[ i ] + 
Close[ i ] ) / 3;
}
 
 
The difference is that in AB you have full control over this 
loop
while in TS the outmost loop is hidden and hard-coded by TS 
developers.
 
 
 
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE 
>
  ----- Original Message ----- 
  <DIV 
  >From: 
  <A title=jcasavant@xxxxxxxxxxxx 
  href="">Jayson 
  To: <A title=amibroker@xxxxxxxxxxxxxxx 
  href="">amibroker@xxxxxxxxxxxxxxx 
  Sent: Wednesday, April 16, 2003 4:34 
  PM
  Subject: RE: [amibroker] AmiBroker 4.31.0 
  BETA Examples
  
  <FONT 
  size=2>"All you really need to know about new features in AFL 
  I described in:
   
  <FONT 
  size=2>http://groups.yahoo.com/group/amibroker/message/37591<FONT 
  face=Arial size=2>  "
  <SPAN 
  class=920470514-16042003> 
  <SPAN 
  class=920470514-16042003> 
  Well, almost 
  all........ 
  <SPAN 
  class=920470514-16042003> 
  <SPAN 
  class=920470514-16042003>Tomasz or any one smarter than 
me,
  <SPAN 
  class=920470514-16042003> 
  <SPAN 
  class=920470514-16042003>Examples certainly help. But I am still a bit 
  lost.... from the post....
  <SPAN 
  class=920470514-16042003> 
   
  This example 
  illustrates the for 
  statement: <FONT face=Arial 
  color=#ff0000 size=2> 
  myema[ 0 ] = Close[ 0 
  ];
  for( i = 1; i < BarCount; 
  i++ ){myema[ i ] = 0.1 * Close[ i ] + 0.9 * myema[ i - 1 
  ];
   
  <SPAN 
  class=920470514-16042003>myema[ 0 ] = close [0];
  <SPAN 
  class=920470514-16042003> 
  <SPAN 
  class=920470514-16042003>Do I assume this translates 
  to.....     myema today =close today ??  similar to 
  myema=c;??
  <SPAN 
  class=920470514-16042003> 
  
  for 
  ( init-expression ; cond-expression ; 
  loop-expression ) statement 
  <SPAN 
  class=920470514-16042003>init-expression= 
  i=1;          means 
  we start the loop with i=1?
  <SPAN 
  class=920470514-16042003>condition expression= 
  i<barcount;         
  means do the loop as long as i< the current barcount (like 
  cum(1))??
  <SPAN 
  class=920470514-16042003>loop expression= i++     
  means i+i+i  ??????????
  <SPAN 
  class=920470514-16042003>Could someone please convert the expression to 
  english? 
  <SPAN 
  class=920470514-16042003> 
  <SPAN 
  class=920470514-16042003>Tia,
  <SPAN 
  class=920470514-16042003> 
  Jayson 
  <FONT face=Tahoma 
  size=2>-----Original Message-----From: Tomasz Janeczko 
  [mailto:amibroker@xxxxxx]Sent: Wednesday, April 16, 2003 5:53 
  AMTo: amibroker@xxxxxxxxxxxxxxxSubject: Re: [amibroker] 
  AmiBroker 4.31.0 BETA Examples
  Hello,
   
  I fully agree. for/while/if-else + array access is 
  covered
  on 3 or 4 pages of any C/C++ book
   
  So this is actually less than 1% of entire C/C++ 
  book.
   
  So there is absolutely no need to buy/read C++ 
  book
   
  All you really need to know about new features in 
  AFL
  I described in:
   
  <A 
  href="">http://groups.yahoo.com/group/amibroker/message/37591
   
   
   
  Best regards,Tomasz Janeczkoamibroker.com
  <BLOCKQUOTE 
  >
    ----- Original Message ----- 
    <DIV 
    >From: 
    <A title=uenal.mutlu@xxxxxxxxxxx 
    href="">uenal.mutlu@xxxxxxxxxxx 
    To: <A title=amibroker@xxxxxxxxxxxxxxx 
    href="">amibroker@xxxxxxxxxxxxxxx 
    Sent: Wednesday, April 16, 2003 10:39 
    AM
    Subject: Re: [amibroker] AmiBroker 
    4.31.0 BETA Examples
    
    Hi Steve,
    C++ is definitely not required to program in 
    AFL;
    
    it would be an overkill! <FONT 
    face=Arial>C++ covers maybe 10 times 
    more stuff than AFL.
    The new stuff in AFL is easily learnt within 2 
    hours.
    Simply ask the people here. 
    UM
     
    <BLOCKQUOTE 
    >
      ----- Original Message ----- 
      <DIV 
      >From: 
      <A title=jcasavant@xxxxxxxxxxxx 
      href="">Jayson 
      To: <A 
      title=amibroker@xxxxxxxxxxxxxxx 
      href="">amibroker@xxxxxxxxxxxxxxx 
      
      Sent: Wednesday, April 16, 2003 6:50 
      AM
      Subject: RE: [amibroker] AmiBroker 
      4.31.0 BETA Examples
      
      <SPAN 
      class=082024904-16042003>Thank you Steve, I will see if I can locate a 
      copy.
      <SPAN 
      class=082024904-16042003> 
      <SPAN 
      class=082024904-16042003>Regards,
       <FONT face=Arial color=#0000ff 
      size=2>Jayson 
      <FONT face=Tahoma 
      size=2>-----Original Message-----From: Steve Dugas 
      [mailto:sjdugas@xxxxxxxxx]Sent: Tuesday, April 15, 2003 11:22 
      PMTo: <A 
      href="">amibroker@xxxxxxxxxxxxxxxSubject: 
      Re: [amibroker] AmiBroker 4.31.0 BETA Examples
      Hi Jayson,
       
      Sorry to offer the help and then not be around to follow 
      through on it. But, Monday seems to roll around almost every week these 
      days, and then its off to work again. Better for you though - TJ 
      filled in for me  : - )
       
      I'm not sure what kind of book you would like, but since 
      TJ seems to follow C++ syntax, I can recommend a C++ book that I found to 
      be very good (pretty big though - over 1000 pages). It is very thorough 
      and easy to understand - definitely geared for beginners in my opinion. It 
      is "C++ Primer Plus" by Stephen Prata. I think you could probably just 
      read up on the items you are interested in if you aren't interested in 
      learning the whole language. Be careful because it seems that there are a 
      couple of other C++ books that call themselves "primers", 
      but are definitely NOT for beginners. Especially stay away from 
      Stanley Lippman's book, at least until you have some experience (take it 
      from me....please!).
       
      Steve
       
      <BLOCKQUOTE 
      >
        ----- Original Message ----- 
        <DIV 
        >From: 
        <A title=jcasavant@xxxxxxxxxxxx 
        href="">Jayson 
        To: <A 
        title=amibroker@xxxxxxxxxxxxxxx 
        href="">amibroker@xxxxxxxxxxxxxxx 
        
        Sent: Monday, April 14, 2003 10:01 
        AM
        Subject: RE: [amibroker] AmiBroker 
        4.31.0 BETA Examples
        
        <SPAN 
        class=732395813-14042003>Thank you Tomasz. I have obviously gone from 
        being fairly high on the learning curve to Newbie in just one week end 
        :(
        <SPAN 
        class=732395813-14042003> 
        <SPAN 
        class=732395813-14042003>Could you recommend a beginner level book that 
        may help some of us get up to speed with this new upgrade? I might as 
        well be reading Japanese , but I don't want to start THAT thread again 
        :))
         Jayson 
        <FONT face=Tahoma 
        size=2>-----Original Message-----From: Tomasz Janeczko 
        [mailto:amibroker@xxxxxx]Sent: Monday, April 14, 2003 3:54 
        AMTo: amibroker@xxxxxxxxxxxxxxxSubject: Re: 
        [amibroker] AmiBroker 4.31.0 BETA Examples
        Hello,
         
        While IIF works on ARRAY,
         
        if/else works on INDIVIDUAL number/boolean (element of 
        the array).
         
        Therefore you should write either
         
        a1 = IIF( C > Ref( C, -1 ), 1, 0 );
         
        (or even: a1 = C > Ref( C, -1 );
         
        or iterate:
         
        for( i = 1; i < BarCount; i++ )
        {
           if  ( Close[ i ] > Close[ i - 1 ] 
        )
               a1[ i ] = 
        1;
           else
               a1[ i ] = 
        0;
        }
         
         
        It is important to understand that IIF is a FUNCTION 
        that works on arrays,
        while if/else is control flow STATEMENT.
        Function just evaluates all arguments and returns 
        value(s)
        Control flow statement changes program 
        flow.
         
        This is fundamental difference.
         
        Best regards,Tomasz Janeczkoamibroker.com
        <BLOCKQUOTE 
        >
          ----- Original Message ----- 
          <DIV 
          >From: 
          <A title=jcasavant@xxxxxxxxxxxx 
          href="">Jayson 
          To: <A 
          title=amibroker@xxxxxxxxxxxxxxx 
          href="">amibroker@xxxxxxxxxxxxxxx 
          
          Sent: Monday, April 14, 2003 7:55 
          AM
          Subject: RE: [amibroker] 
          AmiBroker 4.31.0 BETA Examples
          
          <SPAN 
          class=934273705-14042003>Steve,
          <SPAN 
          class=934273705-14042003>Your example makes sense yet does not seem to 
          work for me. Else seems to be ignored . Using the IIF this would 
          simply be ......
          <SPAN 
          class=934273705-14042003>a1=iif(c>ref(c,-1),1,0);  I am 
          certainly missing something here.... your input 
          appreciated..
          <SPAN 
          class=934273705-14042003>jayson
          <SPAN 
          class=934273705-14042003> 
          <SPAN 
          class=934273705-14042003><FONT face=Arial color=#0000ff 
          size=2><IMG alt="" hspace=0 
          src="gif00222.gif" align=baseline 
          border=0>
          <SPAN 
          class=934273705-14042003> 
           Jayson 
          <FONT face=Tahoma 
          size=2>-----Original Message-----From: Steve Dugas 
          [mailto:sjdugas@xxxxxxxxx]Sent: Sunday, April 13, 2003 
          11:25 AMTo: amibroker@xxxxxxxxxxxxxxxSubject: 
          Re: [amibroker] AmiBroker 4.31.0 BETA Examples
          Hi Ken,
           
          I think the concept of loops and if-then-else is the 
          same in all languages. I imagine you  could read up on 
          it at many websites (e.g. - MSDN scripting site). Once you grasp 
          the concept, it is just a matter of using AFL syntax. You would 
          probably use it mostly for iterating your arrays if you wanted to do 
          that. Here is a simple pseudo-code - try coding it in 
AFL:
           
          For (SecondBar to LastBar)
            If (Today's Close > Yesterday's 
          Close)
              MyArray = 1
            Else
              MyArray = 0
          Plot MyArray
           
          Of course, please feel free to ask for 
          help!
           
          Steve
           
          ----- Original Message ----- 
          <BLOCKQUOTE 
          >
            <DIV 
            >From: 
            Tomasz 
            Janeczko 
            To: <A 
            title=amibroker@xxxxxxxxxxxxxxx 
            href="">amibroker@xxxxxxxxxxxxxxx 
            
            Sent: Sunday, April 13, 2003 
            10:39 AM
            Subject: Re: [amibroker] 
            AmiBroker 4.31.0 BETA Examples
            
            Ken,
             
            Very nice story :-)
             
            As per your request, attached is a Parabolic SAR 
            formula 
            that I have rewritten from JScript 
            version
            (<A 
            href=""><FONT 
            size=2>http://www.amibroker.com/library/detail.php?id=242<FONT 
            size=2>)
             
             
            Best regards,Tomasz 
            Janeczkoamibroker.com
            ----- Original Message ----- 
            From: "Ken Close" <<A 
            href=""><FONT 
            size=2>closeks@xxxxxxxx>
            To: <<A 
            href=""><FONT 
            size=2>amibroker@xxxxxxxxxxxxxxx<FONT 
            size=2>>
            Sent: Sunday, April 13, 2003 4:05 PM
            Subject: RE: [amibroker] AmiBroker 4.31.0 BETA 
            Examples
            > Tomasz:> 
            > As always, you have good sound advice.  
            However......> > You say, "Here is a fast sports car, 
            very versatile and powerful.  It> has 7 forward gears, 
            but if you are a beginner, do not worry....always> stay in 
            maximum of 4th gear. Plenty of nice driving is possible in 
            4th> gear.   Wait until you become more experienced 
            before you try gears 5,> 6, and 7."> > I say, 
            "Thank you for providing such a nimble sports car, but I am in 
            a> race, and I do not think I can finish even 10th in this 
            race, until I> get out past 4th gear.  If you or others 
            would just provide some more> examples of how to use 5th and 
            6th gear, then I could more confidently> try them. Maybe even 
            copy your use of them. Then, probably, I will have> enough 
            experience to try 7th gear on my own."> > More 
            examples is all I am asking for....my objective is not to stay 
            in> 4th gear.> > Thanks,> > 
            Ken> > -----Original Message-----> From: Tomasz 
            Janeczko [mailto:amibroker@xxxxxx] > Sent: Sunday, April 13, 
            2003 9:47 AM> To: <A 
            href=""><FONT 
            size=2>amibroker@xxxxxxxxxxxxxxx> 
            Subject: Re: [amibroker] AmiBroker 4.31.0 BETA Examples> 
            > Ken,> > > First, additional kudos to 
            Tomasz for another step-jump in capability> of> > 
            Amibroker.> Thank you.> > > Second, a 
            caution, in marketing terms, of having capability that is so> 
            > hard to apply for "non-programmers", beginners, and 
            non-technical> types> > that the extra capability 
            is viewed not as an advantage or benefit,> but> > 
            just the opposite.> > The beginners don't really need 
            to jump into deep water right from> the start as AFL still 
            supports "old-way" of work.> > When you write> 
            > TypicalPrice = (H+L+C) /3;> > it still 
            operates on H, L, C arrays and produces array so no> looping 
            is needed.> > New features are added as 'extra' stuff 
            and do not> change the way old statements work.> 
            > > I apologize - but may speak for many hidden lurkers - 
            that I have just> > mastered the idea that "every AFL 
            statement only executes once", but> now> > I must 
            scramble to reorient my brain for repeated iterations thru 
            AFL> > statements.> > See above - you don't 
            need really to write loops if you don't want them.> All 
            previously written code will execute the same way as before.> 
            > Unless you use a while and/or for loop nothing has really 
            changed.> > So, you don't really need to "re-orient 
            your brain" :-)> > You can view new features as a 
            replacement of JScript/VBScript.> You may use these new 
            features only when you needed to use> scripting in previous 
            versions.> > Best regards,> Tomasz 
            Janeczko> 
      amibroker.comSend 
    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. 
  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.


Attachment: Description: ""