Scripts di esempio

Collapse
This is a sticky topic.
X
X
 
  • Ora
  • Show
Clear All
new posts
  • nevada
    Junior Member

    • Apr 2013
    • 13

    #121
    Per iniziare vi ringrazio moltissimo per ler risposte. Purtroppo stavo effettivamente vericando anche io che i valori degli indicatori non erano recuperabili direttamente dallo script. Contemporaneamente stavo provando anche la soluzione di calcolarne qualcuno direttamente all\'interno dello script, ma ho trovato anche qui un piccolo problema che non capisco se sia risolvibile. Cone prova ho calcolato la regressione lineare tramite l\'apposita funzione. I valori sembrano essere calcolati correttamente, ma con una differenza (che sembrerebbe abbastanza significativa) rispetto agli stessi valori riportati dagli indicatori. La differenza sta nella precisione dei dati double. Gli indicatori restituiscono numeri con 3 cifre decimali, mentre io con gli script riesco ad ottenere sempre valori con solo 2 cifre decimali. Potreste darmi i vostri pareri e/o conferme su questo aspetto?

    Per quanto riguarda il workaround indicatomi da Massimiliano, effettivamente è un pò arzigogolato, ma niente di trascendentale... lo proverò a breve (adesso sto finendo qualche prova con i soli workflow) e se in tal modo riesco ad ottenere i valori degli indicatori, penso che potrò ritenermi comunque molto soddisfatto.

    Dalle prove che sto facendo emerge che già i workflow consentono di strutturare una buona ottimizzazione di analisi e operatività, ma se riuscirò a protare gli stessi valori negli script si aprirà un nuovo mondo con possibilità infinite e favolose.

    Complimenti ancora per tutto il vostro lavoro.

    P.S. giusto per curiosità, prevedete di poter implementare in futuro ciò che servirà per usare gli indicatori direttamente negli script?

    Renato.
    Un investitore che ha tutte le risposte, non ha capito la domanda.
    Un saluto a tutti da Renato (Skype nevada1969)

    Comment

    • chrisbasetta
      Senior Member
      • Aug 2008
      • 693

      #122
      Originariamente Scritto da Francario Massimiliano
      Salve Renato,

      non è possibile aggiungere indicatori direttamente dallo script.
      Al momento, esiste comunque un modo per poter ottenere i valori degli indicatori all\'interno dello script, anche se un pò complicato. Ecco come fare:

      - Aprire la finestra Workflows, quindi aggiungere un nuovo Workflow, non impostare nulla nella sezione Azione e passare subito alla sezione Condizione;

      - Modificare la condizione del nuovo workflow, andando a scegliere come primo operatore un indicatore di analisi tecnica;

      - Selezionare il sottostante desiderato, aggiungere il timeframe su cui calcolare gli indicatori, aggiungere gli indicatori voluti. Suggerisco di assegnare un nome ad ogni valore di uscita degli indicatori, in modo da poterne recuperare più facilmente i valori: ad esempio, se aggiungo una media mobile esponenziale sul Close a 20 periodi, posso assegnare un nome tipo "EMA_20". I nomi delle uscite degli indicatori devono essere univoci, se il nome scelto esiste già all\'interno dello stesso timeframe, il software andrà automaticamente ad aggiungere un numero progressivo alla fine del nome per distinguere le varie uscite;

      - A questo punto, gli indicatori sono già inseriti e calcolati in tempo reale dal software;

      - Annullare la costruzione del nuovo Workflow;

      - Andare nello Script, ed utilizzare il metodo AssertHistory del sottostante su cui sono stati applicati gli indicatori, passando come parametro il timeframe desiderato. Il metodo AssertHistory restituisce un oggetto di tipo THistoryDataContext;

      - Usare il metodo GetSerieByName sull\'oggetto di tipo THistoryDataContext appena ottenuto, passando come parametro il nome del valore di uscita dell\'indicatore desiderato: riprendendo l\'esempio di prima, avrei dovuto usare "EMA_20" come nome della serie da recuperare. Questo metodo restituisce un oggetto di tipo TDataVector;

      - Usare le proprietà ed i metodi dell\'oggetto TDataVector appena ottenuto per accedere ai valori dell\'indicatore. Le proprietà più utili sono Last e LastClosed, per ottenere il valore della barra corrente ancora in "costruzione", ed il valore della penultima barra, ossia l\'ultimo valore "finalizzato" dell\'indicatore.

      Spero di essere stato d\'aiuto

      Max Francario
      Grazie Max!
      Ho appena provato e...funziona! (ovviamente...)

      Comment

      • nevada
        Junior Member

        • Apr 2013
        • 13

        #123
        rieccomi... e devo ancora chiedere il vostro aiuto...
        Ho provato a seguire le indicazioni, ma evidentemente sbaglio qualcosa. L\'unica differenza che c\'è nel mio test è che non ho annullato la creazione del workflow, ma l\'ho tenuto attivo con una condizione che contiene gli indicatori che vorrei leggere nello script. Il punto è che non riesco ad accedere agli indicatori. Leggendo l\'elenco delle serie contenute nell\'oggetto HistoryDataContext che ho creato non trovo i miei indicatori.
        Qui di sotto vi riporto le poche righe dello script che sto iniziando a fare. Come dicevo, lo showMessage della ListaSerie mi riposrta solo i valori : CLOSE,HIGH,LOW,OPEN,OPENINTEREST,TIMESTAMP,VOLUME e non ci ritrovo l\'indicatore che ho aggiunto io che si chiama LR (una semplice regressione lineare).
        Riuscite a darmi qualche dritta?
        Vi ringrazio in anticipo!
        Renato.

        \'************************************************ ***********
        Dim BRS_SS as TUnderlying
        Dim BRS_HDC_5M as THistoryDataContext
        Dim BRS_LR_5M as TDataVector
        Dim ListaSerie as TStringList
        \'------------------------------------------------------
        BRS_SS = CurrentStrategy.GetMainUnderlying
        BRS_HDC_5M = BRS_SS.AssertHistory(RTH_5MIN)
        ListaSerie = New TStringList
        BRS_HDC_5M.GetSeriesNames(ListaSerie)
        ShowMessage(ListaSerie.GetText)
        ListaSerie.Free
        \'************************************************ ***********
        Un investitore che ha tutte le risposte, non ha capito la domanda.
        Un saluto a tutti da Renato (Skype nevada1969)

        Comment

        • Smash
          Senior Member

          • Feb 2012
          • 351

          #124
          Originariamente Scritto da nevada
          rieccomi... e devo ancora chiedere il vostro aiuto...
          Ho provato a seguire le indicazioni, ma evidentemente sbaglio qualcosa. L\'unica differenza che c\'è nel mio test è che non ho annullato la creazione del workflow, ma l\'ho tenuto attivo con una condizione che contiene gli indicatori che vorrei leggere nello script. Il punto è che non riesco ad accedere agli indicatori. Leggendo l\'elenco delle serie contenute nell\'oggetto HistoryDataContext che ho creato non trovo i miei indicatori.
          Qui di sotto vi riporto le poche righe dello script che sto iniziando a fare. Come dicevo, lo showMessage della ListaSerie mi riposrta solo i valori : CLOSE,HIGH,LOW,OPEN,OPENINTEREST,TIMESTAMP,VOLUME e non ci ritrovo l\'indicatore che ho aggiunto io che si chiama LR (una semplice regressione lineare).
          Riuscite a darmi qualche dritta?
          Vi ringrazio in anticipo!
          Renato.

          \'************************************************ ***********
          Dim BRS_SS as TUnderlying
          Dim BRS_HDC_5M as THistoryDataContext
          Dim BRS_LR_5M as TDataVector
          Dim ListaSerie as TStringList
          \'------------------------------------------------------
          BRS_SS = CurrentStrategy.GetMainUnderlying
          BRS_HDC_5M = BRS_SS.AssertHistory(RTH_5MIN)
          ListaSerie = New TStringList
          BRS_HDC_5M.GetSeriesNames(ListaSerie)
          ShowMessage(ListaSerie.GetText)
          ListaSerie.Free
          \'************************************************ ***********



          In questo esempio l\'indicatore creato da WorkFlow su time frame 15 minuti si chiama "RegLine":


          Codice:
          Dim myUnderlying as TUnderlying
          Dim myHistoryDataContext as THistoryDataContext
                          
          Dim myDataVector as TDataVector                    
                            
          Dim str as String 
          Dim nBarsAgo as Integer
                                                
          myUnderlying = CurrentStrategy.GetMainUnderlying      
          myHistoryDataContext = myUnderlying.AssertHistory(RTH_15MIN)
          
          
          
          
          \'Ottenimento dei dati storici dell\'indicatore richiesto
          myDataVector = myHistoryDataContext.GetSerieByName("RegLine")     
                                                                  
          \'Richiesta di mostrare i valori dell\'ultima barra o candela
          str = "Ultima barra non chiusa se a mercati aperti:"
          str = str & Chr(13) & Chr(10)
          str = str & "Valore:   " & myDataVector.Last        
          ShowMessage(str)  
          
          
          \'Richiesta di mostrare i valori della penultima barra o candela 
          str = "Ultima barra sicuramente chiusa:"  
          str = str & Chr(13) & Chr(10)                                                      
          str = str & "Valore:   " & myDataVector.LastClosed                       
          ShowMessage(str)        
                                                                                            
          nBarsAgo = 2                                  
          \'Richiesta di mostrare i valori di n barre fa       
          str = "Dati di " & nBarsAgo & " barre fa:"  
          str = str & Chr(13) & Chr(10)
          str = str & "Valore:   " & myDataVector.Value[myDataVector.Size-1-nBarsAgo]
          ShowMessage(str)

          Comment

          • nevada
            Junior Member

            • Apr 2013
            • 13

            #125
            Smash, grazie per la risposta. vedo che le istruzioni dei nostri 2 script sono praticamente identiche (a parte ovviamente i nomi delle variabili).
            Il problema è che se nel mio script cerco di caricare il vettore con la GetSerieByName passando come parametro ("LR") che è il nome del mio indicatore non ottengo nulla. E considerando ciò che viene restituito dalla funzione GetSeriesName mi viene da pensare che non lo carica perchè semplicemente non lo vede. E\' come se sbagliassi qualcosa nella fase di creazione degli indicatori con il workflow che poi dovrebbero essere visti dallo script.
            Per verifica ora provo a mettere un indicatore che si chiama RegLine e provo paro paro il tuo script...

            edito : ho fatto la prova creando una nuova strategia con l\'indicatore RegLine a 15min. e usando il tuo codice... stesso risultato del mio... non carica nessun vettore di dati :-(
            Last edited by nevada; 30-04-13, 15:37.
            Un investitore che ha tutte le risposte, non ha capito la domanda.
            Un saluto a tutti da Renato (Skype nevada1969)

            Comment

            • chrisbasetta
              Senior Member
              • Aug 2008
              • 693

              #126
              Originariamente Scritto da nevada
              Smash, grazie per la risposta. vedo che le istruzioni dei nostri 2 script sono praticamente identiche (a parte ovviamente i nomi delle variabili).
              Il problema è che se nel mio script cerco di caricare il vettore con la GetSerieByName passando come parametro ("LR") che è il nome del mio indicatore non ottengo nulla. E considerando ciò che viene restituito dalla funzione GetSeriesName mi viene da pensare che non lo carica perchè semplicemente non lo vede. E\' come se sbagliassi qualcosa nella fase di creazione degli indicatori con il workflow che poi dovrebbero essere visti dallo script.
              Per verifica ora provo a mettere un indicatore che si chiama RegLine e provo paro paro il tuo script...

              Hai provato a mettere il nome dell\'indicatore tra virgolette?
              E\' una stringa...

              BRS_HDC_5M.GetSerieByName("NomeIndicatore")

              se poi metti questo:

              MostraMessaggio(BRS_HDC_5)

              e fai girare lo script dovrebbe uscirti una finestra col valore dell\'indicatore
              Last edited by chrisbasetta; 30-04-13, 15:39.

              Comment

              • nevada
                Junior Member

                • Apr 2013
                • 13

                #127
                Ciao ChrisBasetta. si, l\'istruzione che uso per il caricamento è BRS_HDC_5M.GetSerieByName("LR"), non da errori di esecuzione ma non carica nulla.
                Per mia fortuna almeno la parte di sintassi di programmazione non è un problema... lavoro nel campo informatico da più di 20 anni ;-)
                Un investitore che ha tutte le risposte, non ha capito la domanda.
                Un saluto a tutti da Renato (Skype nevada1969)

                Comment

                • Smash
                  Senior Member

                  • Feb 2012
                  • 351

                  #128
                  Originariamente Scritto da nevada
                  Smash, grazie per la risposta. vedo che le istruzioni dei nostri 2 script sono praticamente identiche (a parte ovviamente i nomi delle variabili).
                  Il problema è che se nel mio script cerco di caricare il vettore con la GetSerieByName passando come parametro ("LR") che è il nome del mio indicatore non ottengo nulla. E considerando ciò che viene restituito dalla funzione GetSeriesName mi viene da pensare che non lo carica perchè semplicemente non lo vede. E\' come se sbagliassi qualcosa nella fase di creazione degli indicatori con il workflow che poi dovrebbero essere visti dallo script.
                  Per verifica ora provo a mettere un indicatore che si chiama RegLine e provo paro paro il tuo script...

                  edito : ho fatto la prova creando una nuova strategia con l\'indicatore RegLine a 15min. e usando il tuo codice... stesso risultato del mio... non carica nessun vettore di dati :-(

                  Ciao,

                  il codice che ho postato come esempio in precedenza a me funzionava!

                  Ho anche avuto modo di vedere che quando l\'indicatore non viene trovato, di fatto come valore vengono restituiti sempre degli zeri (nel senso che non vengono generati dei messaggi di errore!).


                  A questo punto le cause di errore potrebbero essere:

                  - avere sbagliato il time-frame

                  - avere sbagliato il nome dell\'indicatore

                  - non avere individuato il sottostante corretto
                  (nel senso che il mio codice di prima si riferiva ad un "MainUnderlying", quando invece nello strategy builder di Fiuto talvolta ci possono essere più di un sottostante, e magari l\'indicatore da WorkFlow era stato creato su un altro sottostante diverso dal "Main"...)

                  Comment

                  • nevada
                    Junior Member

                    • Apr 2013
                    • 13

                    #129
                    BINGO!
                    Grazie Smash, e grazie anche agli altri!
                    Avrò anche esperienza in informatica, ma si è palesata la mia incompetenza del mondo trading...
                    Il probelma era il terzo che hai indicato. Leggevo il mainunderlying che non era quello a cui erano riferiti gli indicatori. Ho letto quindi quello giusto con il metodo GetUnderlyingByIndex e ora tutto funziona.

                    spero di poter ricambiare presto il vostro aiuto :-)
                    Un investitore che ha tutte le risposte, non ha capito la domanda.
                    Un saluto a tutti da Renato (Skype nevada1969)

                    Comment

                    • nevada
                      Junior Member

                      • Apr 2013
                      • 13

                      #130
                      Un saluto a tutti... ed eccomi di nuovo. Mi scuso se posso sembrare un pò noioso, sempre qui a chiedere aiuto, ma sto cercando di capire le potenzialità degli script e mi sono reso conto di esseremi arruginito più di quanto pensavo sull lato programmazione.
                      Diciamo che ovviamente potrò arrivare a trovarmi le soluzioni anche da solo, ma naturalmente se per caso qualcuno ha già affrontato i vari problemi e mi da una manina, potrò concentrarmi di più e meglio sul lato trading, che dovrebbe effettivamente essere il mio primo "dovere"...
                      Vabbè, veniamo al punto. Mi trovo ora a cercare un modo di crearmi qualcosa che mi consenta di visualizzare il risultato di alcuni calcoli fatti nello script in tempo reale (e magari darmi anche degli avvisi sonori).
                      L\'ideale sarebbe una finestra sempre attiva in cui poter inserire delle forme (o pulsanti) a cui variare i colori. Qualcosa che però una volta creata sia visibile, modificabile da script e non richieda interventi utente. Al limite anche una finestra in cui poter solo scrivere dei testi come fosse quella del comando ShowMessage, che però ha l\'inconviente di fermare lo script in attesa della pressione di un pulsante. Per intenderci, finestre tipo quelle dei TTS Meter, anche se non mi serve siano così elaborate come tipo di indicatori.
                      Anche la possibilità di eseguire dei file sonori da script sarebbe cosa utile.
                      Io sono riuscito solo a trovare delle istruzioni di questo tipo :
                      \'*******************************
                      USES
                      Classes, Graphics, Controls, Forms, Dialogs, Unit2
                      DIM MainForm AS TForm
                      MainForm = TForm.Create(Application)
                      MainForm.Show
                      \'*******************************
                      che ho visto che creano una finestra "application" che potrebbe andare bene come base, però poi non trovo nulla su cosa sia possibile inserirci dentro ne come su come farlo...
                      Io per ora sto scrivendo in basic, ma se sarà necessario passerò anche al pascal style.

                      Spero di aver indicato al meglio su cosa chiedo i vostri pareri e supporti, e resto in attesa di eventuali consigli che potrete darmi. Nel caso non ce ne siano, se scoprirò qualcosa saro io stesso a darvi tutte le indicazioni che potrò riguardo questa tematica.

                      Ciao e buona giornata.

                      Renato.

                      p.s. aggiungo altra piccola domanda : sapete se è possibile disegnare delle linee sulle finestre dove ci sono i grafici del sottostante e degli indicatori? (sempre da script ovviamente)
                      Un investitore che ha tutte le risposte, non ha capito la domanda.
                      Un saluto a tutti da Renato (Skype nevada1969)

                      Comment

                      • Francario Massimiliano
                        Administrator
                        • Jul 2008
                        • 1033

                        #131
                        Salve,
                        Originariamente Scritto da nevada
                        Un saluto a tutti... ed eccomi di nuovo. Mi scuso se posso sembrare un pò noioso, sempre qui a chiedere aiuto, ma sto cercando di capire le potenzialità degli script e mi sono reso conto di esseremi arruginito più di quanto pensavo sull lato programmazione.
                        Diciamo che ovviamente potrò arrivare a trovarmi le soluzioni anche da solo, ma naturalmente se per caso qualcuno ha già affrontato i vari problemi e mi da una manina, potrò concentrarmi di più e meglio sul lato trading, che dovrebbe effettivamente essere il mio primo "dovere"...
                        Vabbè, veniamo al punto. Mi trovo ora a cercare un modo di crearmi qualcosa che mi consenta di visualizzare il risultato di alcuni calcoli fatti nello script in tempo reale (e magari darmi anche degli avvisi sonori).
                        L\'ideale sarebbe una finestra sempre attiva in cui poter inserire delle forme (o pulsanti) a cui variare i colori. Qualcosa che però una volta creata sia visibile, modificabile da script e non richieda interventi utente. Al limite anche una finestra in cui poter solo scrivere dei testi come fosse quella del comando ShowMessage, che però ha l\'inconviente di fermare lo script in attesa della pressione di un pulsante. Per intenderci, finestre tipo quelle dei TTS Meter, anche se non mi serve siano così elaborate come tipo di indicatori.
                        Anche la possibilità di eseguire dei file sonori da script sarebbe cosa utile.
                        Io sono riuscito solo a trovare delle istruzioni di questo tipo :
                        \'*******************************
                        USES
                        Classes, Graphics, Controls, Forms, Dialogs, Unit2
                        DIM MainForm AS TForm
                        MainForm = TForm.Create(Application)
                        MainForm.Show
                        \'*******************************
                        che ho visto che creano una finestra "application" che potrebbe andare bene come base, però poi non trovo nulla su cosa sia possibile inserirci dentro ne come su come farlo...
                        Io per ora sto scrivendo in basic, ma se sarà necessario passerò anche al pascal style.

                        Spero di aver indicato al meglio su cosa chiedo i vostri pareri e supporti, e resto in attesa di eventuali consigli che potrete darmi. Nel caso non ce ne siano, se scoprirò qualcosa saro io stesso a darvi tutte le indicazioni che potrò riguardo questa tematica.

                        Ciao e buona giornata.

                        Renato.

                        p.s. aggiungo altra piccola domanda : sapete se è possibile disegnare delle linee sulle finestre dove ci sono i grafici del sottostante e degli indicatori? (sempre da script ovviamente)
                        rispondo prima all\'ultima domanda: no, non è possibile intervenire sulle finestre di FiutoPRO tramite script.

                        Veniamo ora alla prima domanda.
                        Per prima cosa bisogna creare una finestra per lo script, come ha già visto.
                        Nello script editor, nella parte bassa, è presente una selezione a schede per ogni file relativo ad una finestra, che permette di passare dalla modalità "codice" alla modalità di modifica visuale. Quando si è in modalità di modifica visuale, nella parte di destra della finestra appare una toolbox dove si trovano tutti i controlli visuali che si possono aggiungere alla finestra stessa, mentre nella parte sinistra si troverà l\'Object Inspector, che permette di impostare le proprietà dell\'oggetto visuale selezionato (testi, colori, ecc) e di assegnarne gli eventi.
                        Tra i controlli visuali che si possono aggiungere, c\'è anche un controllo "Timer", invisibile durante l\'esecuzione dello script, che può essere utilizzato per eseguire i calcoli ad intervalli regolari di tempo e scrivere i risultati sulla finestra.

                        Prima di avviare l\'esecuzione dello script, consiglio vivamente di impostare nelle proprietà dello stesso che lo script deve essere avviato una sola volta all\'avvio della strategia.

                        Max Francario
                        File Allegati
                        Manuale di beeTrader
                        Manuale di Fiuto Beta

                        Comment

                        • Smash
                          Senior Member

                          • Feb 2012
                          • 351

                          #132
                          Originariamente Scritto da nevada
                          Mi trovo ora a cercare un modo di crearmi qualcosa che mi consenta di visualizzare il risultato di alcuni calcoli fatti nello script in tempo reale (e magari darmi anche degli avvisi sonori).
                          L\'ideale sarebbe una finestra sempre attiva in cui poter inserire delle forme (o pulsanti) a cui variare i colori. Qualcosa che però una volta creata sia visibile, modificabile da script e non richieda interventi utente. Al limite anche una finestra in cui poter solo scrivere dei testi come fosse quella del comando ShowMessage, che però ha l\'inconviente di fermare lo script in attesa della pressione di un pulsante. Per intenderci, finestre tipo quelle dei TTS Meter, anche se non mi serve siano così elaborate come tipo di indicatori.
                          Anche la possibilità di eseguire dei file sonori da script sarebbe cosa utile.
                          Ciao,
                          in aggiunta alla risposta di Max ti posto questo semplice esempio.

                          Dopo avere aperto l\'editor dello script, metti il seguente codice nella MainUnit:

                          Codice:
                          Uses  Unit1                   
                                  
                          Dim myForm as TForm1
                          
                          
                          myForm = New TForm1(Null)        
                          myForm.Show
                          Quindi vai a creare una finestra mediante il comando New Form (dal menu File), la quale si dovrà trovare nella Unit1.


                          La Form ha 2 sezioni:

                          - una sezione "Code" dove si inserisce il codice
                          - ed una sezione "Design" dove invece si gestisce la parte grafica

                          Nella sezione "Design" aggiungi un controllo Timer1 (come ha fatto vedere Max), un controllo Button1 e due controlli Label1 e Label2.

                          Nella sezione "Code" invece inserisci il seguente codice:

                          Codice:
                          #FORM TForm1, Unit1.sfm                                                         
                          
                          uses
                            Classes, Graphics, Controls, Forms, Dialogs, StdCtrls
                                    
                          SUB Button1Click(Sender AS TObject)
                           POPlaySound("C:\\Users\Administr\Documenti\PlayOptions.it\Sounds\telephone_2.WAV")
                          END SUB  
                          
                          
                          
                          
                          SUB Timer1Timer(Sender AS TObject)
                              dim mainUnderlying as TUnderlying
                              mainUnderlying = CurrentStrategy.GetMainUnderlying()
                              Label1.Caption = mainUnderlying.Name   
                              Label2.Caption = mainUnderlying.Last   
                          END SUB


                          A questo punto, mandando in esecuzione lo script:

                          - le due Label indicheranno il nome ed il prezzo last del sottostante, aggiornandoli ad intervalli regolari di 1 secondo
                          - dopo aver fatto click sul pulsante Button1 verrà eseguito il file sonoro, che nell\'esempio sopra è un file WAV presente nella cartella Sound installata da Fiuto PRO.

                          Click image for larger version

Name:	Form.png
Views:	1
Size:	27.0 KB
ID:	147749
                          Last edited by Smash; 03-05-13, 13:41.

                          Comment

                          • chrisbasetta
                            Senior Member
                            • Aug 2008
                            • 693

                            #133
                            Originariamente Scritto da Smash
                            Ciao,
                            in aggiunta alla risposta di Max ti posto questo semplice esempio.

                            Dopo avere aperto l\'editor dello script, metti il seguente codice nella MainUnit:

                            Codice:
                            Uses  Unit1                   
                                    
                            Dim myForm as TForm1
                            
                            
                            myForm = New TForm1(Null)        
                            myForm.Show
                            Quindi vai a creare una finestra mediante il comando New Form (dal menu File), la quale si dovrà trovare nella Unit1.


                            La Form ha 2 sezioni:

                            - una sezione "Code" dove si inserisce il codice
                            - ed una sezione "Design" dove invece si gestisce la parte grafica

                            Nella sezione "Design" aggiungi un controllo Timer1 (come ha fatto vedere Max), un controllo Button1 e due controlli Label1 e Label2.

                            Nella sezione "Code" invece inserisci il seguente codice:

                            Codice:
                            #FORM TForm1, Unit1.sfm                                                         
                            
                            uses
                              Classes, Graphics, Controls, Forms, Dialogs, StdCtrls
                                      
                            SUB Button1Click(Sender AS TObject)
                             POPlaySound("C:\\Users\Administr\Documenti\PlayOptions.it\Sounds\telephone_2.WAV")
                            END SUB  
                            
                            
                            
                            
                            SUB Timer1Timer(Sender AS TObject)
                                dim mainUnderlying as TUnderlying
                                mainUnderlying = CurrentStrategy.GetMainUnderlying()
                                Label1.Caption = mainUnderlying.Name   
                                Label2.Caption = mainUnderlying.Last   
                            END SUB


                            A questo punto, mandando in esecuzione lo script:

                            - le due Label indicheranno il nome ed il prezzo last del sottostante, aggiornandoli ad intervalli regolari di 1 secondo
                            - dopo aver fatto click sul pulsante Button1 verrà eseguito il file sonoro, che nell\'esempio sopra è un file WAV presente nella cartella Sound installata da Fiuto PRO.
                            Ottimo! Questa cosa serviva anche a me...
                            Per il momento avevo risolto creando un file di testo che si aggiornava con tutte le variabili che volevo da monitorare...

                            Comment

                            • nevada
                              Junior Member

                              • Apr 2013
                              • 13

                              #134
                              Ragazzi... siete fantastici.
                              GRAZIE davvero, sia per la velocità di risposta sia per le ottime spiegazioni.
                              Mi avete dato da lavorare per qualche giorno :-)
                              Spero di farmi sentire presto per confermarvi di essere riuscito nei miei intenti!

                              Buona Giornata!

                              Renato.
                              Un investitore che ha tutte le risposte, non ha capito la domanda.
                              Un saluto a tutti da Renato (Skype nevada1969)

                              Comment

                              • chrisbasetta
                                Senior Member
                                • Aug 2008
                                • 693

                                #135
                                Originariamente Scritto da Smash

                                Nella sezione "Code" invece inserisci il seguente codice:

                                Codice:
                                #FORM TForm1, Unit1.sfm                                                         
                                
                                uses
                                  Classes, Graphics, Controls, Forms, Dialogs, StdCtrls
                                          
                                SUB Button1Click(Sender AS TObject)
                                 POPlaySound("C:\\Users\Administr\Documenti\PlayOptions.it\Sounds\telephone_2.WAV")
                                END SUB  
                                
                                
                                
                                
                                SUB Timer1Timer(Sender AS TObject)
                                    dim mainUnderlying as TUnderlying
                                    mainUnderlying = CurrentStrategy.GetMainUnderlying()
                                    Label1.Caption = mainUnderlying.Name   
                                    Label2.Caption = mainUnderlying.Last   
                                END SUB

                                Ciao Smash...ho provato a seguire le tue istruzioni ma mi restituisce sempre un errore sulla Library ExtCtrls
                                Se la tolgo da Uses funziona, ma appena salvo la Unit mi rimette in automatico ExtCtrls

                                Inoltre la finestra si apre ma le Caption delle Label non si modificano...visualizzo Label1 e Label2... può dipendere da ExtCtrl? Oppure è semplicemente perché il mercato è chiuso?

                                Grazie
                                File Allegati

                                Comment

                                Working...