I must be brain dead this morning. BarsSince is not working as expected. I am 
trying to use BarsSince in the signal logic but when I try to set the values 
before the buy sell short and cover the value returned is null, 1e+010. That 
doesn't make sense. If I get the values after the signals are set the values 
are correct. But this prevents them from being use in the signal logic. 

Why doesn't BarsSince return the correct values in the first assignment?

The code follows.

Thanks,
Barry

// BarsSince test
#include <AT Functions\Colors.afl>

fMA = MA(C, 5);
fMAup = fMA >= Ref(fMA, -1);
fMAdn = fMA < Ref(fMA, -1);
Plot(fMA, "MA", MA1color);

sysTime = TimeNum();
tradeTime = IIf(sysTime >= 73000 AND sysTime < 161500, True, False);

Plot( C, "Close", pricecolor, styleNoTitle | styleBar ); // shows all style 
options

Buy     = Sell = Short = Cover = 0;

// #### First assignment
// barssince returns null here
bsBuy   = BarsSince(Buy);
bsSel   = BarsSince(Sell);
bsSht   = BarsSince(Short);
bsCov   = BarsSince(Cover);
StrFormat("sysTime=%g, TradeTime=%g \nBS buy=%g, BS sell=%g \nBS short=%g, BS 
cover=%g",sysTime, tradeTime, bsBuy , bsSel, bsSht, bsCov);

Buy     = tradeTime AND fMAup; // works fine
// when I try to use barssince the buy logic is never true.
Buy     = tradeTime AND fMAup AND bsBuy > bsSell; // never true

Short   = tradetime AND fMAdn;
Sell    = tradetime AND fMAdn;
Cover   = tradetime AND fMAup;

// #### Second assignment
// barssince returns the true values here
bsBuy   = BarsSince(Buy);
bsSel   = BarsSince(Sell);
bsSht   = BarsSince(Short);
bsCov   = BarsSince(Cover);

StrFormat("\nBS buy=%g, BS sell=%g \nBS short=%g, BS cover=%g", bsBuy , bsSel, 
bsSht, bsCov);

PlotShapes(Buy  * shapeUpArrow, uparrow, 0, Low, -5);
PlotShapes(Sell * shapeDownArrow, dnarrow,0, High, -5 );
PlotShapes(Short * shapeHollowDownArrow, dnarrow, 0, High, -20 );
PlotShapes(Cover * shapeHollowUpArrow, uparrow, 0, Low, -20);

Reply via email to