PureBytes Links
Trading Reference Links
|
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@xxx> 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/
|