PureBytes Links
Trading Reference Links
|
Allan,
Writing loops offers ultimate control. For the rare case that array processing is unable to do the job, loops are the only alternative.
For developers accustomed to languages such as C, C++, Java, etc. loops are also more familiar than working with arrays. However, AFL is built upon array processing and choosing an array based solution will almost always be faster than a looping version.
That being said, I believe that the looping example that you quote was written by Tomasz. As such, there almost certainly is some subtlety of the particular example that could not be done using arrays. Or perhaps an array implementation would have involved too much indirection as to be overly confusing.
Generally speaking, the vast majority of looping code can be replaced by use of Flip, ExRem, ValueWhen. The one exception is when later elements of an array are dependent upon previous elements of that same array. Even then, AMA and AMA2 can often handle it.
In the end, what's most important is that you understand the code. So, go with whichever approach that you find most natural, while still accomplishing the task at hand.
Mike
--- In amibroker@xxxxxxxxxxxxxxx, "matrix10014" <allansn@xxx> wrote:
>
> Thank you Mike..
>
> I do have a couple of questions.Amibroker gives an example of scaling out of trades and uses code such as the following snippet.
>
> -------------------------------------------
> priceatbuy=0;
> highsincebuy = 0;
>
> exit = 0;
>
> for( i = 0; i < BarCount; i++ )
> {
> if( priceatbuy == 0 AND Buy[ i ] )
> {
> priceatbuy = BuyPrice[ i ];
> }
>
> if( priceatbuy > 0 )
> {
> -------------------------------------------
>
> I have a better chance of running a 3 minute mile than coding something like that.I noticed in the examples you sent me,the code was more digestable..Here is a snippet of what you sent
>
> ------------------------------------------------------------------
> "Buy = firstTrigger + (secondTrigger * sigScaleIn) + (thirdTrigger * sigScaleIn)
> + (fourthTrigger * sigScaleIn);
> //SetPositionSize(IIf(firstTrigger, 100, IIf(secondTrigger, 200,
> IIf(thirdTrigger, 300, 400))), spsShares);
> SetPositionSize(IIf(firstTrigger, 1000, IIf(secondTrigger, 2000,
> IIf(thirdTrigger, 3000, 4000))), spsValue);"
> -----------------------------------------------------------------
>
> What are the differences between the two approaches?
>
> If I understand FLIP,EXREM,VALUEWHEN,SIGSCALEIN and other functions in your code,does that serve as a workoaround for the code at the top of the page??Are those functions intended for mere mortals such as myself??
>
> Thanks for the help,
>
>
> Allan
>
>
>
>
>
>
>
>
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@> wrote:
> >
> > Hi,
> >
> > There have been a couple of complete examples in the last week or so:
> >
> > http://finance.groups.yahoo.com/group/amibroker/message/146956
> > http://finance.groups.yahoo.com/group/amibroker/message/146976
> >
> > Mike
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "matrix10014" <allansn@> wrote:
> > >
> > > Would anyone be so kind to post code to scale in to a position.I have a bear of a time coding in AFL and would like to purchase 50% of my position on a signal,and the other 50% xATR's lower i.e
> > > entry price - optimized value x ATR..
> > >
> > >
> > > Thanks in advance
> > >
> > > Allan
> > >
> >
>
------------------------------------
**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
amibroker-digest@xxxxxxxxxxxxxxx
amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|