Yes you're right that code is bogus. I was just trying to articulate the time in trade problem. My actual "donchian breakout" rule is:
buy = cross(( H, ref(HHV(H,LB),-1)); But this problem of knowing how much time has elapsed in the trade is seems to be a basic variable that I am wrestling with. I can calculate it, but not barssince(buy) doesn't work because of redundant buy signals, exrem(buy,sell)to remove the redundant signals doesn't help because the elapsed time is part of the sell rule. Hmmm...., --- In [email protected], "nunopires2001" <[EMAIL PROTECTED]> wrote: > > Please correct me, if i am wrong, but i think this expression will > always evaluate to false: > > Buy= cross( H, HHV(H,LB)); > > HHV: Calculates the highest value in the ARRAY over the preceding > periods (periods includes the current day). > > Since HHV, includes present bar, you will never get a buy signal. > > Right? > > --- In [email protected], "jeff_teza" <jeff_teza@> wrote: > > > > I've struggled for days to find AFL code that can adjust sell rules > > based upon the time in trade. I would like to code: > > > > 1) Buy on breakout of highest high of last LB bars (donchian breakout) > > 2) Sell on breakout of lowest low of last LB bars > > 3) Reduce LB by 1 day for each 5 days in trade > > > > eg > > > > The following code has problems because of additional buy signals > > while in trade: > > > > LB=20; > > Buy= cross( H, HHV(H,LB)); > > Tit = barssince(buy); // time in trade (additional buys screw this up) > > Sell = cross (L, LLV(C,LB- Int(Tit)/5)); > > > > > > The following code structure has a flow of control problems: > > > > LB=20: > > Buy= cross( H, HHV(H,LB)); > > intrade = flip (buy,sell); // haven't defined sell yet > > sell = cross (L,LLV(C,LB-Int(Tit)/5)); > > Buy=cross( H, HHV(H,LB)); > > > > I've also tried setting variables (static and dynamic) when intrade to > > get around the control flows but I can't seem to make it work. > > > > Help? > > Anyone? > > >
