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

[amibroker] Composites Update without scan( was Re: Relative Indicator Values)



PureBytes Links

Trading Reference Links

The same idea is applied to other calculations, available till now 
via AddToComposite() function.
Example, my MACDBULL indicator at the "Trending or Trading" in AFL 
Library.

See a short example, for a database ^NDX, MSFT, INTC
C1=C;
N0="^NDX";C=Foreign(N0,"C");
MACD0=MACD();Signal0=Signal();
MACDbull0=MACD0>Signal0;
N1="MSFT";C=Foreign(N1,"C");
MACD1=MACD();Signal1=Signal();
MACDbull1=MACD1>Signal1;
N2="INTC";C=Foreign(N2,"C");
MACD2=MACD();Signal2=Signal();
MACDbull2=MACD2>Signal2;
C=C1;
MACDbull=MACDbull0+MACDbull1+MACDbull2;
Plot(MACDbull,"MACDBULL",2,8);
The MACDBULL indicator is simply updated automatically with any new 
EOD.
Dimitris Tsokakis
--- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxx> 
wrote:
> An interesting side effect of 
> http://groups.yahoo.com/group/amibroker/message/40042
> is that we may calculate MeanIndicators without AddToComposite() 
use.
> It is obvious from
> H1=H;L1=L;C1=C;
> N0="^NDX";H=Foreign(N0,"H");L=Foreign(N0,"L");C=Foreign(N0,"C");
> StochD0=StochD();
> N1="MSFT";H=Foreign(N1,"H");L=Foreign(N1,"L");C=Foreign(N1,"C");
> StochD1=StochD();
> N2="INTC";H=Foreign(N2,"H");L=Foreign(N2,"L");C=Foreign(N2,"C");
> StochD2=StochD();
> H=H1;L=L1;C=C1;
> MeanStochD=(StochD0+StochD1+StochD2)/3;
> we may have the MeanStochD of a database as a daily function, 
updated 
> with the new EOD without scan the database.
> The great advantage is in intraday use, if you ever run 10 or 20 
> times/session the AddToComposite() formula to see
> is the MeanIndicator crosses the critical level or not.
> The same idea may be applied to
> http://groups.yahoo.com/group/amibroker/message/40045
> expressed with the most recent amibroker function() property :
> /* WRITE ONCE */
> function ForeignADX( symbol, period )
> {
> /* save original price arrays */
> SC = C;
> SO = O;
> SH = H;
> SL = L;
> 
> C = Foreign( symbol, "C" );
> H = Foreign( symbol, "H" );
> L = Foreign( symbol, "L" );
> O = Foreign( symbol, "O" );
> 
> Result = ADX( period ); // REPLACE THIS BY ANY AFL FUNCTION
> 
> /* restore original arrays */
> C = SC;
> O = SO;
> H = SH;
> L = SL;
> 
> return Result;
> }
> 
> 
> /* USE MANY TIMES */
> 
> ADX0=ForeignADX( "MSFT", 14 );
> 
> ADX1=ForeignADX( "IBM", 14 ); 
> 
> ADX2=ForeignADX( "AAPL", 14 );
> 
> MeanADX=(ADX0+ADX1+ADX2)/3;
> 
> 
> Dimitris Tsokakis
> --- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS" 
<TSOKAKIS@xxxx> 
> wrote:
> > Tomasz,
> > My intention was to present an [interesting IMO] AddToComposite() 
> > application, to show  "what can be done".
> > I did not claim it was the shortest way to Rome.
> > BTW, in your code you need the analytic definition of Stochastic 
> > functions .
> > [do you consider it easily available to a user ? I love the 
> > definitions but, many messages in this list will not agree] 
> > I am not sure if people have an easy reference to the analytic 
> > definition for ANY AFL built-in function.
> > Just some examples : accdist(), adx( ), chaikin(  ), mfi( ).
> > Much more, who knows if adx(), for example, is a function of C or 
H 
> > or L or V or a combination ?
> > You also suppose a user familiar to T/A anlytic expressions, ie 
an 
> > advanced user.
> > [I do not have the same experience from the messages of this list]
> > And, of course, I knew a quite simple solution without 
> AddToComposite
> > () or Function() or analytic definition use before posting
> > this contribution.
> > Just replace all HLCV arrays, redefine them at the end and thatīs 
> it.
> > H1=H;L1=L;C1=C;V1=V;
> > N="^NDX";H=Foreign(N,"H");L=Foreign(N,"L");C=Foreign(N,"C");
> > StochDNDX=StochD();
> > N="MSFT";H=Foreign(N,"H");L=Foreign(N,"L");C=Foreign(N,"C");
> > StochDMSFT=StochD();
> > N="INTC";H=Foreign(N,"H");L=Foreign(N,"L");C=Foreign(N,"C");
> > StochDINTC=StochD();
> > Plot(StochDNDX,"^NDX",4,1);Plot(StochDMSFT,"MSFT",1,1);Plot
> > (StochDINTC,"INTC",2,1);
> > H=H1;L=L1;C=C1;V=V1;
> > Plot(StochD(),Name(),7,2);
> > Thank you for the interesting Function() example.
> > Dimitris Tsokakis
> > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" 
> <amibroker@xxxx> 
> > wrote:
> > > Hello,
> > > 
> > > Much easier to use (not requiring any pre-scan) and less 
resource 
> > consuming is
> > > ( AB 4.33 or higher )
> > > 
> > > function ForeignStochD( symbol, Kperiod, Dperiod )
> > > {
> > >  FC = Foreign( symbol, "C" );
> > >  FH = Foreign( symbol, "H" );
> > >  FL = Foreign( symbol, "L" );
> > > 
> > >  FASTSTOCHK = 100*(FC-LLV(FC,kPeriod))/(HHV(FH,kPeriod)-LLV
> > (FL,kPeriod));
> > >  SLOWSTOCHK = MA( FastStochK, Dperiod );
> > >  SLOWSTOCHD = MA( SLOWSTOCHK, Dperiod ); 
> > >  return SLOWSTOCHD;
> > > }
> > > 
> > > Plot( ForeignStochD( "MSFT", 14, 3 ), "Stoch MSFT", colorRed );
> > > 
> > > Plot( ForeignStochD( "IBM", 14, 3 ), "Stoch MSFT", colorBlue );
> > > 
> > > Plot( ForeignStochD( "AAPL", 14, 3 ), "Stoch MSFT", 
colorGreen );
> > > 
> > > 
> > > Best regards,
> > > Tomasz Janeczko
> > > amibroker.com
> > > ----- Original Message ----- 
> > > From: "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxx>
> > > To: <amibroker@xxxxxxxxxxxxxxx>
> > > Sent: Thursday, May 08, 2003 10:04 PM
> > > Subject: [amibroker] Relative Indicator Values
> > > 
> > > 
> > > > To compare indicator X values with some reference stocks, run 
> in 
> > AA 
> > > > the
> > > > 
> > > > X=StochD();
> > > > AddToComposite(X,"~StochD"+Name(),"C");
> > > > Buy=0;
> > > > 
> > > > All individual Stochastics are now separate tickers
> > > > ~StochD^NDX
> > > > ~StochDAAPL
> > > > ~StochDMSFT
> > > > etc.
> > > > In IB paste
> > > > 
> > > > Plot(Foreign("~StochD^NDX","C"),"^NDX",4,8);
> > > > Plot(Foreign("~StochDMSFT","C"),"MSFT",1,1);
> > > > Plot(Foreign("~StochDINTC","C"),"INTC",2,1);
> > > > Plot(Foreign("~StochD"+Name(),"C"),Name(),7,2);
> > > > 
> > > > to compare each stock StochD with the 3 references ^NDX, 
MSFT, 
> > INTC.
> > > > 
> > > > X may be any complicated function. Just place
> > > >  
> > > > X=myFunction;
> > > > AddToComposite(X,"~myFunctionName"+Name(),"C");
> > > > Buy=0;
> > > > 
> > > > Dimitris Tsokakis
> > > > 
> > > > 
> > > > 
> > > > Send BUG REPORTS to bugs@xxxx
> > > > Send SUGGESTIONS to suggest@xxxx
> > > > -----------------------------------------
> > > > 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 
> > > > 
> > > > Your use of Yahoo! Groups is subject to 
> > http://docs.yahoo.com/info/terms/ 
> > > > 
> > > > 
> > > >


------------------------ Yahoo! Groups Sponsor ---------------------~-->
Rent DVDs from home.
Over 14,500 titles. Free Shipping
& No Late Fees. Try Netflix for FREE!
http://us.click.yahoo.com/BVVfoB/hP.FAA/uetFAA/GHeqlB/TM
---------------------------------------------------------------------~->

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 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/