The following simple program illustrates an intriguing problem I
encountered when trying to develop a complicated trading system.
//Test Program
fast = MA(C,15);
slow = MA(C,50);
Buy = Cross(fast,slow);
Sell = Cross(slow,fast);
Buy = Flip(Buy,Sell);
Sell = Flip(Sell,Buy);
Plot(fast,"fast",colorRed);
Plot(slow,"slow",colorGreen);
PlotShapes(Buy*shapeUpArrow,colorGreen);
PlotShapes(Sell*shapeDownArrow,colorRed);
// Buy = PlotShapes(shapeUpArrow,colorGreen);
// Sell = PlotShapes(shapeDownArrow,colorRed);
When used as shown, it works as intended. i.e. I get "Up" arrows for
each bar while the fast MA remains above the slow MA, and "Down"
arrows for the converse situation. However, if I use the alternative
Plot statements that are shown "commented out", I get Up and Down
arrows on ALL bars. Can anyone explain this? I need to resolve this
before moving on to bigger and better things as I wish to use "flip"
with arrays other than Buy and Sell.
Incidentally, I have never found a reference to
the "Buy*ShapeupArrow" format in the manual, though there are many
examples in the AFL library.
Brian