Thank so much Allin. I have tried your script and works perfectly.
Giorgio
-----Messaggio originale-----
Da: gretl-users-bounces(a)lists.wfu.edu [mailto:gretl-users-bounces@lists.wfu.edu] Per conto
di Allin Cottrell
Inviato: giovedì 1 aprile 2010 22.06
A: r.lucchetti(a)univpm.it; Gretl list
Oggetto: Re: [Gretl-users] GRETL problems about sign comparison
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