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

Re: [amibroker] Re:New indicator



PureBytes Links

Trading Reference Links

Hi Dali,

As always there are several possible solutions to the single problem.
Solution 1: ref( buy, -n ) is the fastest, however it assumes that
the next buy signal do not occur within n days. An example would be
a system that generates a buy when macd rises above 0 and sells 
after 5 bars. Since macd( 12, 26 ) will not come back below and then
above zero during 5 bars this will work

Solution 2: barssince( buy ) == n, works exactly as you described.

Solution 3: The following JScript sells exactly after 5 bars from initial
buy even if buy signals are repeated:

EnableScript("VBScript");

// your buy formula
buy = Close == HHV( close, 250 ); // buy when prices reaches a new high

<%
N = 5 ' sell after 5 bars

buy = AFL( "buy" )
sell = AFL("buy") ' init sell as an array of appropriate size by making a copy

barssincebuy = -1

' iterate along the array
for i = 0 to UBound( buy )

sell( i ) = 0

' if there is no open trade and buy signal occursinit bar counting
if barssincebuy = -1 then 
if buy( i ) = 1 then 
barssincebuy = 0
end if
else
barssincebuy = barssincebuy + 1
if barssincebuy = N then
sell( i ) = 1
barssincebuy = -1
end if
end if

next

AFL("sell") = sell

%>

buy = exrem( buy, sell );


(note that exrem at the bottom removes excesive buys, you can 
comment it out to see how many excesive buy signals are generated)


Best regards,
Tomasz Janeczko
===============
AmiBroker - the comprehensive share manager.
http://www.amibroker.com


----- Original Message ----- 
From: "Dali" <dali_11@xxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Friday, August 10, 2001 1:31 AM
Subject: Re: [amibroker] Re:New indicator


> Randy :
> 
> the AFL functions syntax is "iif(condition, array1, array2) " and not
> "iff(condition)"
> 
> Tomasz
> 
> I have similar problem to exit after a buy. I need to exit a long position N
> days after the INITIAL entry point. Is it possible to do this with AFL ?
> 
> 1st suggested solution:
> sell = ref(buy, -n)
> This as the problem generating trade between a new buy and a sell generated
> from a previous buy. For example given the signal in order of time: [buy1,
> buy2, sell1, buy3, sell2, sell3], it will generate 2 trades [buy1-sell1] and
> [buy3-sell2]. But what I want is [buy1-sell1] and [buy3-sell3] to be
> generate.
> 
> 2nd suggested solution
> sell = barssince (buy) == n
> This as the problem of closing the position n day after the last generated
> buy and not the first one.
> 
> Jon
> 
> ----- Original Message -----
> From: "Randy Barlow" <rcbarlow@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Thursday, August 09, 2001 6:44 PM
> Subject: Re: [amibroker] Re:New indicator
> 
> 
> > I tried your sell formula and none of the below works.
> >
> > Condition1=ref(randy,-2) < ref(low,-2);
> > Condition2=ref(randy,-1) < ref(low,-1);
> > buy=Iff(Condition1 AND Condition2);
> > sell = barssince(buy) == 4;
> >
> > All I get is "Iff(unknown)" and
> > "barssince(buy) unknown"
> >
> > Any help appreciated.
> > Randy
> >
> > ----- Original Message -----
> > From: <tom_supera@xxxx>
> > To: <amibroker@xxxxxxxxxxxxxxx>
> > Sent: Thursday, August 09, 2001 4:54 PM
> > Subject: [amibroker] Re:New indicator
> >
> >
> > > Hi,
> > > What's the problem?
> > >
> > > I always use: sell = barssince (buy) == 3; (3 days for example)
> > >
> > > Tom Supera
> > >
> > >
> > >
> > >
> > >
> > > --- In amibroker@xxxx, Frank <fesnay@xxxx> wrote:
> > > > Hi,
> > > > How about - -
> > > >
> > > > SellSignal = barsince(buy);
> > > > sell = iif(SellSignal == 5,1,0);
> > > >
> > > > This would give you a sell signal on the fifth day since the buy.
> > > > Frank
> > > >
> > > > At 03:33 PM 8/9/01 -0400, you wrote:
> > > > >Greetings,
> > > > >Let me make sure I understand this. If I want to sell on the 5th
> > > day after
> > > > >a buy occurs, I would use:
> > > > >sell=ref(buy,-5)?
> > > > >
> > > > >In order to sell after a certain condition is true for the two
> > > days prior, I
> > > > >would use:
> > > > >If Condition1 and Condition2, buy on open next day?
> > > > >
> > > > >How would I code this since it also references yesterday and the
> > > day before?
> > > > >
> > > > >Randy
> > > > >
> > > > >> And back to your request: if you want to sell after 5 bars from
> > > buy
> > > > >> what you really want is a NEGATIVE offset:
> > > > >> sell = ref( buy, -5 );
> > > > >> this is so because you want to generate a sell signal knowing
> > > that 5 bars
> > > > >ago
> > > > >> a buy occurred. You don't need to look into the future because
> > > buy aleady
> > > > >> happened.
> > > > >> Best regards,
> > > > >> Tomasz Janeczko
> > > > >> ===============
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >Your use of Yahoo! Groups is subject to
> > > http://docs.yahoo.com/info/terms/
> > > > >
> > >
> > >
> > >
> > >
> > >
> > > Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
> > >
> > >
> > >
> >
> >
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
> >
> 
> 
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
> 
> 
> 
> 
> 
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 
> 
> 
>