Hi, I did some searching in the posts, and it looks like many people have asked for methods to remove the extraneous signals from HighestSince or LowestSince so that the function can return the very first signal and not the ones which appear afterwards.
I've tried copying the code from these two posts, using loops or loops + global vars, or some combination of ExRem, or Flip or ExRemSpan but I have not yet gotten it working: http://finance.groups.yahoo.com/group/amibroker/message/117998 http://finance.groups.yahoo.com/group/amibroker/message/72151 Is there a simple way to accomplish this? Otherwise, the trailing stops don't work correctly since HighestSince is reset with each succeeding Buy signal and vice versa for LowestSince. The below is the code I'm looking to fix: --- Buy = Signal1 & Signal2; Short = Signal1Rev & Signal2Rev; Buy = Ref(Buy,-1); Short = Ref(Short,-1); BuyPrice = O; ShortPrice = O; SetTradeDelays(0,0,0,0); sellstopline = HighestSince( Buy, High ) * STrailingStopPct; BuyBarsSince = BarsSince(Buy == 1); sellprofitline = Ref(BuyPrice, -BuyBarsSince) * SProfitStopPct; sellex = sellstopline > P; sellex2 = P > sellprofitline; Sell= IIf(sellex,4,(IIf((sellex2),3,0))); SellPrice = O; coverstopline = LowestSince( Short, Low ) * BTrailingStopPct; ShortBarsSince = BarsSince(Short == 1); coverprofitline = Ref(ShortPrice, -ShortBarsSince) * BProfitStopPct; buyex = P > coverstopline; buyex2 = coverprofitline > P; Cover= IIf(buyex==1, 4, (IIf((buyex2),3,0))); CoverPrice = O; Equity(1,0); --
