Pagina 4 di 5

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 01/11/2011, 12:44
da Mauro
Una prima osservazione (non ho ancora fatto le modifiche ai collegamenti DDE). Premendo il tasto "Disattiva DDE" questo è il comportamento mostrato dal sistema: si ha un reset dei contatori, le colonnine grafiche scompaiono e, con esse, anche il grafico. Dopo un secondo circa, tuttavia, il processo di ricezione dati riprende pur senza aver premuto il tasto "Attiva DDE".

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 01/11/2011, 12:57
da th.ch.
Infatti. A conferma che è proprio la gestione del dde a crearci problemi.
Cercheremo di ovviare anche a questo.

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 02/11/2011, 16:49
da LorenzoA
ciao thurio, mauro e chiunque segua,

ho avuto problemi a capire come funziona sto benedetto dde ed alla fine ne sono venuto a capo (credo)

allora, visto che non può poggiare tutto l'onere su Thurio, voglio indicare una soluzione per chi volesse mettersi un pò a smanettare

Thurio se non devo piu postare questi articoli, cazziami pure una volta per tutte e io non lo farò piu, ed elimina pure l'intervento. Il mio intento è quello di aiutare ma se dovesse essere di distrazione o confusione ... :sorry
:31

(piccola raccomandazione di lavorare su una copia giusto per non perdere eventuali faticosi settaggi gia presenti)

vediamo qual'è il problema,
se in una cella mettiamo il last_indice, in un'altra il percent_indice, poi di seguito continuiamo con last_future, percent_future, bid_opzione1, ask_opzione1, bid_opzione2, ask_opzione2 risulta che abbiamo attivato otto canali dde;

la matrice azDDE sarà quindi formata da 8 celle ed in ognuna di queste ( cioè azDDE(1), azDDE(2), ..., azDDE(8)) sarà contenuto ognuno degli 8 valori di cui sopra.

Io per esempio ho portato l'intera chain delle opzioni del mese sul foglio2, quindi ho circa 200 canali aperti (ora lo so, prima no!)

Dato che nelle celle C11,D11 e C15,D15 vanno messi esattamente i bid ed ask delle opzioni che noi vogliamo, per identificare precisamente quali ci interessano bisogna procedere in questo modo utilizzando il Debug.

Spero che dalla foto si capisca qualcosa:
- aprire l'ambiente di programmazione con Alt+F11, aprire il listato del modulo 1 e cliccare col mouse sinistro alla sinistra della riga indicata con la selezione rossa.
- Il pallino rosso che comparirà accanto alla riga significa che l'esecuzione del programma verrà sospesa in questo punto

- appena sotto questo punto d'interruzione , copiare questo codice di test sostituendo le attuali quattro righe simili

Codice: Seleziona tutto
        ActiveWorkbook.SetLinkOnData azDDE(1), "Macro1"
        ActiveWorkbook.SetLinkOnData azDDE(2), "Macro1"
        ActiveWorkbook.SetLinkOnData azDDE(3), "Macro1"
        ActiveWorkbook.SetLinkOnData azDDE(4), "Macro1"
        ActiveWorkbook.SetLinkOnData azDDE(5), "Macro1"
        ActiveWorkbook.SetLinkOnData azDDE(6), "Macro1"
        ActiveWorkbook.SetLinkOnData azDDE(7), "Macro1"
        ActiveWorkbook.SetLinkOnData azDDE(8), "Macro1"


    - salvare

    - portare in primo piano il foglio excel

    - schiacciare il pulsante "Attiva DDE"

    - quasi immediatamente verrà portato in primo piano il codice con la freccetta ferma sul punto di sospensione che avevamo impostato precedentemente col pallino rosso (vedi figura)

    - a questo punto passare (senza cliccare) il mouse su ognuno degli 8 "azDDE(n)" presenti sul codice e si accenderà la nuvoletta di suggerimento indicante quale valore degli otto è salvato dentro quella specifica cella. (guardare come esempio la figura che evidenzia il contenuto della cella azDDE(96)

    - Prendere nota delle righe che restituiscono il codice dde, bid e ask, delle opzioni che servono

    - eliminare le altre che non servono, a noi servono solo il bid e ask delle due opzioni prese in esame quindi devono rimanere quattro righe delle otto iniziali.


intanto si può stoppare il programma sia tramite il pulsante "disattiva dde" del foglio o tramite pulsante di stop nella barra degli strumenti dell'ambiente di programmazione si può togliere anche il punto d'interruzione cliccando di nuovo sul pallino rosso

A questo punto si noterà che tutte le righe sopravvissute terminano con "Macro1", queste chiamate vanno sostituite con questa sequenza:

[list=]
la riga che corrisponde al dde della Call Bid va sostituita con "Macro1"
la riga che corrisponde al dde della Call Ask va sostituita con "Macro2"
la riga che corrisponde al dde della Put Bid va sostituita con "Macro3"
la riga che corrisponde al dde della Put Ask va sostituita con "Macro4"
[/list]

spero di non aver aumentato la confusione
io ho ancora qualche problema col grafico ma sono ottimista :))

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 02/11/2011, 16:55
da th.ch.
Lorenzo, altro che cazziare. Meriti un premio :13
(anzi: due. Uno per l'impegno ed uno per la soluzione).
Sto seguendo il forum con una specie di cellulare (sic!).
Stasera o domani mattina cercherò di mettere a frutto i tuoi suggerimenti.
Grazie...!

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 02/11/2011, 17:23
da Mauro
Lorenzo, un bravo anche da parte mia. Ottimo davvero!
:thanks

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 02/11/2011, 17:28
da LorenzoA
si fa quel che si può, io il VBA non lo conosco

comunque non capisco perche a volte il grafico va, a volte no. A secondo di come si attiva o disattiva
Adesso va!

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 02/11/2011, 18:03
da th.ch.
Già... :20
Hai provato a schiacciare il tasto "attiva" per più di una volta, sino a quando non appaiono valori nella colonna AA?

Pare comunque che Microsoft stia meditando di abbandonare il dde.
Enrico Bagnoli (ing. e programmatore in VB) mi diceva che sarà sostituito da protocolli di comunicazione più evoluti.

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 03/11/2011, 15:52
da th.ch.
Ho dato il via alla versione corretta da Lorenzo ( :33 ) apportando ulteriori modifiche.
Il tutto allo scopo di snellire per quanto possibile le istruzioni.
Per ora pare che il grafico non crei problemi. Tengo sotto osservazione il foglio per poi eventualmente postarlo.

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 03/11/2011, 16:37
da th.ch.
Variazioni sul tema.

Come giustamente fatto osservare da Lorenzo, il foglio serve anche per monitorare lo spread tra Bid e Ask.
I primi esperimenti paiono incoraggianti.

Re: Anticipare i movimenti del mercato...

MessaggioInviato: 03/11/2011, 16:54
da th.ch.
Quando il foglio è stato attivato l'indice era in guadagno di circa il 2%.
Nel punto centrale del grafico era salito a 2,63%. Nella parte finale era sceso a 2,46%.