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/
|