Algoritmi genetici (1 Viewer)

Skarso

Forumer attivo
Ciao Skarso, sono un nuovo utente del forum è sono interessato a coprendere come vorresti applicare tale strumento di programmazione ad un'analisi su serie storica. Purtroppo, nonostante abbia letto la dispensa, non sono stato in grado di comprendere a fondo lo strumento. Se potessi esporre in maniera più semplice il funzionamento e l'obiettivo ( in termini pratici) potresti veramente farmi una cortesia. Coridali saluti.


in effetti il “papero” segnalato non spiega come applicare gli algoritmi genetici alla serie storica di uno strumento finanziario e neppure io l’ ho ( ancora ) spiegato
occorre prima decidere cosa si vuole trovare e/o stimare, poi si deve tradurre l’ oggetto della ricerca in una stringa di “1” e “0”, dopo di che applicare iterativamente l’ algoritmo
nella routine “NEWGEN” ho mostrato come replicare il procedimento di generazioni successive della popolazione indicato nel “papero” segnalato, mentre come applicazione pratica ho già detto che intendo stimare per un sistema a fuzzy logic 2 parametri e trovare le 5 regole di funzionamento
se qualcuno vuole proporre qualche altro tipo di ricerca da effettuare, sono disponibile a meno che non riguardi la “Lingua di Bayer” o la “Gobba di Quasimodo” . . . :D
esistono dei tools già predisposti per essere utilizzati con alcuni linguaggi ( es Matlab ) ma non per tutti e specialmente non esistono per i linguaggi dei programmi-pacco . . .
tuttavia anche là dove esistono dei tools, questi non sono facilmente adattabili in un TS quando si vuole fare una previsione seria cioè ex-ante in continuo per evitare l’ overfitting da training
inoltre in questo campo che è sempre meglio evitare di utilizzare delle black box, quindi anche se il codice è piuttosto oneroso meglio farselo in casa . . .
morale: non date credito al disturbatore . . . :down:
aprendo questo thread e pubblicando il codice mi riprometto di stimolare qualcuno ( es Ender ? ) interessato o semplicemente stimolato a replicarlo magari in un altro linguaggio onde confrontare i risultati, senza contare che qualcuno più bravo di me nel programmare potrebbe anche trovare qualche soluzione più semplice
 
Io ho Matlab, non of...... ovviamente, con tutti i tool. Ho già scaricato anche una dispensa di ingegneria sulle reti neurali perché mi sono sempre interessato all'argomento di questi strumenti ( reti e AG). Tutto questo perchè lessi a suo tempo qualche nozione su un testo di DI LORENZO. Dato che, in questo libro venivano descritte in maniera molto approsimativa delle analisi su titoli con tali strumenti, ho pensato bene di informarmi a riguardo. Al momento purtroppo non ho molto tempo libero, però se ti servisse una mano a sviluppare in concomitanza qualche lavoro su AG o NeuNet, sarei lieto di darti un'aiuto. Parliamo di febbraio però. Purtroppo di VB non ho molta exp anche se dovrebbe essere più semplice di MatLab da usare. Ho sicuramente una guida ancora sul pc, anche se ho usato qlcs su VBE per creare qualche formula di AT.
 

GiuliaP

The Dark Side
...molto probabilmente interverranno sapientoni ed espertoni ( in realtà come al solito disinformati sull’ argomento oggetto del thread . . . :D ) che si affretteranno ad affermare che invece i GA non servono a un tubbo, bla bla bla etc ...

ECCOMIIIIIII! :D

Opinione personale: dal ritmo con cui tiri fuori nuove tecniche pittoresche con relative iperfittanti ottimizzazioni, deduco che il mercato non ti ha ancora fatto capire il tuo (gigantesco) errore di fondo. Sarebbe il caso forse di approfondire il concetto di overfitting. Che io in verità mi sogno la notte e mi ritrovo anche nella minestra, ma che tu forse fraintendi completamente.

Consiglio spassionato da ignorante, invidiosa, distruttrice incallita :D (se vuoi puoi aggiungere qualche altro aggettivo qualificativo a piacere, non mi offendo mai ;))

Buon Natale Skarso, soprattutto sereno ;)
 
Ricordo a tutti che la scienza va avanti per ipotesi. Se tutti stessero con le mani in mano e a criticare saremo all'età della pietra.
 

Skarso

Forumer attivo
Ricordo a tutti che la scienza va avanti per ipotesi. Se tutti stessero con le mani in mano e a criticare saremo all'età della pietra.


ben detto Sylar ! :up:
tenere un sano atteggiamento di scetticismo è doveroso, ma occorre pur andare avanti nella ricerca valutando attentamente i risultati ottenuti
che poi le ipotesi che si fanno, prima o poi verranno falsificate è nell’ ordine delle cose anzi assicurano che l’ ipotesi è, era scientifica ( Popper )
forse non c’ è nessuno che teme l’ overfitting più di me ed infatti per ridurre al minimo almeno quello dovuto al training ho cura di effettuare sempre stime ex-ante, cioè nel fare la previsione per il giorno N non fare mai conoscere all’ algoritmo il risultato del giorno N, ma solo quelli precedenti fino al giorno N - 1

quindi stando così le cose come è facile verificare nei files open source, parlare di overfitting senza conoscere è pura illazione ed anche malafede . . . :down:
 

expectancy.pm

Nuovo forumer
ben detto Sylar ! :up:
tenere un sano atteggiamento di scetticismo è doveroso, ma occorre pur andare avanti nella ricerca valutando attentamente i risultati ottenuti
che poi le ipotesi che si fanno, prima o poi verranno falsificate è nell’ ordine delle cose anzi assicurano che l’ ipotesi è, era scientifica ( Popper )
forse non c’ è nessuno che teme l’ overfitting più di me ed infatti per ridurre al minimo almeno quello dovuto al training ho cura di effettuare sempre stime ex-ante, cioè nel fare la previsione per il giorno N non fare mai conoscere all’ algoritmo il risultato del giorno N, ma solo quelli precedenti fino al giorno N - 1

quindi stando così le cose come è facile verificare nei files open source, parlare di overfitting senza conoscere è pura illazione ed anche malafede . . . :down:
Grande Skarso, io infatti non riesco a capire come si può parlare di overfitting se si adatta una certa misura fino al giorno prima del trading. Direi che è semplicemente un modo per "stare vicino" ad ogni eventuale cambiamento dei mercati. Se poi ci spiegano dove sta l'overfitting lo valutiamo :)
 

Skarso

Forumer attivo
allora in attesa che ci venga spiegato dove sta l’ overfitting nei nostri lavori, proviamo a proseguire
è chiaro come codificare in formato binario ( 1 e 0 ) quello che cerchiamo, in questo caso 2 parametri e 5 regole ?
ricordo che i 2 parametri riguardano le ascisse dei fuzzy sets con 2^5 = 32 valori possibili da moltiplicare per qualche valore elementare ( es 0.05 oppure 0.1 ), mentre gli atri 5 le regole da applicare
1 = sell 2 = flat 3 = buy
di seguito il codice del loop principale

Codice:
' immetti valori x i primi 20 gg
    For k = 1 To 20
        R_low(k + 3) = -2
        R_mlow(k + 3) = -0.5
        R_zero(k + 3) = 0
        R_mhigh(k + 3) = 0.5
        R_high(k + 3) = 2
        R_rule1(k + 3) = 1
        R_rule2(k + 3) = 1
        R_rule3(k + 3) = 2
        R_rule4(k + 3) = 3
        R_rule5(k + 3) = 3
    Next k
    '
    ' inizia ciclo con GA
    For k = 21 To Last
        Primo = 1
        If k > Window Then
            Primo = k - Window + 1
        End If
        '
        For i = 1 To Nmeio
            Bestx(i) = -9999
        Next i
        '
        '  diminuisce il numero di cicli
        '  al crescere di k
        If k < 1500 Then
            p = k / 100
        Else
            p = 15
        End If
        For m = 1 To 25 - p
            Newgen                  ' crea nuova generazione
            Findbestx1 Input1(), k  ' verifica nuova generazione
        Next m
        '
        ' memorizza risultati x giorno k
        R_zero(k + 3) = 0
        R_mlow(k + 3) = -Best3
        R_low(k + 3) = -Best3 - Best4
        R_mhigh(k + 3) = Best3
        R_high(k + 3) = Best3 + Best4
        R_rule1(k + 3) = Bestrule(1)
        R_rule2(k + 3) = Bestrule(2)
        R_rule3(k + 3) = Bestrule(3)
        R_rule4(k + 3) = Bestrule(4)
        R_rule5(k + 3) = Bestrule(5)
        '
    Next k
    '

da cui si vede che per i primi 20 gg si parte con valori fissi nelle rispettive colonne del Foglio2 del file Excel, non potendo il GA esprimere delle previsioni senza dati passati
dopo di che vengono create un certo numero di generazioni della popolazione tramite la routine NEWGEN già vista, mentre la verifica e la scelta dei 10 elementi migliori viene fatta dalla routine FINDBESTX1 ancora da illustrare
quindi i valori contenuti nel cromosoma migliore vengono salvati e resi disponibili per la previsione del giorno ”k”
se ci sono dubbi di interpretazione prima di proseguire invito a chiedere spiegazioni
 

Users who are viewing this thread

Alto