|
Diego Vassallo
Amministratore
 
156 Messaggi |
Inserito il - 27/09/2007 : 10:06:34
|
Abbiamo detto che vogliamo sapere come comportarci operativamente quando ad un determinato giorno abbiamo una seduta positiva. Ci conviene metterci lunghi (posizione LONG) o metterci corti (posizione Short) ? Utilizziamo le lezioni del capitolo C1 e iniziamo a scrivere il codice che esplora tutta la serie storica alla ricerca delle sedute con chiusura maggiore dell'apertura ( Le sedute che noi chiameremo Positive). Nel file di AMGA che avete scaricato , apriamo il Visual Basic Editor , creiamo un modulo e scriviamo la macro >> ricerca_apertura_positiva <<. Una seduta positiva è, come ho detto, quando la chiusura è maggiore dell'apertura nella sessione di borsa considerata. Visto e considerato che la serie storica su cui lavoriamo è formata da 2537 sessioni la cosa ovvia è quella di lasciare fare tutto ad un programma scritto appositamente. Impostiamo quindi un ciclo che esplora tutta la serie storica ed estrae solo i giorni che corrispondono ai nostri criteri di ricerca. La colonna C contiene il dato di apertura e la colonna F contiene il dato di chiusura. Annotazione importante : Excel , per disegnare correttamente grafici di borsa, obbliga a disporre i dati nel seguente ordine : Volumi, apertura, massimo, minimo,chiusura. Mi raccomando quindi di prendere atto da subito di questa piccola necessità . Detto questo iniziamo a scriviamo il programma che ci serve. Il ciclo utilizzato è il più semplice ciclo for quindi avremo una situazione del genere..
Sub ricerca_apertura_positiva()
' definisce le variabili Dim valoreapertura As Single Dim valorechiusura As Single
' pulisce tutte le celle colorate del foglio Workbooks("amga.xls").Worksheets("amga").Cells.Interior.ColorIndex = xlNone
' definisco il ciclo For ciclo = 2 To 2538
' per ogni step del ciclo prelevo i valori di chiusura e apertura valoreapertura = Workbooks("amga.xls").Worksheets("amga").Cells(ciclo, 3).Value valorechiusura = Workbooks("amga.xls").Worksheets("amga").Cells(ciclo, 6).Value ' riconosco le sedute positive If valorechiusura > valoreapertura Then Workbooks("amga.xls").Worksheets("amga").Cells(ciclo, 8).Interior.ColorIndex = 3 End If Next
End Sub
In sostanza con il nostro ciclo for abbiamo analizzato ogni singola riga dello storico e su di essa abbiamo confrontato il valore di chiusura con il valore di apertura; nel caso la condizione da noi ricercata si è realizzata abbiamo segnato la colonna 8 con una cella colorata di rosso. Allego il file amga con la macro relativa.
AMGA
|
|