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

[amibroker] Re: AmiBroker 4.31.0 BETA Examples



PureBytes Links

Trading Reference Links

Thomas,

Does AB in essence have a "super-loop" per se that would apply for 
example to individual stocks when using a filter ?  

How are things like InitialEquity, Equity() & PositionSize changed 
from one stock to another when running filters like this and can we 
have access to the rest of the fields that relate to performance 
results so that we can write our own things using them ? i.e. 
InitialEquity, PositionSize etc. etc.

Thanks in advance, Fred

--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx> 
wrote:
> 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 Janeczko
> amibroker.com
>   ----- Original Message ----- 
>   From: Jayson 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Wednesday, April 16, 2003 4:34 PM
>   Subject: RE: [amibroker] AmiBroker 4.31.0 BETA Examples
> 
> 
>   "All you really need to know about new features in AFL 
>   I described in:
> 
>   http://groups.yahoo.com/group/amibroker/message/37591  "
> 
> 
>   Well, almost all........ 
> 
>   Tomasz or any one smarter than me,
> 
>   Examples certainly help. But I am still a bit lost.... from the 
post....
> 
> 
>   This example illustrates the for statement: 
>    
>   myema[ 0 ] = Close[ 0 ];
>   for( i = 1; i < BarCount; i++ )
>   {
>   myema[ i ] = 0.1 * Close[ i ] + 0.9 * myema[ i - 1 ];
> 
> 
>   myema[ 0 ] = close [0];
> 
>   Do I assume this translates to.....     myema today =close 
today ??  similar to myema=c;??
> 
>   for ( init-expression ; cond-expression ; loop-expression ) 
statement 
> 
>   init-expression= i=1;          means we start the loop with i=1?
> 
>   condition expression= i<barcount;         means do the loop as 
long as i< the current barcount (like cum(1))??
> 
>   loop expression= i++     means i+i+i  ??????????
> 
>   Could someone please convert the expression to english? 
> 
>   Tia,
> 
>   Jayson 
>   -----Original Message-----
>   From: Tomasz Janeczko [mailto:amibroker@x...]
>   Sent: Wednesday, April 16, 2003 5:53 AM
>   To: amibroker@xxxxxxxxxxxxxxx
>   Subject: 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:
> 
>   http://groups.yahoo.com/group/amibroker/message/37591
> 
> 
> 
>   Best regards,
>   Tomasz Janeczko
>   amibroker.com
>     ----- Original Message ----- 
>     From: uenal.mutlu@xxxx 
>     To: 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! 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
> 
>       ----- Original Message ----- 
>       From: Jayson 
>       To: amibroker@xxxxxxxxxxxxxxx 
>       Sent: Wednesday, April 16, 2003 6:50 AM
>       Subject: RE: [amibroker] AmiBroker 4.31.0 BETA Examples
> 
> 
>       Thank you Steve, I will see if I can locate a copy.
> 
>       Regards,
> 
>       Jayson 
>       -----Original Message-----
>       From: Steve Dugas [mailto:sjdugas@x...]
>       Sent: Tuesday, April 15, 2003 11:22 PM
>       To: amibroker@xxxxxxxxxxxxxxx
>       Subject: 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
> 
>         ----- Original Message ----- 
>         From: Jayson 
>         To: amibroker@xxxxxxxxxxxxxxx 
>         Sent: Monday, April 14, 2003 10:01 AM
>         Subject: RE: [amibroker] AmiBroker 4.31.0 BETA Examples
> 
> 
>         Thank you Tomasz. I have obviously gone from being fairly 
high on the learning curve to Newbie in just one week end :(
> 
>         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 
>         -----Original Message-----
>         From: Tomasz Janeczko [mailto:amibroker@x...]
>         Sent: Monday, April 14, 2003 3:54 AM
>         To: amibroker@xxxxxxxxxxxxxxx
>         Subject: 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 Janeczko
>         amibroker.com
>           ----- Original Message ----- 
>           From: Jayson 
>           To: amibroker@xxxxxxxxxxxxxxx 
>           Sent: Monday, April 14, 2003 7:55 AM
>           Subject: RE: [amibroker] AmiBroker 4.31.0 BETA Examples
> 
> 
>           Steve,
>           Your example makes sense yet does not seem to work for 
me. Else seems to be ignored . Using the IIF this would simply 
be ......
>           a1=iif(c>ref(c,-1),1,0);  I am certainly missing 
something here.... your input appreciated..
>           jayson
> 
> 
> 
> 
>           Jayson 
>           -----Original Message-----
>           From: Steve Dugas [mailto:sjdugas@x...]
>           Sent: Sunday, April 13, 2003 11:25 AM
>           To: amibroker@xxxxxxxxxxxxxxx
>           Subject: 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 ----- 
>             From: Tomasz Janeczko 
>             To: 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
>             (http://www.amibroker.com/library/detail.php?id=242)
> 
> 
>             Best regards,
>             Tomasz Janeczko
>             amibroker.com
>             ----- Original Message ----- 
>             From: "Ken Close" <closeks@xxxx>
>             To: <amibroker@xxxxxxxxxxxxxxx>
>             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@x...] 
>             > Sent: Sunday, April 13, 2003 9:47 AM
>             > To: 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.com
> 
> 
> 
>     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@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 ---------------------~-->
Get a FREE REFINANCE QUOTE - click here!
http://us.click.yahoo.com/2CXtTB/ca0FAA/i5gGAA/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/