Scripts di esempio

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

    • Feb 2012
    • 351

    #136
    Originariamente Scritto da chrisbasetta
    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
    Sì, lo fa anche a me: il compilatore automatico rimette sempre ExtCtrls tra le Uses, ma poi non trova la libreria e si verifica l\'errore... vedo se riesco a capirci meglio, altrimenti bisogna attendere Max.

    Per il momento per farlo funzionare bisogna mandare in esecuzione lo script manualmente, dopo avere cancellato ExtCtrls e senza salvare (come hai fatto te del resto !)


    Originariamente Scritto da chrisbasetta
    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
    Questo invece a me funziona correttamente: non dipende da ExtCtrls!

    Che broker usi per il collegamento dati?

    Al limite prova a verificare che la proprietà Interval del controllo Timer non sia uguale a zero.


    Click image for larger version

Name:	Immagine.png
Views:	1
Size:	27.0 KB
ID:	147753

    Comment

    • chrisbasetta
      Senior Member
      • Aug 2008
      • 693

      #137
      Originariamente Scritto da Smash

      Questo invece a me funziona correttamente: non dipende da ExtCtrls!

      Che broker usi per il collegamento dati?

      Al limite prova a verificare che la proprietà Interval del controllo Timer non sia uguale a zero.


      [ATTACH=CONFIG]10935[/ATTACH]
      Utilizzo IW... ma ti funziona anche a mercato chiuso?
      Non vorrei che fosse perché nel weekend IW comunque non passa i dati a Fiuto...

      Comment

      • Smash
        Senior Member

        • Feb 2012
        • 351

        #138
        Originariamente Scritto da chrisbasetta
        Utilizzo IW... ma ti funziona anche a mercato chiuso?
        Non vorrei che fosse perché nel weekend IW comunque non passa i dati a Fiuto...
        A me sì, anche con IW!

        Comment

        • chrisbasetta
          Senior Member
          • Aug 2008
          • 693

          #139
          Originariamente Scritto da Smash
          A me sì, anche con IW!
          Mistero....

          Comment

          • chrisbasetta
            Senior Member
            • Aug 2008
            • 693

            #140
            Ho trovato l\'errore!!

            Nelle proprietà del Timer non avevo abilitato l\'evento "OnTimer"
            ...ora pare funzioni...
            rimane il problema ExtCtrl...

            Comment

            • chrisbasetta
              Senior Member
              • Aug 2008
              • 693

              #141
              Altro problemuccio...

              Io ho delle variabili che sono state definite nella MainUnit...
              se io le richiamo all\'interno della SUB del Timer mi dice che non le riconosce...
              siccome vorrei visualizzare delle variabili persistenti, che ovviamente variano in base alle diverse istruzioni dello Script, ma tutto ciò avviene nella MainUnit... come faccio a richiamarle all\'interno della SUB del Timer?

              Thanks!

              Comment

              • Smash
                Senior Member

                • Feb 2012
                • 351

                #142
                Originariamente Scritto da chrisbasetta
                Ho trovato l\'errore!!

                Nelle proprietà del Timer non avevo abilitato l\'evento "OnTimer"
                ...ora pare funzioni...
                rimane il problema ExtCtrl...

                Hai ragione!

                Quando nel codice si incollano delle sub riferite ad eventi di controlli bisogna anche attivare gli eventi dei controlli!

                Click image for larger version

Name:	a.png
Views:	1
Size:	29.6 KB
ID:	147755 Click image for larger version

Name:	b.png
Views:	1
Size:	24.1 KB
ID:	147756

                Io prima le sub le avevo inizializzate facendo doppio click direttamente sul relativo controllo, e così si auto-attivavano anche gli eventi!
                Last edited by Smash; 05-05-13, 10:27.

                Comment

                • Smash
                  Senior Member

                  • Feb 2012
                  • 351

                  #143
                  Originariamente Scritto da chrisbasetta
                  Altro problemuccio...

                  Io ho delle variabili che sono state definite nella MainUnit...
                  se io le richiamo all\'interno della SUB del Timer mi dice che non le riconosce...
                  siccome vorrei visualizzare delle variabili persistenti, che ovviamente variano in base alle diverse istruzioni dello Script, ma tutto ciò avviene nella MainUnit... come faccio a richiamarle all\'interno della SUB del Timer?

                  Thanks!
                  In linea teorica basterebbe dichiarare le variabili come pubbliche ... ma fatta una prima prova vedo che non va! Più tardi provo ad approfondire.

                  Altrimenti, la soluzione più immediata sarebbe quella di trasferire tutti i calcoli che facevi nella MainUnit all\'interno della nuova unit contenente la Form ed il Timer, mentre la MainUnit la utilizzi solo per richiamare la finestra.

                  Comment

                  • chrisbasetta
                    Senior Member
                    • Aug 2008
                    • 693

                    #144
                    Originariamente Scritto da Smash
                    In linea teorica basterebbe dichiarare le variabili come pubbliche ... ma fatta una prima prova vedo che non va! Più tardi provo ad approfondire.

                    Altrimenti, la soluzione più immediata sarebbe quella di trasferire tutti i calcoli che facevi nella MainUnit all\'interno della nuova unit contenente la Form ed il Timer, mentre la MainUnit la utilizzi solo per richiamare la finestra.
                    Quindi in teoria tutto il mio script andrebbe trasferito all\'interno della sub del Timer...ci avevo pensato ma mi pareva una cosa artificiosa, visto che fondamentalmente la finestra mi serve solo per fare dei controlli...
                    Comunque faccio un test...
                    grazie ancora!

                    Comment

                    • Smash
                      Senior Member

                      • Feb 2012
                      • 351

                      #145
                      Originariamente Scritto da chrisbasetta
                      Quindi in teoria tutto il mio script andrebbe trasferito all\'interno della sub del Timer...ci avevo pensato ma mi pareva una cosa artificiosa, visto che fondamentalmente la finestra mi serve solo per fare dei controlli...
                      Comunque faccio un test...
                      grazie ancora!

                      Considera inoltre che di timer ne potresti usare anche più di uno.
                      Li potresti settare anche con intervalli di tempo differenti tra loro.
                      Se poi volessi che una certa azione venga eseguita una volta sola e poi più, allora potresti settare a zero tramite script la proprietà interval di quel timer, e lui si ferma ...... per poi magari farlo ripartire dall\'esterno in qualche modo, se necessario ....

                      Insomma, la programmazione con i controlli può offrire delle potenzialità veramente enormi!

                      Comment

                      • chrisbasetta
                        Senior Member
                        • Aug 2008
                        • 693

                        #146
                        Originariamente Scritto da Smash
                        Considera inoltre che di timer ne potresti usare anche più di uno.
                        Li potresti settare anche con intervalli di tempo differenti tra loro.
                        Se poi volessi che una certa azione venga eseguita una volta sola e poi più, allora potresti settare a zero tramite script la proprietà interval di quel timer, e lui si ferma ...... per poi magari farlo ripartire dall\'esterno in qualche modo, se necessario ....

                        Insomma, la programmazione con i controlli può offrire delle potenzialità veramente enormi!
                        Ho provato a trasferire tutto lo Script nella Unit1 dentro al Timer ed in effetti pare funzionare... eseguo lo Script, si apre la finestra e le variabili vengono visualizzate...
                        A quel punto quindi, come diceva Max, basterebbe far partire lo Script con l\'opzione 2 nelle sue proprietà (esegui una sola volta all\'avvio della strategia), in modo che si apra la finestra e il Timer (o i Timer) scandisca l\'intervallo temporale in cui lo Script viene eseguito...
                        Ora attendiamo che Max ci illumini sul problema ExtCtrls...

                        Comment

                        • Smash
                          Senior Member

                          • Feb 2012
                          • 351

                          #147
                          Qualche tempo fa avevamo il problema della variabile persistente, che a questo punto potrebbe tranquillamente essere una proprietà di un controllo (esempio: la proprietà Caption di una Label).

                          Comment

                          • Smash
                            Senior Member

                            • Feb 2012
                            • 351

                            #148
                            Originariamente Scritto da chrisbasetta
                            Intanto un enorme grazie a Ismael e a Smash perchè con i loro esempi mi hanno permesso di fare un altro piccolo step in avanti :-)

                            Ora vorrei chiedere un aiutino a loro...o a chi vorrà suggerire (Max comrpeso ovviamente ) come posso risolvere questo...

                            Avrei bisogno di far seseguire all\'interno dello Script, una determinata procedura ma solo un TOT numero di volte, supponiamo 2.
                            Ho pensato quindi di utilizzare un contatore, ogni volta che quella procedura viene eseguita...
                            L\'idea sarebbe:

                            if (contatore<2) then
                            ecc. ecc.


                            ...ma succede questo:

                            definisco inizialmente il contatore e lo setto a zero
                            dim contatore as Integer = 0

                            poi definisco la procedura, supponiamo sia questa
                            if (sottostante.Last < 10.00) then
                            contatore = contatore+1
                            end if


                            fin qui tutto ok perchè effettivamente il contatore in questo caso diventa 1
                            però succede che se tale condizione non è più vera (ad esempio il sottostante torna sopra 10) il contatore si resetta a zero...invece vorrei che rimanesse 1

                            Ho anche pensato di utilizzare un file esterno come contatore...ma non sono riuscito.

                            Spero di essermi spiegato...

                            Magari esiste un modo più semplice per limitare il numero di iterazioni di una specifica procedura...

                            Grazie a chi darà una mano!!

                            Metodo alternativo:

                            si inserisce un controllo Timer2 in una Form, settando la proprietà Interval a 1000 (1 secondo), quindi si gestisce l\'evento del Timer in una maniera tipo questo:


                            Codice:
                            SUB Timer2Timer(Sender AS TObject)
                                
                                \'Si inseriscono qui tutte le azioni che si vogliono fare eseguire
                                
                                Timer2.Interval = Timer2.Interval + 1
                                
                                If Timer2.Interval = 1003 then Timer2.Interval = 0
                                
                                \'Se Timer2.Interval = 0 le azioni non verranno più eseguite
                                
                            END SUB
                            Di fatto ad ogni esecuzione la proprietà Interval aumenta di 1 millisecondo (praticamente nulla!) e quando raggiunge il valore limite il timer si ferma.

                            Comment

                            • chrisbasetta
                              Senior Member
                              • Aug 2008
                              • 693

                              #149
                              La questione PersistentVar() è risolta...
                              Max l\'ha aggiustata nell\'ultima release e mi è stato spiegato per bene come utilizzarla:

                              Per leggerla con il GetPersistentVar()
                              Codice:
                              Variabile = StrToInt(GetPersistentVar("Variabile"))
                              E per settarla con il SetPersistentVar()
                              Codice:
                              SetPersistentVar("Variabile", IntToStr(Variabile + 1) )
                              In pratica va fatta sempre la conversione da e in stringa

                              Comment

                              • nevada
                                Junior Member

                                • Apr 2013
                                • 13

                                #150
                                Ciao gente, grazie alle vostre indicazioni sono riuscito a buttar giù uno script completo per testare il software con l\'idea che mi ero fatto inizialmente. Ha funzionato praticamente tutto come sperato e in parte è proprio merito vostro.
                                Però, tanto per non smentirmi, mi ripresento con un paio di problemi...
                                Il primo, più che un problema è una domanda : c\'è modo di leggere nello script i valori degli indicatori TTS Meter?
                                Il secondo invece è un problema vero e proprio e che mi sta bloccando tutto... Dopo aver finito e fatto girare senza problemi lo script, ho dovuto reinstallare il pc ex novo. Una volta terminato e installato anche Fiuto, sono rientrato nella mia strategia e quando ho cliccato il pulsante per aprire l\'editor degli script è sopravvenuto il fattaccio... appena clicco mi compaiono in sequenza 5 diverse finestre con errori di Access Violation nel modulo FiutoPro.exe agli indirizzi 00B13E70 e 000002AC, e una volta "confermate", se tento di compilare o eseguire lo script ricevo sempre un errore sulle prime linee di codice dove creo la Form.

                                Qualcuno sa da cosa potrebbe dipendere? Magari qualche impostazione del sistema operativo o simili?
                                Per info, uso Windows7 professional a 64bit (lo stesso sistema operativo che avevo prima di formattare quando tutto funzionava...

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

                                Comment

                                Working...