Scripts di esempio

Collapse
This is a sticky topic.
X
X
 
  • Ora
  • Show
Clear All
new posts
  • Francario Massimiliano
    Administrator
    • Jul 2008
    • 1033

    #46
    Salve,
    Originariamente Scritto da Smash
    Salve Max,

    sto provando a creare uno script avente una finestra come unità principale, ma non riesco a mandare in esecuzione una Form ...

    E\' possibile avere un semplice esempio in proposito?

    Grazie in anticipo!
    ecco qui un esempio di utilizzo:

    Codice:
    uses unit2      
    
    
    dim finestra as TForm1
    
    
    finestra = new TForm1(null)
    finestra.Show
    Nell\'esempio, unit2 è il nome della unit che contiene la finestra, mentre TForm1 è il tipo della finestra. E\' possibile risalire al tipo della finestra o leggendo il codice associato oppure usando la proprietà Name della finestra stessa: in questo secondo caso basta aggiungere la lettera T come prefisso per ottenere il tipo. Ad esempio, se la proprietà Name della finestra è FinestraDiProva, allora il tipo associato sarà TFinestraDiProva.
    Consiglio sempre di assegnare dei nomi significativi alle unit ed alle finestre, in modo da poterle identificare più facilmente.

    Nel caso si utilizzi uno script che mostra una finestra, è necessario modificare le proprietà dello script, specificando che si vuole utilizzare una finestra. Le proprietà dello script si possono visualizzare facendo apparire il menù associato al pulsante Script della finestra Strategy Builder (usando l\'apposita freccetta) oppure dalla finestra dell\'editor del codice, con il pulsante sulla toolbar o dal menù Project.

    Max Francario
    Manuale di beeTrader
    Manuale di Fiuto Beta

    Comment

    • Francario Massimiliano
      Administrator
      • Jul 2008
      • 1033

      #47
      Salve,
      Originariamente Scritto da chrisbasetta
      Ciao Max,

      purtroppo dalle prove che sto facendo anche con la versione .11 gli ordini automatici si fermano sempre nel Basket... e non li esegue in automatico...
      Ho provato anche a costruire una nuova strategia con relativo Script da zero ma nulla...
      può provare ad usare il metodo AddOrder al posto dei metodi Buy e Sell per il momento.
      Con il metodo AddOrder, la quantità deve essere positiva per un ordine di acquisto e negativa per un ordine di vendita. Al contrario, con i metodi Buy e Sell, la quantità deve sempre essere positiva: il segno dell\'operazione è sempre positivo per Buy e sempre negativo per Sell.

      Max Francario
      Manuale di beeTrader
      Manuale di Fiuto Beta

      Comment

      • chrisbasetta
        Senior Member
        • Aug 2008
        • 693

        #48
        Originariamente Scritto da Francario Massimiliano
        Salve,

        può provare ad usare il metodo AddOrder al posto dei metodi Buy e Sell per il momento.
        Con il metodo AddOrder, la quantità deve essere positiva per un ordine di acquisto e negativa per un ordine di vendita. Al contrario, con i metodi Buy e Sell, la quantità deve sempre essere positiva: il segno dell\'operazione è sempre positivo per Buy e sempre negativo per Sell.

        Max Francario
        Grazie Max, provo così...

        Comment

        • Smash
          Senior Member

          • Feb 2012
          • 351

          #49
          Originariamente Scritto da Francario Massimiliano
          Salve,

          ecco qui un esempio di utilizzo:

          Codice:
          uses unit2      
          
          
          dim finestra as TForm1
          
          
          finestra = new TForm1(null)
          finestra.Show
          Nell\'esempio, unit2 è il nome della unit che contiene la finestra, mentre TForm1 è il tipo della finestra. E\' possibile risalire al tipo della finestra o leggendo il codice associato oppure usando la proprietà Name della finestra stessa: in questo secondo caso basta aggiungere la lettera T come prefisso per ottenere il tipo. Ad esempio, se la proprietà Name della finestra è FinestraDiProva, allora il tipo associato sarà TFinestraDiProva.
          Consiglio sempre di assegnare dei nomi significativi alle unit ed alle finestre, in modo da poterle identificare più facilmente.

          Nel caso si utilizzi uno script che mostra una finestra, è necessario modificare le proprietà dello script, specificando che si vuole utilizzare una finestra. Le proprietà dello script si possono visualizzare facendo apparire il menù associato al pulsante Script della finestra Strategy Builder (usando l\'apposita freccetta) oppure dalla finestra dell\'editor del codice, con il pulsante sulla toolbar o dal menù Project.

          Max Francario

          Missione compiuta, grazie!

          Per quale motivo in questo caso con l\'istruzione New è necessario fornire anche il parametro Null?

          Comment

          • Francario Massimiliano
            Administrator
            • Jul 2008
            • 1033

            #50
            Salve,
            Originariamente Scritto da Smash
            Missione compiuta, grazie!
            bene !

            Originariamente Scritto da Smash
            Per quale motivo in questo caso con l\'istruzione New è necessario fornire anche il parametro Null?
            Il codice di inizializzazione delle finestre (in termine tecnico il metodo si chiama "costruttore") accetta in ingresso un parametro che rappresenta l\'applicazione di appartenenza, cioè l\'oggetto al quale appartiene la finestra. Questo perchè una finestra è equiparata ad un qualsiasi controllo grafico, quindi come un bottone deve conoscere a quale finestra appartiene, anche una finestra deve conoscere a quale applicazione appartiene. Nel caso di FPSS, l\'applicazione di appartenenza è implicitamente definita, quindi è necessario utilizzare il valore null come parametro nella chiamata al costruttore.

            Max Francario
            Manuale di beeTrader
            Manuale di Fiuto Beta

            Comment

            • Smash
              Senior Member

              • Feb 2012
              • 351

              #51
              Originariamente Scritto da Francario Massimiliano
              Salve,

              bene !


              Il codice di inizializzazione delle finestre (in termine tecnico il metodo si chiama "costruttore") accetta in ingresso un parametro che rappresenta l\'applicazione di appartenenza, cioè l\'oggetto al quale appartiene la finestra. Questo perchè una finestra è equiparata ad un qualsiasi controllo grafico, quindi come un bottone deve conoscere a quale finestra appartiene, anche una finestra deve conoscere a quale applicazione appartiene. Nel caso di FPSS, l\'applicazione di appartenenza è implicitamente definita, quindi è necessario utilizzare il valore null come parametro nella chiamata al costruttore.

              Max Francario

              Grazie!

              Comment

              • chrisbasetta
                Senior Member
                • Aug 2008
                • 693

                #52
                Movimentiamo un pò questa discussione :-)

                Max...

                1. Ti confermo che con AddOrder funziona perfettamente :-)
                2. Come mai se uso l\'istruzione:

                If (Opzione.DaysToExpiry <= 1) then ....

                Non me la esegue...nonostante oggi manchi 1 giorno alla scadenza dell\'opzione?
                Mentre se uso:

                If (Opzione.DaysToExpiry < 2) then ...

                Invece funziona?

                3. E\' già possibile usare gli indicatori dentro lo Script?
                Se ad esempio volessi identificare il valore delle Bollinger su TF 1 Ora come dovrei fare?

                Grazie

                Comment

                • Francario Massimiliano
                  Administrator
                  • Jul 2008
                  • 1033

                  #53
                  Salve,
                  Originariamente Scritto da chrisbasetta
                  Movimentiamo un pò questa discussione :-)

                  Max...

                  1. Ti confermo che con AddOrder funziona perfettamente :-)
                  2. Come mai se uso l\'istruzione:

                  If (Opzione.DaysToExpiry <= 1) then ....

                  Non me la esegue...nonostante oggi manchi 1 giorno alla scadenza dell\'opzione?
                  Mentre se uso:

                  If (Opzione.DaysToExpiry < 2) then ...

                  Invece funziona?

                  3. E\' già possibile usare gli indicatori dentro lo Script?
                  Se ad esempio volessi identificare il valore delle Bollinger su TF 1 Ora come dovrei fare?

                  Grazie
                  1. OK. Dalla prossima versione del software anche i metodi Buy e Sell si comporteranno allo stesso modo di AddOrder.

                  2. Perchè la proprietà è calcolata come differenza tra date, quindi è un valore decimale. Essendo la data di scadenza sempre impostata come "yyyy-mm-dd 23.59.59", ne consegue che il giorno prima della scadenza la proprietà DaysToExpiry vale "1,qualcosa".

                  3. No, al momento non è possibile utilizzare indicatori direttamente nel linguaggio di script.

                  Max Francario
                  Manuale di beeTrader
                  Manuale di Fiuto Beta

                  Comment

                  • chrisbasetta
                    Senior Member
                    • Aug 2008
                    • 693

                    #54
                    Ciao Max...
                    puoi controllare una cosa?

                    Quando lo script esegue il comando FlattAll mi chiude sempre solo le opzioni ma non l\'eventuale future a copertura...

                    Comment

                    • fnet
                      Senior Member
                      • Aug 2010
                      • 738

                      #55
                      Originariamente Scritto da Francario Massimiliano
                      Salve,
                      ecco un esempio di come ottenere gli oggetti corrispondenti alle leg della strategia.

                      Codice:
                      dim under as TUnderlying
                      dim c17000 as TOption
                      
                      under = CurrentStrategy.GetMainUnderlying()
                      c17000 = CurrentStrategy.GetByName("C @ 17000 03-2013")
                      if(under.Reference > c17000.Strike) Then
                          c17000.Buy(2, MARKET)
                      End If
                      L\'interpretazione dello script è la seguente:
                      Assegno alla variabile under l\'oggetto che rappresenta il sottostante principale della strategia
                      Assegno alla variabile c17000 l\'oggetto che rappresenta la leg il cui nome è "C @ 17000 03-2013"
                      Se
                      il prezzo di riferimento dell\'oggetto under è maggiore dello strike dell\'oggetto c17000
                      Allora
                      Compra 2 contratti di c17000 al prezzo MARKET


                      L\'oggetto CurrentStrategy ha diversi metodi disponibili per ottenere gli oggetti che corrispondono alle gambe della strategia: GetByName (usando il nome visualizzato sulla finestra Strategy Builder), GetByIsin (usando il codice isin dello strumento), GetByID (usando il codice identificativo univoco degli strumenti), AddFuture, AddOption.

                      Quando si dichiarano le variabili con la parola chiave Dim, se si conosce in anticipo il tipo di dati che quelle variabili andranno a contenere, è consigliabile specificarlo.

                      Max Francario
                      per cortesia traduci l\'esempio sopra in Pascal
                      grazie
                      "Tempus omnia medetur" .... e fà guadagnare di Theta

                      Comment

                      • Apocalips
                        Senior Member

                        • May 2011
                        • 2630

                        #56
                        Lo accendiamo o no il motore?

                        L\'argomento è ostico, non c\'è dubbio, lo dimostra la scarsa partecipazione a questo 3D che vede coinvolti solamente 3-4 utenti come i bravi Chrisbasetta, Traderloky, Smash, Ismael che sembrano aver digerito abbastanza bene lo script e il suo linguaggio di programmazione; per tutti gli altri 100 utenti attivi che normalmente partecipano al forum di PO, l\'approccio allo script resta ancora problematico ed infatti interventi e richieste di spiegazioni sull\'argomento da parte di costoro, me compreso, non ve ne sono.

                        Tiziano e il suo staff che non finiamo mai di ringraziare ci hanno messo a disposizione questo potentissimo strumento ma gran parte di noi non riesce ancora a far partire la macchina neanche solo per apprezzarne il rombo stile vecchia ferrari turbo degli anni 80.

                        allora che si fà ? non si partecipa al Granpremio ?

                        secondo il mio modesto parere una prima soluzione al problema che potrebbe stimolare ed invogliare gli utenti a cominciare a studiare lo script e quindi rilanciare questo 3D è chiedere un piccolo sforzo al buon Max affinchè ci faccia vedere il codice completo e funzionante di una semplice strategia messa in paper come ad esempio la rollata di un condor da dove poter partire per prendere spunto e incominciare a fare domande.

                        una volta superata questa fase diciamo così di "stimolo" e di "apprendistato" sarebbe bello dare la possibilità a chiunque lo desideri di poter approfondire l\'argomento magari partecipando ad un vero e proprio corso specifico di formazione da svolgersi in sede a Rovigo.

                        che ne pensate ?

                        ps: a Max che lo abbiamo infilato in questo "guaio" e che si sacrificherà per noi, verrà riservata una percentuale di tutti i nostri futuri guadagni.


                        buona domenica e scusate per la lungaggine.

                        Apo
                        Last edited by Apocalips; 10-03-13, 12:24.
                        ....non si desidera ciò che è facile ottenere (Ovidio)....

                        Comment

                        • Cagalli Tiziano
                          Senior Member
                          • Dec 2007
                          • 11252

                          #57
                          Originariamente Scritto da Apocalips
                          L\'argomento è ostico, non c\'è dubbio,

                          Premesso che io non avrei nemmeno messo lo script in questa fase, un paio di utenti gestori di fondi o sicav, che conoscono il linguaggio, hanno insistito e lo stanno usando.

                          Premesso anche che il workflow è uno strumento che si usa con facilità e che permette già di avere delle strategie abbastanza sofisticate (io uso il workflow perchè non so scrivere in quel linguaggio) e perciò lo script diventa meno urgente.

                          Premesso questo, mi trovi d\'accordo su tutta la linea e anche sulla modalità per poterlo, prima conoscere, e poi imparare!! Apo, hai centrato il punto!

                          Quindi faremo certamente così, però dobbiamo rimandare di alcuni mesi perchè Max, che è l\'unico tra di noi, capace di insegnarlo è super impegnato nella difficile finitura di Fiuto Future.

                          Perchè difficile?

                          Perchè anche FF ha un linguaggio di programmazione che stiamo completando in maniera tale che si possa utilizzare da subito. Quindi dietro alle parole che si scriveranno, vengono già richiamate delle funzioni e pertanto diventa facile. Ha l\'autocostruzione e le parole che si possono scrivere sono divise in sette classi. Si chiama Easy Script e allego una immagine esplicativa.

                          Allora, se vediamo che gli utenti di FF (Fiuto Future) non avranno difficoltà a scrivere le loro strategie ecco che potremmo pensare di fare lo stesso lavoro (richiede mesi) su Fiuto Pro.

                          Se non sarà così allora "viriamo" e costriamo noi una serie di logiche di strategie che si possano copiare/incollare e modificare.

                          Per concludere:
                          abbiamo messo nelle condizioni tutti gli utenti che lo desiderano, di poter costruire la strategia automatica, mettiamo in condizioni di farlo su FF con un linguaggio semplificato e poi unifichiamo le due scritture in base alle vostre richieste.

                          P.S. perchè non abbiamo fatto da subito su Fiuto Pro un linguaggio tipo FF?
                          perchè la strategia di FF ha solo i sottostanti e gli indicatori mentre la strategia in opzioni ha le greche e gli strike, ovvero si moltiplicano le funzioni per circa 1200 volte!
                          File Allegati
                          Last edited by Cagalli Tiziano; 10-03-13, 14:49.
                          ..se corri dietro a due lepri, non ne prendi nemmeno una.

                          Comment

                          • CIVT
                            Senior Member
                            • Dec 2009
                            • 813

                            #58
                            Come dice sempre Tiziano la soluzione migliore è anche la piu\' semplice, quindi perchè non combinare il Workflow con porzioni di script precompilate? In questo modo tutti possono sfruttare le potenzialità del linguaggio script senza conoscere il linguaggio di programmazione, si potrebbe ad esempio costruire una strategia intera sul WF e lanciare lo script per scegliere lo strike piu\' ITM.

                            Comment

                            • Apocalips
                              Senior Member

                              • May 2011
                              • 2630

                              #59
                              Originariamente Scritto da Cagalli Tiziano
                              ....quindi faremo certamente così, però dobbiamo rimandare di alcuni mesi perchè Max, che è l\'unico tra di noi, capace di insegnarlo è super impegnato nella difficile finitura di Fiuto Future.
                              Hai ragione Tiziano è meglio procedere per gradi dando le giuste priorità.

                              lasciami però dire una cosa:

                              io sono convinto che tra i tanti che hanno la licenza di fiuto pro e che quindi possono accedere allo script ce ne sono diversi che già lo utilizzano conoscendone il linguaggio ma che non condividono alcunchè restando nell\'anonimato.

                              Per l\'amore del cielo, intendiamoci, ognuno è libero di fare ciò che vuole, ci mancherebbe, non ci sono obblighi, però mi permetto di dire che se tutti partecipassimo e ci confrontassimo liberamente senza timori sarebbe estramamente piu semplice e veloce raggiungere determinati risultati e tutti quanti ne gioverebbero.

                              ....eppure in questa community siamo oltre 6.000 ma solo l\'1% partecipa alle discussioni.


                              Apo
                              Last edited by Apocalips; 10-03-13, 16:26.
                              ....non si desidera ciò che è facile ottenere (Ovidio)....

                              Comment

                              • Cagalli Tiziano
                                Senior Member
                                • Dec 2007
                                • 11252

                                #60
                                Originariamente Scritto da Apocalips
                                Hai ragione Tiziano è meglio procedere per gradi dando le giuste priorità.

                                lasciami però dire una cosa:

                                io sono convinto che tra i tanti che hanno la licenza di fiuto pro e che quindi possono accedere allo script ce ne sono diversi che già lo utilizzano conoscendone il linguaggio ma che non condividono alcunchè restando nell\'anonimato.

                                Per l\'amore del cielo, intendiamoci, ognuno è libero di fare ciò che vuole, ci mancherebbe, non ci sono obblighi, però mi permetto di dire che se tutti partecipassimo e ci confrontassimo liberamente senza timori sarebbe estramamente piu semplice e veloce raggiungere determinati risultati e tutti quanti ne gioverebbero.

                                ....eppure in questa community siamo oltre 6.000 ma solo l\'1% partecipa alle discussioni.


                                Apo

                                Hai nuovamente colto nel segno!

                                Abbiamo creato un\'area di condivisione però nessuno condivide, mentre sicuramente di script ne sono già stati fatti tanti. Come scrivi tu, anche io non entro nel merito dei motivi per i quali non si condivida, ma tantè!
                                ..se corri dietro a due lepri, non ne prendi nemmeno una.

                                Comment

                                Working...