On Thu, 1 Apr 2010, Riccardo (Jack) Lucchetti wrote:

> On Thu, 1 Apr 2010, Giorgio Gozzi wrote:
>
> >
> > Hi everone.. I am recently trying to use and learn GRETL..I need help..when 
> > i try� to confront the sign of the return of the time series of index 
> > FTSEMIB with the sign of the
> > time series of the returns of every of the of every of its 40 elementary 
> > members. In order to count how many times there is an agreement between the 
> > sign of each return and
> > that one of index FTSEMIB.
> >
> > I wanted to resolve the problem using the function SIGN� but such function 
> > lacks in the directory of Gretl.
> >
> > I will be very pleased to have some suggestion to this issue.
>
> How about the following?
>
> <script>
> series agree = (ret * FTSEMIB) > 0
> </script>

That's nice. The following may be overkill, but it handles a list
of series of arbitrary length (as in Giorgio's 40 components of
an index).

function series all_signs_same (series y, list L)
    series ret = 1
    scalar n = $nobs
    loop t=1..n
        loop foreach i L
            prod = y[t] * L.$i[t]
            if (missing(prod))
                ret[t] = NA
                break
            elif prod < 0
                ret[t] = 0
                break
            endif
        endloop
    endloop
    return ret
end function

illustrative use:

open data9-7
series y = diff(QNC)
list L = 2 3 4
L = diff(L)
series same = all_signs_same(y, L)
printf "proportion of obs all same sign = %g\n", mean(same)
print y d_* same -o

Allin Cottrell

Reply via email to