Thanks for the explanation. Imagine the pains I went through trying to avoid this LastValue! Just a clarification, what is the number of bars loaded when using LastValue(): The number specified in Database settings, or The Default number of quotations in chart (Tools Preferences) I am pretty sure you do not mean the number of VISIBLE bars in a chart. This makes a huge difference in may case since I normally use only about 50 quotations in a chart but load 200,000 bars (which is only a few days using tick based database)
regards, Joseph Biran ____________________________________________ _____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Tomasz Janeczko Sent: Sunday, December 24, 2006 11:55 AM To: [email protected] Subject: Re: [amibroker] Re: using LastValue() vs. [BarCount-1] (was using say("text") (AmiBroker 4.89.0 BETA released )) Addition MyVariable[ BarCount -1 ] is technically correct however it does not refer to absolute LAST BAR, but last VISIBLE bar. Best regards, Tomasz Janeczko amibroker.com ----- Original Message ----- From: <mailto:[EMAIL PROTECTED]> Tomasz Janeczko To: <mailto:[email protected]> [email protected] Sent: Sunday, December 24, 2006 8:53 PM Subject: Re: [amibroker] Re: using LastValue() vs. [BarCount-1] (was using say("text") (AmiBroker 4.89.0 BETA released )) LastValue does NOT cause loading ALL bars. What LastValue does is to ensure that bars upto LAST BAR are loaded. If you display say last 10 days in the chart it won't affect performance at all. Best regards, Tomasz Janeczko amibroker.com ----- Original Message ----- From: J. Biran <mailto:[EMAIL PROTECTED]> To: [email protected] Sent: Sunday, December 24, 2006 8:34 PM Subject: RE: [amibroker] Re: using LastValue() vs. [BarCount-1] (was using say("text") (AmiBroker 4.89.0 BETA released )) I am always reluctant of using LastValue() as I recall it slows things down by forcing loading all bars. I use Myvariable[BarCount-1] instead. 1. Is there anything wrong with that? 2. Does EndValue() suffer from same drawback as LastValue() (when no range is selected)? Joseph Biran ____________________________________________ _____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Tomasz Janeczko Sent: Sunday, December 24, 2006 2:39 AM To: [email protected] Subject: Re: [amibroker] Re: using say("text") (AmiBroker 4.89.0 BETA released ) I would rather suggest using LastValue, instead of EndValue because EndValue depends on Range markers that may or may not point to the last bar. Best regards, Tomasz Janeczko amibroker.com ----- Original Message ----- From: Ton Sieverding <mailto:[EMAIL PROTECTED]> To: [email protected] Sent: Sunday, December 24, 2006 10:35 AM Subject: Re: [amibroker] Re: using say("text") (AmiBroker 4.89.0 BETA released ) Why Herman ? Say() works fine for me. Next a simple MA crossing system. Use 'Bar Replay' to walk thru the time array and you'l' get your 'Buys' and 'Sell' ... LongMA = EMA( C, Param("Long Period", 50, 30, 100, 5 )); ShortMA = EMA( C, Param("Short Period", 5, 3, 50, 1 )); Buy = Cross( ShortMA, LongMA ); Sell = Cross( LongMA, ShortMA ); if (EndValue(Buy)==1) Say("Buy"); if (EndValue(Sell)==1) Say("Sell"); Ton. ----- Original Message ----- From: Herman <mailto:[EMAIL PROTECTED]> To: [email protected] Sent: Saturday, December 23, 2006 12:17 PM Subject: RE: [amibroker] Re: using say("text") (AmiBroker 4.89.0 BETA released ) You need to store any text to ouput in a staticvar and clear this variable after you output it, below is just one way of doing this. This will only Say() text when is has changed. You may have to change this when you need repetative messages, like pyramided trades that say Buy, Buy, Buy, ... Text = ParamStr("Enter text to synthesize","Test"); PrevText = StaticVarGetText("PrevText"); if ( Text != PrevText ) { Say( Text ); StaticVarSetText ("PrevText", text); } best regards, herman -----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] Behalf Of J. Biran Sent: December 23, 2006 1:27 AM To: [email protected] Subject: RE: [amibroker] Re: using say("text") (AmiBroker 4.89.0 BETA released ) Thanks, I may be misunderstanding Flip but my guess is it should be the opposite, something like ExRem() to only sound message once on the first occurrence. but I am not even sure what to include in that statement as arrays. if condition say("my message"); I would like to be said only once (the first time condition is true) and only on the last bar (which I will take care of after I figure out how to restrict this event). Joseph Biran ____________________________________________ _____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Chris DePuy Sent: Friday, December 22, 2006 7:22 PM To: [email protected] Subject: Re: [amibroker] Re: using say("text") (AmiBroker 4.89.0 BETA released ) I haven't done this yet, but Flip function should work. ----- Original Message ----- From: J. <mailto:[EMAIL PROTECTED]> Biran To: [EMAIL PROTECTED] <mailto:[email protected]> ps.com Sent: Friday, December 22, 2006 7:02 PM Subject: RE: [amibroker] Re: using say("text") (AmiBroker 4.89.0 BETA released ) How does one use the say("text") function such that it is only stated once and does not repeat even if the condition that it depends on continues to be true? Joseph Biran ____________________________________________ --- In [EMAIL PROTECTED] <mailto:[email protected]> ps.com, "Tomasz Janeczko" <[EMAIL PROTECTED]> wrote: > > Hello, > > AmiBroker 4.89.0 BETA has just been released > http://www.amibroke <http://www.amibroker.com/devlog/2006/12/21/amibroker-4890-beta-> r.com/devlog/2006/12/21/amibroker-4890-beta- released/ > > Happy Holiday Season! > > Best regards, > Tomasz Janeczko > amibroker.com _
