Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 Problemi con "Insider 3000 versione 3"
 Problemi col linguaggio di programmazione
 Coefficiente di Correlazione
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

kairen
Nuovo Utente

13 Posts

Posted - 04 April 2004 :  15:31:25  Show Profile  Reply with Quote
Mi serve calcolare il coefficiente di correlazione su due serie di dati

Potere aiutarmi: Ho messo tra apici quello che vorrei fare ma attualmente non sono in grado di

'Property Data1 as Numeric()
Property Data1 as Numeric
Endproperty

'Property Data2 as Numeric()
Property Data2 as Numeric
Endproperty

Property Periodo as Numeric
Default (14)
Range (1, 400)
Endproperty


Function Main()
Dim Ix as Numeric
'Sommatoria Dati Serie 1
Dim SumD1 as Numeric = 0
'Sommatoria Dati al quadrato Serie 1
Dim SumD12 as Numeric = 0
'Sommatoria Dati Serie 2
Dim SumD2 as Numeric = 0
'Sommatoria Dati al Quadrato Serie 2
Dim SumD22 as Numeric = 0
'Sommatoria Dati Serie1*Serie2
Dim SumD1D2 as Numeric = 0
'Variabili di Comodo
Dim Num as Numeric = 0
Dim Den as Numeric = 1
Dim Ret as Numeric

For Ix = 0 to Periodo - 1 Step 1
'
' Come posso fare per calcolarle ????
'
'SumD1 = SumD1 + Value(Data1,Ix)
'SumD2 = SumD2 + Value(Data2,Ix)
'SumD12 = SumD12 + Exp(2*log(Value(Data1, Ix)))
'SumD22 = SumD12 + Exp(2*log(Value(Data2, Ix)))
'SumD1D2 = SumD1D2 + Value(Data1,Ix)*Value(Data2,Ix)
Next Ix

Num = (SumD1D2 - ((1 / Periodo) * SumD1 * SumD2))
Den = (Sumd12 - (1 / Periodo) * exp(2 * log(SumD12)) * SumD22 - (1 / Periodo) * exp(2 * log(SumD12)))
Den = Exp(0.5 * log(Den))
Ret = Num / Den
Return Exp(2 * log(Ret))
Endfunction

grazie anticipatamente a chi pu? darmi una mano

Kairen
Luca G.



Modificato da - kairen il 04 Aprile 2004 15:33:04

SupportoTecnico
Forum Admin

1261 Posts

Posted - 04 April 2004 :  16:34:39  Show Profile  Reply with Quote
Una Property non pu? essere un array.

Quindi non puoi scrivere una cosa del genere:

Property Data1 as Numeric()

Che tipo di dati dovrebbero rappresentare Data1 e Data2? indicatori? uno dei valori fondamentali? apertura, chiusura, massimo, minimo ecc..?

La soluzione ? gestire Data1 e Data2 all'interno della funzione Main magari assegnado loro dei valori diversi a seconda del valore di una Property utilizzando nella funzione Main ad esempio un "Select case":

Property Tipo As Numeric
List (Tipo1, 1)
List (Tipo2, 2)
List (Tipo3, 3)

Default (1)
EndProperty


Function Main()
dim Data1 as Numeric()
dim Data2 as Numeric()

Select Case Tipo
case 1
Data1 = Open
Data2 = Close
case 2

case 3

endselect


EndFunction

Go to Top of Page

kairen
Nuovo Utente

13 Posts

Posted - 04 April 2004 :  16:44:14  Show Profile  Reply with Quote
Volevo dare la massima autonomia possibile all'indicatore ad esempio assegnando Data1 alla chiusura e Data2 a uno degli indicatori (ad esempio il Roc) , in modo che la funzione sia il massimo possibile autonoma.
Ad esempio voi per il vostro indicatore moveav riuscite a passare un'array di dati in imput
(ad esempio moveav(h+c/2, 20, s) ) ? possibile fare lo stesso per la mia funzione

grazie ancora
Kairen



Modificato da - kairen il 04 Aprile 2004 16:46:17
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 04 April 2004 :  18:51:15  Show Profile  Reply with Quote
Per ora non ? possibile farlo.
Devi riuscire a risolvere come suggerito. Non c'? altro modo.
Una Property infatti pu? solo essere un valore e non un'espressione o un array.

Go to Top of Page

kairen
Nuovo Utente

13 Posts

Posted - 04 April 2004 :  23:54:07  Show Profile  Reply with Quote
Scusa se rompo ancora un pochettino, ma ...
A me effettivamente non mi serve creare un indicatore, ma una funzione di servizio da utilizzare poi, per la creazione di indicatori e/o trading system.
Per questo mi servirebbe la max flessibilit? possibile, anche se poi le serie di dati le devo caricare io.
Anche questo non ? possibile farlo?
Ad esempio una stupidissima funzione che mi calcola la radice quadrata di un numero invece di dover scrivere ogni volta exp(0.5*log(n))

Grazie ancora
Kairen

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 05 April 2004 :  11:25:23  Show Profile  Reply with Quote
Certo, questo lo puoi fare.

Esempio:


Function Main()
Dim l as Numeric
l = pippo(close, rsi(close, 14))
Endfunction


Function pippo(Data1 as Numeric(), Data2 as Numeric()) as Numeric
.........
.........
.........
Endfunction



Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07