PureBytes Links
Trading Reference Links
|
Dave,
Thankyou for your feedback.
I am pleased that you got the message after patiently waiting for
more than a week.
Your personal qualities and attitude will serve you well in trading
or anywhere else for that matter.
I came across a Null *ring pass not* in my first Ami project, that
I finished last week, so I was researching it for myself anyway.
I had to put in a lot of effort to get around it.
I believe it is a foundation subject of market charting and
analysis, but like so many core issues it is frequently glossed over
in popular trading culture.
I am drilling right down into the subject, especially it's
application in Ami.
It's a credit to AB that they have addressed the issue in several
ways.
All the best with your trading,
I'm sure we can swap some more tips in the future.
BrianB2.
--- In amibroker@xxxxxxxxxxxxxxx, "David Weller" <wellerdr@xxx>
wrote:
>
> Tomasz and Brian
>
>
>
> Thank you for your detailed answer. This advice will save many
hours of
> trouble shooting - especially those functions like
ibc.GetPositionInfo that
> returns both a "NULL" value and a number
(unlike "ibc.GetPositionSize" which
> returns the size (numeric) or zero). Null is not the same as a
number. The
> NZ function is another good function that I will begin to use that
converts
> NULL values to zero - so we are comparing numbers with numbers.
>
>
>
> I have been using AmiBroker for about 2 years and started out by
just doing
> some testing and modifying existing examples which I recommend is
a great
> way to start. I am now stretching my wings a bit further and
developing and
> testing several new systems to do analysis and also to help me
with some of
> the work in placing an order in IB. The "null" situation will crop
up for
> others when they begin using all of the system capabilities and
testing
> their own systems Brian - thank you for your extra efforts and
possibly
> saving others valuable time.
>
>
>
> Dave
>
>
>
> _____
>
> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
On Behalf
> Of brian.z123
> Sent: Wednesday, October 04, 2006 6:29 AM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: Treament of Null Value
>
>
>
> Thanks Tomasz,
>
> Your comments always provide clarity.
>
> I am really enjoying Ami.
> ATC and IIF are favourites already.
> Nz is a nice little extra as well.
> I am sure there are plenty more gems for me to find yet.
>
> Cheers,
>
> BrianB2.
>
> P.S For the benefit of others I should have also mentioned in my
> opening post that there are some interesting points to be found by
> searching the PDF help file for null.
>
> --- In amibroker@xxxxxxxxx <mailto:amibroker%40yahoogroups.com>
ps.com,
> "Tomasz Janeczko" <groups@>
> wrote:
> >
> > Hello,
> >
> > In AFL general rule is:
> > Null if included in any part of _arithmetic_ expression produces
> Null result.
> >
> > Null when placed in conditional expression is equivalent to
False.
> >
> > Caveat:
> > By default (for speed reasons) AmiBroker checks for nulls that
> appear in the beginning of the array
> > and in the end of the array and once non-null value is detected
it
> assumes no further holes (nulls) in the middle).
> > If you want to perform Null calculations
> > where Nulls are spread in random places throughout entire array
> you need to use
> >
> > SetOption("EveryBarNullCheck", True);
> >
> > Note however that turning it on gives huge performance penalty
> (arithmetic operations are performed even 4x slower when this
option
> > is ON, so don't use it unless you really have to).
> >
> > Best regards,
> > Tomasz Janeczko
> > amibroker.com
> > ----- Original Message -----
> > From: "brian.z123" <brian.z123@>
> > To: <amibroker@xxxxxxxxx <mailto:amibroker%40yahoogroups.com>
ps.com>
> > Sent: Wednesday, October 04, 2006 4:37 AM
> > Subject: [amibroker] Re: Treament of Null Value
> >
> >
> > Hello David,
> >
> > This is a very good question that deserves a good answer.
> > Truly this is a question for the alpha-techs but all you got was
> me.
> >
> > At the moment I limit myself to no more than one topic a week and
> > you are the lucky, or unlucky, chosen one.
> > After this I may change to one a month.
> >
> > Here are my credentials so you can decide if it is worth your
while
> > to read on:
> >
> > I am a free man first and trading comes somewhere after that
(along
> > with husband, father, grandfather, cook, gardener, handyperson
> etc).
> > As a trader I only learn the math/programming/computer techs
that I
> > am obliged to.
> > In my answers I aim to provide enough leads to enable the forum
to
> > prove me right or wrong, if they so choose.
> > I don't provide answers; only directions towards them (you have
to
> > climb the mountain yourself).
> > I seldom elaborate, except to correct my errors or clarify my
> points.
> > This may seem harsh but anyone who can't follow some simple
> > guidelines is highly unlikely to make a good trader so it is in
> > their best interests if they are knocked out of the game early.
> > I like to assist people to succeed but I leave them to fail
alone.
> >
> > There has been a lot of interesting dicussion on this or related
> > subjects in this forum in the past.
> > It is a topic best considered as part of group rather than as a
> > standalone.
> > I used the advanced search feature of this forum to search
subject
> > headings for NAN, NULL, EMPTY, IEEE, FINITE, TRUE.
> > There are additional messages with these topics in the body but I
> > found sufficient information even when limiting the search to
> > subject only.
> > There are some good links in the messages that go to advanced or
> > tech level references if required.
> > They also include posts by Tomasz that explain the AB
philosophy,
> so
> > I will not repeat that information here.
> >
> > Over the years AB's handling of null has evolved so you have to
> keep
> > that in mind when reading back posts.
> >
> > As a result of reading the archives and using Explorer to test
> > specific cases I believe I now have a reasonable laymans
> > understanding of the subject as it applies to AB.
> > In any case, I always triple check my projects for any
exceptional
> > behaviour, including null/zero effects.
> > As a caution I would advise you to check my results for yourself
> and
> > be careful of null exceptions in your work.
> > Obviously I have not checked all possible scenarios.
> >
> >
> > For the benefit of my laybrothers and laysisters I provide the
> > following definitions:
> >
> > http://www.webopedi
<http://www.webopedia.com/TERM/N/null_character.html>
> a.com/TERM/N/null_character.html
> >
> > A character that has all its bits set to 0. A null character,
> > therefore, has a numeric value of 0, but it has a special meaning
> > when interpreted as text. In some programming languages, notably
C,
> > a null character is used to mark the end of a character string.
In
> > database and spreadsheet applications, null characters are often
> > used as padding and are displayed as spaces.
> >
> > http://en.wikipedia <http://en.wikipedia.org/wiki/Null_%
28computer%29>
> .org/wiki/Null_%28computer%29
> >
> > Null has several meanings in computer programming.
> > In many disciplines, the concept of null allows a three-valued
> > logic, with null indicating "unknown value". The SQL database
query
> > language uses Null in this way, as do Visual Basic
> > (Termed "Nothing") and its derivatives. In this model, an
> expression
> > that depends on the value of a Null operand will evaluate to Null
> > (VB) or "unknown" (SQL).
> >
> >
> >
> > For this discussion Null == Empty == Traders speak for no data
> > == ; (?)
> >
> > Null is not a reserved variable.
> > Neither is it a function.
> > AB uses it without complaint however e.g.
> >
> > AddColumn(IIf( DayOfWeek() == 5,
Null,1),"NullTest",1.5);//produces
> > Null every Friday when used in explore.
> >
> > Using combinations of the following code I was able to test
current
> > null and zero behaviour in some typical AB applications:
> >
> > //allows Explorer testing of Null behaviour
> >
> > N = IIf( DayOfWeek() == 5, Null,1);
> > P = 1 - N ;// formula P alternative is 1 - Null
> > //P = N/0; // formula P alternative is Null/0
> > AddColumn(IsNull(N),"IsNullFri",1.5);
> > AddColumn(P,"IsNullMath",1.5);
> >
> > //allows Explorer testing of zero behaviour
> >
> > AddColumn(1/0,"Math",1.5);
> >
> > My findings are as follows (use at your own risk):
> >
> > Substituting the word Null for N in formula P produces Null as
the
> > result of all */+- combinations including o cases.
> >
> > For all cases of */+- using N:
> >
> > Null + 1 == Null
> > Null - 1 == Null
> > 1 - Null == 10,000,000,000 OR (+1 E10?)
> > 1 + Null == Null
> >
> > 0/Null == 0
> > Null/0 == -1.#INFO
> > Null/1 == Null
> > 1/Null == -0.0000
> >
> > 1 * Null == Null
> > Null * 1 == Null
> > 0 * Null == 0
> > Null * 0 == 0
> >
> > N * N == 100,000,002,004,087,730,000
> > N/N == 1
> > N + N == -20,000,000,000
> > N - N == 0
> >
> > The maths test 1/0 produces the result 1.#INFO
> >
> >
> >
> > That's all from me and it's all from him.
> >
> > BrianB2 ::-) (sunglasses on forehead)
> >
> >
> >
> >
> >
> > --- In amibroker@xxxxxxxxx <mailto:amibroker%40yahoogroups.com>
ps.com,
> "David Weller" <wellerdr@>
> > wrote:
> > >
> > > How does AmiBroker treat Null values?
> > >
> > >
> > >
> > > When there is no current position then following code does not
> > execute as
> > > the return value is a Null. But I think it should. When there
> are
> > open
> > > positions the value is greater than 0 then this piece code
> > executes fine.
> > >
> > >
> > >
> > >
> > >
> > > if (ibc.GetPositionInfo(Name(),"Avg. cost") <=
> > > LastValue(C))
> > >
> > >
> > >
> > > I fixed this situation by first checking if(
ibc.GetPositionSize
> (
> > Name() )
> > > == 0 ) meaning no existing positions and routing only open
> > positions > than
> > > 0 to the above code.
> > >
> > >
> > >
> > > In Hex Null is 000 which is less than all other numbers. Just
> not
> > > understanding the situation. Working with the IB Interface and
> > really like
> > > this capability.
> > >
> > >
> > >
> > > Dave
> > >
> >
> >
> >
> >
> >
> >
> >
> > Please note that this group is for discussion between users only.
> >
> > To get support from AmiBroker please send an e-mail directly to
> > SUPPORT {at} amibroker.com
> >
> > For other support material please check also:
> > http://www.amibroke <http://www.amibroker.com/support.html>
> r.com/support.html
> >
> >
> > Yahoo! Groups Links
> >
>
|