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 ... (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 rossoA 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
)
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.