PureBytes Links
Trading Reference Links
|
<SPAN
class=796125719-31012004>d
<SPAN
class=796125719-31012004>Thanks
Mr.
Valley
<FONT face=Tahoma
size=2>-----Original Message-----From: dingo
[mailto:dingo@xxxxxxxxxxxx]Sent: Saturday, January 31, 2004 12:55
PMTo: amibroker@xxxxxxxxxxxxxxxSubject: RE: [AmiBroker]
Re: Search Routine for Crossover Point -- EMA
VersionI've shortened all the lines - lets see if
Yahoo mangles this.d//
*********************************************** //// 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 ...//
***********************************************//
Goal = 65;// ***********************************************////
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. 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);<FONT
face=Arial color=#0000ff
size=2> ________________________________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 Sponsor
ADVERTISEMENTclick here<<A
href="">http://rd.yahoo.com/SIG=12c4a7l1n/M=267637.4116732.5333197.1261774/D=egroupweb/S=1705632198:HM/EXP=1075665006/A=1945637/R=0/*<A
href="">http://www.netflix.com/Default?mqso=60178397&partid=4116732>
<<A
href="">http://us.adserver.yahoo.com/l?M=267637.4116732.5333197.1261774/D=egroupmail/S=:HM/A=1945637/rand=716664957>
________________________________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:
amibroker-unsubscribe@xxxxxxxxxxxxxxx<mailto:amibroker-unsubscribe@xxxxxxxxxxxxxxx?subject=Unsubscribe>
*
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service<<A
href="">http://docs.yahoo.com/info/terms/>
. 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.
|