Thanks Mike, A very clear explanation. Brian ----- Original Message ----- From: Mike To: [email protected] Sent: Tuesday, January 27, 2009 7:13 PM Subject: [amibroker] Re: Simple Problem with "flip" function and/or "Plotshapes"
> // Buy = PlotShapes(shapeUpArrow,colorGreen); > // Sell = PlotShapes(shapeDownArrow,colorRed); Hi, The above lines are bad. You are essentially saying to set the Buy signal to be equal to the result returned by calling PlotShapes, which is meaningless. Same for Sell. Buy*ShapeupArrow is just an expression that evaluates to either zero (Buy = false; i.e. 0) or non zero (Buy = not false; i.e. not 0). Usually Buy has been set to a binary value zero vs. one. So, Buy*ShapeupArrow usually evaluates to zero or the value of ShapeupArrow, meaning that we either plot zero (do nothing) or an up arrow. However, it is possible for Buy to hold values other than zero or one (i.e. any non zero value is still "true"). So be aware of it before using a multiplier like that in the plot statements. In your particular case, Flip returns strictly zeroes and ones into the Buy. So, you're fine. Mike --- In [email protected], "brianw468" <wil...@...> wrote: > > 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 >
