PureBytes Links
Trading Reference Links
|
<SPAN
class=812400903-02042004>Here's a general purpose routine provided by Fred
Tonetti that you can adapt to suit your needs.
<SPAN
class=812400903-02042004>
<SPAN
class=812400903-02042004>d
<FONT
face="Courier New" color=#000000>
<FONT
face="Courier New"><SPAN
class=812400903-02042004>>>Is there any way this can be
accomplished...><SPAN
class=812400903-02042004>><SPAN
class=812400903-02042004>>>the question is...What price must the
security close at for a <FONT
size=3>>>crossover the next day?<SPAN
class=812400903-02042004>>><SPAN
class=812400903-02042004><FONT
size=3>>>TIA<FONT
face=Arial color=#0000ff size=2>
From: Fred [mailto:ftonetti@xxxxxxxxxxxxx]
Sent: Friday, January 30, 2004 12:41 PMTo:
amibroker@xxxxxxxxxxxxxxxSubject: [amibroker] Re: Search Routine for
Crossover Point -- EMA Version
Is there any reason to limit this to an xMA when this can easily
be done for any built in AB indicator or any custom AFL "indicator" that
one cares to write ?//
***********************************************
//// An all purpose routine to find the
price //
necessary to move an indicator to a
GOAL.//// This should work for virtually
any indicator,//
built in or otherwise. It's demonstrated
// here using
RSI & BBand's ...////
Note: It will appear to use future
quotes//
because of the
down shifting of the//
price array, but obviously it
can't//
"know" tomorrows
price. There's //
probably a way to rectify this but
//
I was more
concerned with the rest //
of the
process.//// The maximum iterations have
arbitrarily been //
set to 200 which is undoubtedly overkill
// as I've yet
to see anything take 200 even//
when tolerance was set to 0 on datastreams
// with very
high prices.//// For real usage the saving
of i in j and the//
accuracy calculation can be tossed as they
// were only
put in for demonstration purposes ////
***********************************************////
This Routine requires the following
things////
P0 = A price array
or synthetic////
Goal = The goal value of the
indicator////
Acc = An accuracy
level for the calculations////
Set this to
the order of magnitude //
that you
want. For example if you want //
accuracy in
calculated price to within //
0.01 then
set it 0.01. It can even //
be set to 0
which will force AB to //
calculate
until it can't find any //
further
improvements (Usually between//
150-170
iterations) but this is semi//
useless as
improvements relative to //
price
granularity have long since //
been gone
by.////
The lower you set it the longer it
//
will take but it's pretty quick
//
(Usually between 15-30 iterations)
//
unless you set it at
0.//
//
***********************************************////
Note: Some goals are virtually unattainable
on//
the next bar, especially on the
downside//
as they would require a negative
price//
which is what this routine will show
if//
that is what is
required.////
***********************************************P0 =
C;Acc = 0.0001;LVBI = LastValue(BarIndex());Mult =
1;//
***********************************************//
Shift Price up by n orders of magnitude to make
// it >=
1. This is useful to increase //
accuracy on very low priced datastreams
// such as the
JY.//
***********************************************for (i = 0; i < 10;
i++){ if (P0[LVBI] >= 1)
i = 99;
else
Mult = Mult * 10; } //
***********************************************P1 = Ref(P0,
1) * Mult;UpDn = 100 * P1[LVBI];for (i = 0; i < 200;
i++){// An example for finding price
associated with the next bars
BBandTop////
*****************************************************************************//
Put whatever indicator you want to goal seek here based on
P1//
*****************************************************************************
Calc = P1;//
*****************************************************************************//
Put whatever you want for the goal here
...//// The reason for putting it in the
loop is because sometimes the goal is price
// oriented and
will need to be recalculated on each
iteration.//
*****************************************************************************
Goal = LastValue(BBandBot(P1, 14, 2));//
*****************************************************************************//
An example for finding price associated with the next bars RSI value of
65////
*****************************************************************************//
Put whatever indicator you want to goal seek here based on
P1//
*****************************************************************************//
Calc = RSIa(P1, 14);//
*****************************************************************************//
Put whatever you want for the goal here
...//// The reason for putting it in the
loop is because sometimes the goal is price
// oriented and
will need to be recalculated on each
iteration.//
*****************************************************************************//
Goal = 65;//
*****************************************************************************
if (Calc[LVBI] < Goal)
P1[LVBI] = P1[LVBI] +
UpDn; else
P1[LVBI] = P1[LVBI] -
UpDn; UpDn = UpDn /
2; if (UpDn <=
Acc) {
j = i;
i = 99999;
}}Accuracy = 100 * (abs(Goal - Calc) / Goal);Filter =
BarIndex() == LVBI;AddColumn(Mult,
"Multiplier",
1.0);AddColumn(Calc[LVBI - 1] / Mult, "Curr
Ind Val", 1.9);AddColumn(Goal / Mult,
"Goal Ind Val", 1.9);AddColumn(Calc[LVBI] /
Mult, "Calc Ind
Val", 1.9);AddColumn(j,
"Iterations", 1.0);AddColumn(Accuracy,
"Accuray
(%)", 1.9);AddColumn(Ref(P1, -1) / Mult,
"Todays Price", 1.9);AddColumn(P1 /
Mult,
"Goal Price",
1.9);Send BUG REPORTS to bugs@xxxxxxxxxxxxxSend
SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
To visit your group on the web, go to:<A
href="">http://groups.yahoo.com/group/amibroker/
To unsubscribe from this group, send an email to:<A
href="">amibroker-unsubscribe@xxxxxxxxxxxxxxx
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
To visit your group on the web, go to:http://groups.yahoo.com/group/amibroker/
To unsubscribe from this group, send an email to:amibroker-unsubscribe@xxxxxxxxxxxxxxx
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
|