Programmazione Excel TS Giorno e Notte

Credo di aver perso completamente il controllo...
e sinceramente, a mio modesto parere,
l'uso di dati intraday, di finestre e medie,
snatura le mie idee iniziali. Nonostante questo,
seguo con interesse lo sviluppo.
 
Ultima modifica:
Non vedo aggiunte sicuro di aver copiato i file giusti?
Non fare lo zip, teniamolo aperto.
Servono anche i dati intraday poi, non solo i daily!

OK adesso mi collego direttamente al DB Dropbox, non servono più gli zip.
Ci sono i 5 EOD nel gruppo 2 "TS giorno notte":
 

Allegati

  • amign.jpg
    amign.jpg
    17,1 KB · Visite: 261
Stima della soglia kappa1
definita l’ ampiezza di una finestra che contiene N giorni antecedenti il giorno su cui si vuole fare la previsione, il procedimento, trattandosi di 1 solo parametro, è del tipo a “griglia” cioè si parte da un certo valore, si varia detto valore a piccoli step ( es 0.1 ) e si sceglie quello che massimizza una certa fitness function ( nel caso specifico x semplicità è stata scelta la somma dell’ utile, vedi controllo “metodo di scelta soglia” sul Foglio1 )
quando i parametri da stimare sono + di 1 si ricorre a metodi numerici oppure meglio ancora agli algoritmi genetici che in quanto approssimatori universali sono adatti a trovare soluzioni a molti problemi di calcolo
poiché i loops in Excel non sono possibili, detta stima viene fatta col VB che è il grande valore aggiunto di Office
il Visual Basic è molto semplice, come parlare in Inglese tecnico, e deriva direttamente dal vecchio BASIC ( acronimo x Beginners All Purpose System Instruction Coding ) degli anni ’70 o giù di lì
riassumo qui le istruzioni principali:

Items1 = 20
For i=1 to Items1
Tabkappa1(i) = 0.1 – 0.1*i
Next i

For k = 5 To Last
Primo = 1
If k > Window Then
Primo = k - Window + 1
End If
Findbestx1 Input1(), k
R_kappa1(k + 3, 1) = Tabkappa1(Best1)
R_casi.Cells(k + 3, 1).Value = Best3
Next k
'
dove input1 = inputx del Foglio2
yield2 = yield2 del Foglio2
'
Sub Findbestx1(fx() As Double, k As Integer)
Dim i As Integer
Dim j As Integer
Dim m As Integer
Dim d As Double
Dim cumx As Double
Dim bestx As Double
'
ReDim Inputz(1 To Window) As Double
'
Ultimo = k
Best1 = Items1: Best2 = 0
Best3 = 0
'
For m = 1 To Items1
j = 0
For i = Primo To Ultimo - 1
If fx(i) <= Tabkappa1(m) Then
j = j + 1
Inputz(j) = Yield2(i)
End If
Next i
'
If j > 8 Then
cumx = Cum(Inputz(), j)
If cumx > Best2 Then
Best2 = cumx
Best1 = m
Best3 = j
End If
End If
Next m
'
End Sub

Public Function Cum(f() As Double, j As Integer)
Dim n As Integer
Dim cum1 As Double
'
For n = 1 To j
cum1 = cum1 + f(n)
Next n
Cum = cum1
'
End Function

mi sembra che sia abbastanza semplice interpretare le istruzioni sopra esposte x chi ha un po’ di dimestichezza con la programmazione, tuttavia chi ha bisogno di chiarimenti chieda pure liberamente senza problemi
 
Ultima modifica:
da notare che generalmente chi usa sistemi dove ci sono parametri da impostare che siano soglie o altro, assume come valore del parametro un valore fisso stimato arbitrariamente secondo il proprio buon senso oppure stimato ex post su una parte consistente ( training set ) dell’ intero data set a disposizione
noi con la rolling window riteniamo di essere andati avanti, riuscendo ad utilizzare l’ intero data set contemporaneamente come training e test set . . . ;)
 
Ultima modifica:
Codice:
Stima della soglia kappa1
definita l’ ampiezza di una finestra che contiene N giorni antecedenti il giorno su cui si vuole fare la previsione, il procedimento, trattandosi di 1 solo parametro, è del tipo a “griglia” cioè si parte da un certo valore, si varia detto valore a piccoli step ( es 0.1 ) e si sceglie quello che massimizza una certa fitness function ( nel caso specifico x semplicità è stata scelta la somma dell’ utile, vedi controllo “metodo di scelta soglia” sul Foglio1 )
quando i parametri da stimare sono + di 1 si ricorre a metodi numerici oppure meglio ancora agli algoritmi genetici che in quanto approssimatori universali sono adatti a trovare soluzioni a molti problemi di calcolo
poiché i loops in Excel non sono possibili, detta stima viene fatta col VB che è il grande valore aggiunto di Office
il Visual Basic è molto semplice, come parlare in Inglese tecnico, e deriva direttamente dal vecchio BASIC ( acronimo x Beginners All Purpose System Instruction Coding ) degli anni ’70 o giù di lì
riassumo qui le istruzioni principali:

Items1 = 20
For i=1 to Items1
Tabkappa1(i) = 0.1 – 0.1*i
Next i

For k = 5 To Last
Primo = 1
If k > Window Then
Primo = k - Window + 1
End If
Findbestx1 Input1(), k
R_kappa1(k + 3, 1) = Tabkappa1(Best1)
R_casi.Cells(k + 3, 1).Value = Best3
Next k
'
dove input1 = inputx del Foglio2
yield2 = yield2 del Foglio2
'
Sub Findbestx1(fx() As Double, k As Integer)
Dim i As Integer
Dim j As Integer
Dim m As Integer
Dim d As Double
Dim cumx As Double
Dim bestx As Double
'
ReDim Inputz(1 To Window) As Double
'
Ultimo = k
Best1 = Items1: Best2 = 0
Best3 = 0
'
For m = 1 To Items1
j = 0
For i = Primo To Ultimo - 1
If fx(i) <= Tabkappa1(m) Then
j = j + 1
Inputz(j) = Yield2(i)
End If
Next i
'
If j > 8 Then
Select Case Scelta
Case 1
cumx = Cum(Inputz(), j)
Case 2
cumx = Ema(Inputz(), j)
Case 3
cumx = Omega(Inputz(), j)
Case 4
cumx = Sharpe(Inputz(), j)
End Select
If cumx > Best2 Then
Best2 = cumx
Best1 = m
Best3 = j
End If
End If
Next m
'
End Sub

Public Function Cum(f() As Double, j As Integer)
Dim n As Integer
Dim cum1 As Double
'
For n = 1 To j
cum1 = cum1 + f(n)
Next n
Cum = cum1
'
End Function

mi sembra che sia abbastanza semplice interpretare le istruzioni sopra esposte x chi ha un po’ di dimestichezza con la programmazione, tuttavia chi ha bisogno di chiarimenti chieda pure liberamente senza problemi

No....tutto chiaro......procediamo pure.......
 

Allegati

  • Leslie_Nelson.jpg
    Leslie_Nelson.jpg
    7,2 KB · Visite: 249
No....tutto chiaro......procediamo pure.......

però se non mi dite cosa non è chiaro . . . com’aggio a fa’ ? :-? :wall:
noto una grande reticenza a far domande, allora facciamo una cosa: se non volete esporvi pubblicamente a chiedere chiarimenti, mandatemi un mp . . .
se del caso risponderò pubblicamente senza nominare l’ autore della richiesta . . .
 
però se non mi dite cosa non è chiaro . . . com’aggio a fa’ ? :-? :wall:
noto una grande reticenza a far domande, allora facciamo una cosa: se non volete esporvi pubblicamente a chiedere chiarimenti, mandatemi un mp . . .
se del caso risponderò pubblicamente senza nominare l’ autore della richiesta . . .

Skarso,
non me ne volere.

Ma tu non puoi usare termini come "fitness function" e poi dare per scontato che tutti sappiano di cosa parli.
Che è? Ginnastica?

Abbi pazienza eh... ;)

Anzi... facciamo così... quanti hanno capito il significato della seguente frase?
"si ricorre a metodi numerici oppure meglio ancora agli algoritmi genetici che in quanto approssimatori universali sono adatti a trovare soluzioni a molti problemi di calcolo"
 
Ultima modifica:

Users who are viewing this thread

Back
Alto