Thanks Tomasz! Will try that out.
--- In [email protected], "Tomasz Janeczko" <gro...@...> wrote: > > There is much easier and reliable method: > > dt = LastValue( DateTime() ); > > if( StaticVarGet( "lastdt" ) != dt ) > { > _TRACE("New bar"); > StaticVarSet("lastdt", dt ); > } > > (Note that it works only if Tools->Preferences->Intraday is set > to show START or END time of interval). > > Best regards, > Tomasz Janeczko > amibroker.com > ----- Original Message ----- > From: "Yofa" <jtoth...@...> > To: <[email protected]> > Sent: Tuesday, March 17, 2009 1:03 PM > Subject: Re: [amibroker] Re: Testing for new bar using string manipulation > and quotation time > > > > Hi, > > > > barTime % 100 == 0 will not work reliably! If there is no new tick or no > > CPU > > time to do refresh it will skipp new bars a few times! > > This is a common problem. Look for similar posts here. You will fined code > > samples. > > > > Y > > -------------------------------------------------- > > From: "Mike" <sfclimb...@...> > > Sent: Tuesday, March 17, 2009 4:04 AM > > To: <[email protected]> > > Subject: [amibroker] Re: Testing for new bar using string manipulation and > > quotation time > > > >> If you have any concerns about rounding, you could use AlmostEqual instead > >> of "==". > >> > >> http://www.amibroker.com/guide/afl/afl_view.php?id=301 > >> > >> Mike > >> > >> --- In [email protected], "ozzyapeman" <zoopfree@> wrote: > >>> > >>> Thanks a bunch, Mike. Modulo's so much simpler! > >>> > >>> > >>> --- In [email protected], "Mike" <sfclimbers@> wrote: > >>> > > >>> > Again, assuming that your approach is sound, better still would be to > >>> > use the modulo operator. > >>> > > >>> > barTime = 103731; > >>> > > >>> > if (barTime % 100 == 0) > >>> > _TRACE( "New bar found" ); > >>> > > >>> > Mike > >>> > > >>> > --- In [email protected], "Mike" <sfclimbers@> wrote: > >>> > > > >>> > > Without commenting on the validity of the approach (I am not a real > >>> > > time trader), I can suggest that your problem is coming from a > >>> > > formatting incompatibility. > >>> > > > >>> > > Add a format clause indicating zero decimal places and it will work > >>> > > fine. > >>> > > > >>> > > Note too that your switching back to a number again is redundant and > >>> > > even error prone since "==" is not necessarily exact when dealing > >>> > > with floats. Just use the string manipulation directly. > >>> > > > >>> > > barTime = 103731; > >>> > > barTimeStr = NumToStr( barTime, 6.0 ); > >>> > > > >>> > > if ( StrRight( barTimeStr, 2 ) == "00" ) > >>> > > _TRACE ( "New bar found" ); > >>> > > > >>> > > Mike > >>> > > > >>> > > --- In [email protected], "ozzyapeman" <zoopfree@> wrote: > >>> > > > > >>> > > > Hello, hoping someone can help out with this string conversion > >>> > > > problem. > >>> > > > > >>> > > > In live trading, I am pulling quotation time using TimeNum(), and > >>> > > > want > >>> > > > to test for the start of a new bar. So my thinking is to simply > >>> > > > convert > >>> > > > the time to a number, extract the last two characters, convert back > >>> > > > to a > >>> > > > number and see if it equals 0. If so, that means the last two > >>> > > > digits in > >>> > > > the quotation time are "00" and hence we are at the start of a new > >>> > > > bar. > >>> > > > > >>> > > > However, the sample code below is always thinking we have a new bar > >>> > > > whether the time is, for e.g. : > >>> > > > > >>> > > > 10:37:31 or > >>> > > > 10:37:00 > >>> > > > > >>> > > > Obviously, only the second time should trip the 'new bar' print. > >>> > > > But > >>> > > > instead, both do: > >>> > > > > >>> > > > > >>> > > > barTime = 103731; // we would normally use TimeNum() here, > >>> > > > but > >>> > > > using a number for example > >>> > > > > >>> > > > barTimeStr = NumToStr(barTime); > >>> > > > > >>> > > > NewBarSeconds = StrToNum ( StrRight(barTimeStr, 2) ); > >>> > > > > >>> > > > printf("NewBarSeconds = " + NewBarSeconds); > >>> > > > > >>> > > > if (NewBarSeconds == 0) > >>> > > > > >>> > > > printf(" We have a new bar"); > >>> > > > > >>> > > > >>> > > >>> > >> > >> > >> > >> > >> ------------------------------------ > >> > >> **** IMPORTANT PLEASE READ **** > >> This group is for the discussion between users only. > >> This is *NOT* technical support channel. > >> > >> TO GET TECHNICAL SUPPORT send an e-mail directly to > >> SUPPORT {at} amibroker.com > >> > >> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at > >> http://www.amibroker.com/feedback/ > >> (submissions sent via other channels won't be considered) > >> > >> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: > >> http://www.amibroker.com/devlog/ > >> > >> Yahoo! Groups Links > >> > >> > >> > >> > > > > > > ------------------------------------ > > > > **** IMPORTANT PLEASE READ **** > > This group is for the discussion between users only. > > This is *NOT* technical support channel. > > > > TO GET TECHNICAL SUPPORT send an e-mail directly to > > SUPPORT {at} amibroker.com > > > > TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at > > http://www.amibroker.com/feedback/ > > (submissions sent via other channels won't be considered) > > > > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: > > http://www.amibroker.com/devlog/ > > > > Yahoo! Groups Links > > > > > > >
