[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: Sell after n bars only if net loss



PureBytes Links

Trading Reference Links

BANG! There it is. "compound statement". That's exactly what I missed.
I didn't see the two elements working together to produce the desired
result but now I do. 
Mike, thanks for pointing that out!

  Pete  :-)

--- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> wrote:
>
> Pete,
> 
> You missed a critical element of the proposed solution.
> 
> In general, you must write your code to look backwards, not forwards. 
> So, rather than looking for the price 5 days into the future once 
> you've found that there *is* a buy, look 5 days into the past and see 
> if there *was* a buy (i.e. Ref(Buy, -5)).
> 
> That is why the solution proposed was a compound statement that 
> checked to see:
> 
> 1) was there a buy AND
> 2) is the current close less than the 5 day ago buyprice.
> 
> Your exploration becomes something like the following: (I've used a 
> random entry just to generate some results, and I've used 
> intermediary variables to help explain what's going on as well as to 
> avoid performing the same calculation more than once)
> 
> Buy = random(1) > 0.5;
> BuyPrice = Open; // Put your own buyprice here
> 
> Bought5DaysAgo = Ref(Buy, -5); // Did we buy 5 days ago?
> Paid5DaysAgo = Ref(BuyPrice, -5); // What would we have paid?
> 
> Sell = Bought5DaysAgo AND Close < Paid5DaysAgo; // Notice compound 
> statement!
> 
> Filter = Bought5DaysAgo; // Only interested when its been 5 days 
> since a buy.
> AddColumn(Paid5DaysAgo, "Buy Price", 1.2);
> AddColumn(Close, "5 Days Later", 1.2);
> 
> Ratio = Close/Paid5DaysAgo;
> AddColumn(IIF(Ratio >= 1, (Ratio - 1) * 100, (1 - Ratio) * -
> 100), "5PrdPrft", 1.2);
> AddTextColumn(WriteIf(Ratio < 1, "Exit", "Stay"), "Test");
> 
> Depending on your Buy/Sell logic, you may need to get rid of 
> redundent signals for your exploration using ExRem. The backtester 
> will handle this for you when backtesting/optimizing.
> 
> Mike
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Pete" <dryheat3@> wrote:
> >
> > EDIT:
> > In the reply below the last paragraph contains two errors.:
> > Quote:**************************************************************
> > The negative 5's above read the close of the bar 5 steps before the
> > close <<Buyprice>>. In order to read 5 bars after the close
> > <<BuyPrice>> you have to change the negatives to positives and this
> > gives a warning that the formula has to look into the future to
> > calculate trades.
> > End Quote:**********************************************************
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "Pete" <dryheat3@> wrote:
> > >
> > > Nope, I plugged this in and the Ref(Buyprice, -10) gives you the 
> close
> > > of the bar 10 periods PRIOR to the buy signal. It does not give 
> the
> > > value of the close 10 days AFTER the buy signal.
> > > 
> > > Let me know if you have any other ideas. I sketched this out very
> > > clearly using an exploration and the only way I can get it to
> > > correctly read the Nth bar after the buy signal is using a 
> positive
> > > value in the Ref() function. But this causes the formula check to
> > > report a future leak.
> > > //Code*******************************************************
> > > Buy = <<insert buy rule here>>
> > > Filter = Close < Ref(BuyPrice, -5);
> > > AddColumn(BuyPrice, "Buy Price", 1.2);
> > > AddColumn(Ref(BuyPrice, -5), "5 Days Later", 1.2);
> > > AddColumn(((Ref(C, -5) - BuyPrice)/ BuyPrice) * 100, "5PrdPrft", 
> 1.2);
> > > tst = WriteIf(Close < Ref(BuyPrice, -5), "Exit", "Stay");
> > > AddTextColumn(tst, "Test" );
> > > //End Code***************************************************
> > > 
> > > The negative 5's above read the close of the bar 5 steps before 
> the
> > > close. In order to read 5 bars after the close you have to change 
> the
> > > negatives to positives and this gives a warning that the formula 
> has
> > > to look into the future to calculate trades.
> > > 
> > > 
> > >   Pete  :-)
> > > 
> > > --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@> wrote:
> > > >
> > > > Hi,
> > > > 
> > > > Same answer as 
> > > > http://finance.groups.yahoo.com/group/amibroker/message/128003
> > > > 
> > > > Assuming that the answer is correct of course ;)
> > > > 
> > > > Mike
> > > > 
> > > > --- In amibroker@xxxxxxxxxxxxxxx, "Pete" <dryheat3@> wrote:
> > > > >
> > > > > I'm trying to add a condition to my sell rule without 
> creating a
> > > > > future leak. I have the following:
> > > > > Sell = Cross(Trigger, Close) OR ((BuyPrice - Ref(C, 5)) > 0);
> > > > > 
> > > > > I'm trying to get it to exit a trade if it is not profitable 
> after 5
> > > > > bars. Problem is it creates astronomical results and the 
> formula 
> > > > check
> > > > > indicates there may be a future leak stating that 40 future 
> quotes 
> > > > are
> > > > > required in the calculations.
> > > > > I could also use the stopTypeNBar setting on the ApplyStop 
> function
> > > > > but I still need a way to measure the profit/loss of the 
> trade a
> > > > > number of days after the buy but do it without peaking into 
> the 
> > > > future.
> > > > > 
> > > > >   Pete  :-)
> > > > >
> > > >
> > >
> >
>



------------------------------------

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/