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

Re: Re: [amibroker] Re: Function "position status or similar" available ?



PureBytes Links

Trading Reference Links

no Ref( Buy, -1 ) refers to the previous bar

Ref( Buy, 1 ) is for the future bar

--
Cheers
Graham
AB-Write >< Professional AFL Writing Service
Yes, I write AFL code to your requirements
http://e-wire.net.au/~eb_kavan/ab_write.htm


On 9/28/05, jacklweinberg <weinberg@xxxxxxxx> wrote:
> As I have just learned (much to my surprise), you have to be very
> careful with the statement
> ..... ref(Buy, -1)....
> because that refers to tomorrow's bar.
> So, everything will be cool in backtesting, however you will never
> get a "scan" signal -because it is always waiting for tomorrow's
> data.
> As a matter of fact, the statement that I had posted,
> inLong = Ref(Flip(Buy,Sell),-1);
> inShort = Ref(Flip(Short,Cover),-1);
> is also at fault.
> It works great - except for the last bar.
> Perhaps someone (who is much more astute with ab language than I)
> could re-write those two lines so that they work as intended
> (shifting one day forward), except for the last bar!
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Charles Stangor"
> <cstangor232@xxxx> wrote:
> Thanks again...... it may be starting to sink in, slowly... :)
>  ----- Original Message -----
>  From: Terry
>  To: amibroker@xxxxxxxxxxxxxxx
>  Sent: Tuesday, September 27, 2005 9:42 AM
>  Subject: RE: [amibroker] Re: Function "position status or similar"
> available ?
>
>
>  Right because if you have something like this, which it appears
> you do (since you didn't post any code):
>
>
>
>  Buy = some conditions;
>
>  Totalbuys = Sum(Ref(Buy, -1), BarsSince(Cross(Timenum(), 093000)));
>
>  Buy = 1;
>
>
>
>  With the third statement you have said that BUY = TRUE for every
> bar of data you have, thus wiping out any results from the first Buy
> statement (which defined Buy as "some conditions" for every bar of
> data you have.
>
>  --
>
>  Terry
>
>  -----Original Message-----
>  From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
> On Behalf Of Charles Stangor
>  Sent: Tuesday, September 27, 2005 09:32
>  To: amibroker@xxxxxxxxxxxxxxx
>  Subject: Re: [amibroker] Re: Function "position status or similar"
> available ?
>
>
>
>  Thanks Terry.  I learned to program years ago when everything was
> loops.  The ++ idea is still hazy for me.
>
>
>
>  I believe that I'm finding that the value of totalbuys:
>
>  Totalbuys = Sum(Ref(Buy, -1), BarsSince(Cross(Timenum(), 093000)));
>
>
>
>  is changed if I give the subsequent statement:
>
>  Buy =1;
>
>
>
>  Would that be possible?  I thought that the first statement
> referred to an array that was entirely prior to the current bar.
> But your statement:
>
>
>
>  However, you must be aware that you cannot go back up to your
> Buy/Sell statements and use the inLong or inShort information to
> change your trades. This is because each line is essentially read
> once and executed for all bars. Then the next line is executed based
> on previously known results
>
>
>
>  makes me think that values of arrays specified as ref(array, -1)
> are changed by operations in the current bar.
>
>
>
>  Thanks again.
>
>
>
>    ----- Original Message -----
>
>    From: Terry
>
>    To: amibroker@xxxxxxxxxxxxxxx
>
>    Sent: Tuesday, September 27, 2005 8:24 AM
>
>    Subject: RE: [amibroker] Re: Function "position status or
> similar" available ?
>
>
>
>    AFL arrays are computed "all at once" for ALL BARS in your
> database.
>
>    So I guess the answer to your question is Yes. However, you must
> be aware that you cannot go back up to your Buy/Sell statements and
> use the inLong or inShort information to change your trades. This is
> because each line is essentially read once and executed for all
> bars. Then the next line is executed based on previously known
> results.
>
>
>
>    This behavior can be changed by using "looping" code which
> computes these results on a bar by bar basis, thus allowing you to
> use this information from the previous bar to help determine your
> next trade (for example, only go Long while "inShort").
>
>    --
>
>    Terry
>
>
>
>    -----Original Message-----
>    From: amibroker@xxxxxxxxxxxxxxx
> [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Charles Stangor
>    Sent: Tuesday, September 27, 2005 06:51
>    To: amibroker@xxxxxxxxxxxxxxx
>    Subject: Re: [amibroker] Re: Function "position status or
> similar" available ?
>
>
>
>    > Graph0=Equity(1);
>
>    > inLong = Ref(Flip(Buy,Sell),-1);
>
>    > inShort = Ref(Flip(Short,Cover),-1);
>
>    > inNothing = inLong==0 AND inShort==0;
>
>
>
>    This code seems really good.  But I don't completely understand
> how AFL
>
>    works.  Here's my question:  Is it the case that these new
> variables, inlong
>
>    and inshort (which are created from an array that ends on the
> prior bar)
>
>    will be created when the code is read in the AFL, and then not
> be changed by
>
>    any code that follows them in the AFL?  In other words, can they
> be used to
>
>    create buy and sell signals on the current bar without worrying
> that their
>
>    prior values will be changed by new operations that reference
> their
>
>    components?


------------------------ Yahoo! Groups Sponsor --------------------~--> 
Try Online Currency Trading with GFT. Free 50K Demo. Trade 
24 Hours. Commission-Free. 
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> 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/