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

Re: [amibroker] AmiBroker - Data Source QP2 vs TC2000



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.