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

[amibroker] Fw: Exporting All Dates



PureBytes Links

Trading Reference Links

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@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 Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/GHeqlB/TM
---------------------------------------------------------------------~->

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:
 http://docs.yahoo.com/info/terms/