Salvataggio dati e creazione di piccolo database

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • Ismael
    Senior Member

    • Jan 2011
    • 247

    #1

    Salvataggio dati e creazione di piccolo database

    Ciao a tutti, posto una versione aggiornata di uno script che ho già postato. Salva ask,bid,numero di ticks dei 5 strike più atm. E\' impostato per eurostoxx50 ma basta modificare lo step tra gli strike per adattarlo ad altri sottostanti.
    Si potrebbe fare un piccolo database su una cartella di dropbox se qualcuno è interessato (e sempre che il capo sia d\'accordo )

    Codice:
    uses classes                                                                        
    uses SysUtils  
    dim f as textfile                       
    dim callss as tsecurity
    dim mainunderlying as tunderlying               
    dim bidsc as tprice = [0,0,0,0,0]
    dim asksc as tprice = [0,0,0,0,0] 
    dim bidsp as tprice = [0,0,0,0,0]
    dim asksp as tprice = [0,0,0,0,0]               
    dim correzioneatm,i as double
    dim ATMf as Tstringlist
    dim ATM,Filename,strtosave,ATMtit as string
    dim calls as toption = [0,0,0,0,0]
    dim puts as toption = [0,0,0,0,0]
    dim underisin,anno, mese, giorno,nextexpma ,strike, Tuonome                                                               
    dim varbidtickc as double = [0,0,0,0,0]
    dim varasktickc as double = [0,0,0,0,0]             
    dim varbidtickp as double = [0,0,0,0,0]                              
    dim varasktickp as double = [0,0,0,0,0]   
    
    
    mainUnderlying = CurrentStrategy.GetMainUnderlying()                                        
    underisin = mainunderlying.isin    
                        
         
    DecodeDate(Now(), anno, mese, giorno)                     
         
    \'scrivi il tuo nome
    tuonome = "Apo"
    
    
    \'scegli il mese di scadenza
    mese = 2
    
    
    
    if mese<10 then                            
    nextexpma = "0"+cstr(mese) + "-" + cstr(anno)
    else
    nextexpma = cstr(mese) + "-" + cstr(anno)
    end if
    
    \'crea il nome del file giornaliero
    Filename = "C:\Users\user\Dropbox\" + cstr(giorno) + cstr(mese) + cstr(anno) + "askbidticks" + tuonome + ".txt"  
    \'prende l\'atm da un file txt oppure  si può impostare scrivendo ATM = 3000                    
    ATMf = new TStringList()                                       
    ATMf.LoadFromFile("C:\Users\user\Dropbox\ATM.TXT")      
    ATM=Cint(ATMf.text)                    
    ATMf.free                                                      
                
                                                                                                       
                                                                                         
    correzioneatm = (ATM - int(mainunderlying.Last/25)*25)/25
    
    
    \'assegnazione di una variabile array ad ogni opzione                    
    for i = 0 to 4                                
    strike = cstr(cstr(ATM) + (i-2)*25)
                   
    calls[i] = CurrentStrategy.getbyName("C @ "+strike+" "+nextexpma)                        
    puts[i] = CurrentStrategy.GetByName("P @ "+strike+" "+nextexpma)                  
    
    next                                                           
                                 
                                                                                                                                                                                        
                                   
    for i=-2 to 2 step 1                                                                     
    bidsc[i+2]=calls[i+2].bidObject                    
    asksc[i+2]=calls[i+2].askobject
    varbidtickc[i+2]=bidsc[i+2].tickcounter
    varasktickc[i+2]=asksc[i+2].tickcounter
                                                                     
    bidsp[i+2]=puts[i+2].bidObject    
    asksp[i+2]=puts[i+2].askobject                                                                                                 
    varbidtickp[i+2]=bidsp[i+2].tickcounter
    varasktickp[i+2]=asksp[i+2].tickcounter                                                                
                                                                                                                                     
    next                                                             
                                                                                                                                                                                                           
                                                    
    strtosave= cstr(mainUnderlying.Last)&" "&
    cstr(calls[0].ask)&" "&cstr(varasktickc[0])&" "&cstr(calls[0].bid)&" "&cstr(varbidtickc[0])&" "&
    cstr(puts[0].ask)&" "&cstr(varasktickp[0])&" "&cstr(puts[0].bid)&" "&cstr(varbidtickp[0])&" "&
    cstr(calls[1].ask)&" "&cstr(varasktickc[1])&" "&cstr(calls[1].bid)&" "&cstr(varbidtickc[1])&" "&
    cstr(puts[1].ask)&" "&cstr(varasktickp[1])&" "&cstr(puts[1].bid)&" "&cstr(varbidtickp[1])&" "&
    cstr(calls[2].ask)&" "&cstr(varasktickc[2])&" "&cstr(calls[2].bid)&" "&cstr(varbidtickc[2])&" "&
    cstr(puts[2].ask)&" "&cstr(varasktickp[2])&" "&cstr(puts[2].bid)&" "&cstr(varbidtickp[2])&" "&
    cstr(calls[3].ask)&" "&cstr(varasktickc[3])&" "&cstr(calls[3].bid)&" "&cstr(varbidtickc[3])&" "&
    cstr(puts[3].ask)&" "&cstr(varasktickp[3])&" "&cstr(puts[3].bid)&" "&cstr(varbidtickp[3])&" "&
    cstr(calls[4].ask)&" "&cstr(varasktickc[4])&" "&cstr(calls[4].bid)&" "&cstr(varbidtickc[4])&" "&
    cstr(puts[4].ask)&" "&cstr(varasktickp[4])&" "&cstr(puts[4].bid)&" "&cstr(varbidtickp[4])                                                                                                                                                 
                                                                                                                                                           
                                                                                                                                                                                                              
                                            
    if SysUtils.FileExists(FileName)then                                                            
                                                                                                                                                                                                                                                                                                                            
        AssignFile(f, Filename)                                                
        Append(f)                                 
        Writeln(f, strtosave)                                                     
        CloseFile(f) 
        
                                                                                                                                                                                                                
        
        else                
               
        strtosave =  mainUnderlying.name & " " & DateToStr(date()) &" "& "ATM:"&ATM                                        
        AssignFile(f, Filename)
        Rewrite(f)
        Writeln(f, strtosave)
        CloseFile(f)                    
                                       
             \'inserimento nella strategia delle 5 + 5 opzioni più atm                                                                                                 
        for i=-5 to 5 step 1                                                                                  
        CurrentStrategy.AddParametricOption(underisin,CALL,correzioneatm-i,5)                                   
        CurrentStrategy.AddParametricOption(underisin,PUT,correzioneatm-i,5)            
    
        
        next                                
        
        
                                                                                                                                                                                                                  
        
        SetPersistentVar(ATMtit,ATM)                               
        
        end if
    Last edited by Ismael; 31-01-15, 12:57.
    E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.
  • Cagalli Tiziano
    Senior Member
    • Dec 2007
    • 11437

    #2
    Originariamente Scritto da Ismael
    Ciao a tutti, posto una versione aggiornata di uno script che ho già postato. Salva ask,bid,numero di ticks dei 5 strike più atm. E\' impostato per eurostoxx50 ma basta modificare lo step tra gli strike per adattarlo ad altri sottostanti.
    Si potrebbe fare un piccolo database su una cartella di dropbox se qualcuno è interessato (e sempre che il capo sia d\'accordo )

    Codice:
    \' SCRIPT PERSONALITY: BASIC
    \'
    \' This is a sample code !
    \' Write here your own code.
    \' This editor supports auto-completion. 
    \' Press CTRL+Space to display a list of available functions and objects.
    \' To access objects properties, use the dot (\'.\') character.
    
    uses classes                                                                        
    uses SysUtils  
    dim f as textfile                       
    dim callss as tsecurity
    dim mainunderlying as tunderlying               
    dim bidsc as tprice = [0,0,0,0,0]
    dim asksc as tprice = [0,0,0,0,0] 
    dim bidsp as tprice = [0,0,0,0,0]
    dim asksp as tprice = [0,0,0,0,0]               
    dim correzioneatm,i as double
    dim ATMf as Tstringlist
    dim ATM,Filename,strtosave,ATMtit as string
    dim calls as toption = [0,0,0,0,0]
    dim puts as toption = [0,0,0,0,0]
    dim underisin,anno, mese, giorno,nextexpma ,strike                                                               
    dim varbidtickc as double = [0,0,0,0,0]
    dim varasktickc as double = [0,0,0,0,0]             
    dim varbidtickp as double = [0,0,0,0,0]                              
    dim varasktickp as double = [0,0,0,0,0]   
    
    
    mainUnderlying = CurrentStrategy.GetMainUnderlying()                                        
    underisin = mainunderlying.isin    
                        
         
    DecodeDate(Now(), anno, mese, giorno)                               
    nextexpma = "0"+cstr(mese+1) + "-" + cstr(anno)
    
    \'crea il nome del file giornaliero
    Filename = "C:\Users\user\Dropbox\" + cstr(giorno) + cstr(mese) + cstr(anno) + "askbidticks" + ".txt"
                                                                         
    \'prende l\'atm da un file txt oppure  si può impostare scrivendo ATM = 3000                    
    ATMf = new TStringList()                                       
    ATMf.LoadFromFile("C:\Users\user\Dropbox\ATM.TXT")      
    ATM=Cint(ATMf.text)                    
    ATMf.free                                                      
                
                                                                                                       
                                                                                         
    correzioneatm = (ATM - int(mainunderlying.Last/25)*25)/25
    
    
    \'assegnazione di una variabile array ad ogni opzione                    
    for i = 0 to 4                                
    strike = cstr(cstr(ATM) + (i-2)*25)
                   
    calls[i] = CurrentStrategy.getbyName("C @ "+strike+" "+nextexpma)                        
    puts[i] = CurrentStrategy.GetByName("P @ "+strike+" "+nextexpma)                  
    
    next                                                           
                                 
                                                                                                                                                                                        
                                   
    for i=-2 to 2 step 1                                                                     
    bidsc[i+2]=calls[i+2].bidObject                    
    asksc[i+2]=calls[i+2].askobject
    varbidtickc[i+2]=bidsc[i+2].tickcounter
    varasktickc[i+2]=asksc[i+2].tickcounter
                                                                     
    bidsp[i+2]=puts[i+2].bidObject    
    asksp[i+2]=puts[i+2].askobject                                                                                                 
    varbidtickp[i+2]=bidsp[i+2].tickcounter
    varasktickp[i+2]=asksp[i+2].tickcounter                                                                
                                                                                                                                     
    next                                                             
                                                                                                                                                                                                           
                                                    
    strtosave= cstr(mainUnderlying.Last)&" "&
    cstr(calls[0].ask)&" "&cstr(varasktickc[0])&" "&cstr(calls[0].bid)&" "&cstr(varbidtickc[0])&" "&
    cstr(puts[0].ask)&" "&cstr(varasktickp[0])&" "&cstr(puts[0].bid)&" "&cstr(varbidtickp[0])&" "&
    cstr(calls[1].ask)&" "&cstr(varasktickc[1])&" "&cstr(calls[1].bid)&" "&cstr(varbidtickc[1])&" "&
    cstr(puts[1].ask)&" "&cstr(varasktickp[1])&" "&cstr(puts[1].bid)&" "&cstr(varbidtickp[1])&" "&
    cstr(calls[2].ask)&" "&cstr(varasktickc[2])&" "&cstr(calls[2].bid)&" "&cstr(varbidtickc[2])&" "&
    cstr(puts[2].ask)&" "&cstr(varasktickp[2])&" "&cstr(puts[2].bid)&" "&cstr(varbidtickp[2])&" "&
    cstr(calls[3].ask)&" "&cstr(varasktickc[3])&" "&cstr(calls[3].bid)&" "&cstr(varbidtickc[3])&" "&
    cstr(puts[3].ask)&" "&cstr(varasktickp[3])&" "&cstr(puts[3].bid)&" "&cstr(varbidtickp[3])&" "&
    cstr(calls[4].ask)&" "&cstr(varasktickc[4])&" "&cstr(calls[4].bid)&" "&cstr(varbidtickc[4])&" "&
    cstr(puts[4].ask)&" "&cstr(varasktickp[4])&" "&cstr(puts[4].bid)&" "&cstr(varbidtickp[4])                                                                                                                                                 
                                                                                                                                                           
                                                                                                                                                                                                              
                                            
    if SysUtils.FileExists(FileName)then                                                            
                                                                                                                                                                                                                                                                                                                            
        AssignFile(f, Filename)                                                
        Append(f)                                 
        Writeln(f, strtosave)                                                     
        CloseFile(f) 
        
                                                                                                                                                                                                                
        
        else                
               
        strtosave =  mainUnderlying.name & " " & DateToStr(date()) &" "& "ATM:"&ATM                                        
        AssignFile(f, Filename)
        Rewrite(f)
        Writeln(f, strtosave)
        CloseFile(f)                    
                                       
             \'inserimento nella strategia delle 5 + 5 opzioni più atm                                                                                                 
        for i=-5 to 5 step 1                                                                                  
        CurrentStrategy.AddParametricOption(underisin,CALL,correzioneatm-i,5)                                   
        CurrentStrategy.AddParametricOption(underisin,PUT,correzioneatm-i,5)            
    
        
        next                                
        
        
                                                                                                                                                                                                                  
        
        SetPersistentVar(ATMtit,ATM)
    Grazie,
    ottima idea!
    ..se corri dietro a due lepri, non ne prendi nemmeno una.

    Comment

    • Apocalips
      Senior Member

      • May 2011
      • 2791

      #3
      Piu che ottima direi, bravo Ismael


      PS: Ismael, non ho capito questo passaggio:



      prende l\'atm da un file txt oppure si può impostare scrivendo ATM = 3000
      ATMf = new TStringList()
      ATMf.LoadFromFile("C:\Users\user\Dropbox\ATM.TXT")
      ATM=Cint(ATMf.text)
      ATMf.free


      il file ATM.TXT dobbiamo crearlo noi preventivamente inserendo al suo interno
      tutti gli strike della chain a passo 25?

      grazie

      Apo
      Last edited by Apocalips; 30-01-15, 22:06.
      ....non si desidera ciò che è facile ottenere (Ovidio)....

      Comment

      • Ismael
        Senior Member

        • Jan 2011
        • 247

        #4
        Originariamente Scritto da Apocalips
        Piu che ottima direi, bravo Ismael


        PS: Ismael, non ho capito questo passaggio:



        prende l\'atm da un file txt oppure si può impostare scrivendo ATM = 3000
        ATMf = new TStringList()
        ATMf.LoadFromFile("C:\Users\user\Dropbox\ATM.TXT")
        ATM=Cint(ATMf.text)
        ATMf.free


        il file ATM.TXT dobbiamo crearlo noi preventivamente inserendo al suo interno
        tutti gli strike della chain a passo 25?

        grazie

        Apo
        Ciao Apo!
        Puoi scegliere:
        o crei (tu o fiuto) un file che si chiama ATM.txt con scritto solo il valore dell\' ATM oppure cancelli tutto e scrivi es ATM=3000.
        Mi sono ricordato che devi anche scegliere la scadenza... ora correggo lo script e lo salvo corretto in 20 min...
        E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

        Comment

        • Ismael
          Senior Member

          • Jan 2011
          • 247

          #5
          corretto...lo puoi provare?
          E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

          Comment

          • Alex1
            Senior Member

            • Mar 2013
            • 192

            #6
            Domanda a Ismael

            Ciao Ismael

            Intanto ti vorrei ringraziare, per quello che fai per noi „non esperti“.

            Incuriosito da questo script, l’ho inserito in Fiuto, purtroppo mi da un errore e si blocca.
            Sfortunatamente non riesco a rivolvere il problema.

            Unbenannt.png

            In più non riesco a decifrare questa frase, dove devo scrivere “3000” non avendo il file?

            \'prende l\'atm da un file txt oppure si può impostare scrivendo ATM = 3000
            ATMf = new TStringList()
            ATMf.LoadFromFile("C:\Users\Alex\Dropbox\ATM.TXT")
            ATM= Cint(ATMf.text) ATM=3000 sarebbe giusto?
            ATMf.free


            Intanto grazie
            Alex

            Comment

            • Ismael
              Senior Member

              • Jan 2011
              • 247

              #7
              Ora non sono in ufficio... Appen posso correggo..
              L errore e quel 4 prima delle virgolette che va tolto.

              E ok scrivere ATM= 3000 ma lo devi scrivere in una riga sotto atmf.free

              Grazie a te per interesse... Se siamo in due o tre attivo lo spazio per raccolta
              E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

              Comment

              • Ismael
                Senior Member

                • Jan 2011
                • 247

                #8
                Ho messo in condivisione una strategia con nome "conscriptsalvadati" dove c\'è lo script funzionante... fare copia ed incolla dal forum provoca delle volte errori...
                Last edited by Ismael; 03-02-15, 17:14.
                E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

                Comment

                • Alex1
                  Senior Member

                  • Mar 2013
                  • 192

                  #9
                  Originariamente Scritto da Ismael
                  Ho messo in condivisione una strategia con nome "conscriptsalvadati" dove c\'è lo script funzionante... fare copia ed incolla dal forum provoca delle volte errori...
                  Ciao Ismael

                  Intanto grazie, anche se in qualche modo al interno alla condivisione non trovo il file script, sono riuscito a farlo funzionare.

                  Ultima domanda, come devo impostare gli strike della chain per E-Mini S&P?

                  Ho fatto così, pero nel file 322015askbidticksAlex.text vengono tuti 0

                  Codice:
                  correzioneatm = (ATM - int(mainunderlying.Last/5)*5)/5                    
                   
                  \'assegnazione di una variabile array ad ogni opzione                    
                  for i = 0 to 4                                
                  strike = cstr(cstr(ATM) + (i-2)*5)
                  E-MINI S&P 500 03/02/2015 ATM:3000
                  2029.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                  2029.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                  2029.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                  2029.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                  2031.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                  2031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                  2030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

                  Unbenannt.png

                  Grazie
                  Alex
                  Last edited by Alex1; 03-02-15, 19:40.

                  Comment

                  • Ismael
                    Senior Member

                    • Jan 2011
                    • 247

                    #10
                    Ciao, ho messo in condivisione la strategia con lo script funzionante su emini500... riesci a trovarla?
                    Comunque basta cambiare lo strike step da 25 a 5 (sostituisci tutti i 25 con 5)
                    Fammi sapere.
                    E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

                    Comment

                    • Alex1
                      Senior Member

                      • Mar 2013
                      • 192

                      #11
                      Originariamente Scritto da Ismael
                      Ciao, ho messo in condivisione la strategia con lo script funzionante su emini500... riesci a trovarla?
                      Comunque basta cambiare lo strike step da 25 a 5 (sostituisci tutti i 25 con 5)
                      Fammi sapere.
                      Ciao Ismael

                      Può essere che nelle condivisioni non si sia salvato il script?

                      Unbenannt.png

                      Sempre un grazie
                      Alex

                      Comment

                      • Ismael
                        Senior Member

                        • Jan 2011
                        • 247

                        #12
                        Penso proprio di si...

                        provo a postarlo così:

                        uses classes
                        uses SysUtils
                        dim f as textfile
                        dim callss as tsecurity
                        dim mainunderlying as tunderlying
                        dim bidsc as tprice = [0,0,0,0,0]
                        dim asksc as tprice = [0,0,0,0,0]
                        dim bidsp as tprice = [0,0,0,0,0]
                        dim asksp as tprice = [0,0,0,0,0]
                        dim correzioneatm,i as double
                        dim ATMf as Tstringlist
                        dim ATM,Filename,strtosave,ATMtit as string
                        dim calls as toption = [0,0,0,0,0]
                        dim puts as toption = [0,0,0,0,0]
                        dim underisin,anno, mese, giorno,nextexpma ,strike, Tuonome, smese
                        dim varbidtickc as double = [0,0,0,0,0]
                        dim varasktickc as double = [0,0,0,0,0]
                        dim varbidtickp as double = [0,0,0,0,0]
                        dim varasktickp as double = [0,0,0,0,0]


                        mainUnderlying = CurrentStrategy.GetMainUnderlying()
                        underisin = mainunderlying.isin


                        DecodeDate(Now(), anno, mese, giorno)

                        \'scrivi il tuo nome
                        tuonome = "Apo"


                        \'scegli il mese di scadenza
                        smese = 2



                        if mese<10 then
                        nextexpma = "0"+cstr(smese) + "-" + cstr(anno)
                        else
                        nextexpma = cstr(smese) + "-" + cstr(anno)
                        end if

                        \'crea il nome del file giornaliero

                        \'prende l\'atm da un file txt oppure si può impostare scrivendo ATM = 3000
                        \'ATMf = new TStringList()
                        \'ATMf.LoadFromFile("C:\Users\user\Dropbox\ATM.TXT ")
                        \'ATM=Cint(ATMf.text)
                        \'ATMf.free

                        ATM = 2035

                        Filename = "c:\users\user\dropbox\" + cstr(giorno) + cstr(mese) + cstr(anno) + cstr(smese) + "askbidticks" + tuonome + ".txt"

                        correzioneatm = (ATM - int(mainunderlying.Last/5)*5)/5


                        \'assegnazione di una variabile array ad ogni opzione
                        for i = 0 to 4
                        strike = cstr(cstr(ATM) + (i-2)*5)

                        calls[i] = CurrentStrategy.getbyName("C @ "+strike+" "+nextexpma)
                        puts[i] = CurrentStrategy.GetByName("P @ "+strike+" "+nextexpma)

                        next



                        for i=-2 to 2 step 1
                        bidsc[i+2]=calls[i+2].bidObject
                        asksc[i+2]=calls[i+2].askobject
                        varbidtickc[i+2]=bidsc[i+2].tickcounter
                        varasktickc[i+2]=asksc[i+2].tickcounter

                        bidsp[i+2]=puts[i+2].bidObject
                        asksp[i+2]=puts[i+2].askobject
                        varbidtickp[i+2]=bidsp[i+2].tickcounter
                        varasktickp[i+2]=asksp[i+2].tickcounter

                        next


                        strtosave= cstr(mainUnderlying.Last)&" "&
                        cstr(calls[0].ask)&" "&cstr(varasktickc[0])&" "&cstr(calls[0].bid)&" "&cstr(varbidtickc[0])&" "&
                        cstr(puts[0].ask)&" "&cstr(varasktickp[0])&" "&cstr(puts[0].bid)&" "&cstr(varbidtickp[0])&" "&
                        cstr(calls[1].ask)&" "&cstr(varasktickc[1])&" "&cstr(calls[1].bid)&" "&cstr(varbidtickc[1])&" "&
                        cstr(puts[1].ask)&" "&cstr(varasktickp[1])&" "&cstr(puts[1].bid)&" "&cstr(varbidtickp[1])&" "&
                        cstr(calls[2].ask)&" "&cstr(varasktickc[2])&" "&cstr(calls[2].bid)&" "&cstr(varbidtickc[2])&" "&
                        cstr(puts[2].ask)&" "&cstr(varasktickp[2])&" "&cstr(puts[2].bid)&" "&cstr(varbidtickp[2])&" "&
                        cstr(calls[3].ask)&" "&cstr(varasktickc[3])&" "&cstr(calls[3].bid)&" "&cstr(varbidtickc[3])&" "&
                        cstr(puts[3].ask)&" "&cstr(varasktickp[3])&" "&cstr(puts[3].bid)&" "&cstr(varbidtickp[3])&" "&
                        cstr(calls[4].ask)&" "&cstr(varasktickc[4])&" "&cstr(calls[4].bid)&" "&cstr(varbidtickc[4])&" "&
                        cstr(puts[4].ask)&" "&cstr(varasktickp[4])&" "&cstr(puts[4].bid)&" "&cstr(varbidtickp[4])



                        if SysUtils.FileExists(FileName)then

                        AssignFile(f, Filename)
                        Append(f)
                        Writeln(f, strtosave)
                        CloseFile(f)



                        else

                        strtosave = mainUnderlying.name & " " & DateToStr(date()) &" "& "ATM:"&cstr(ATM)
                        AssignFile(f, Filename)
                        Rewrite(f)
                        Writeln(f, strtosave)
                        CloseFile(f)

                        \'inserimento nella strategia delle 5 + 5 opzioni più atm
                        for i=-5 to 5 step 1
                        CurrentStrategy.AddParametricOption(underisin,CALL ,correzioneatm-i,5)
                        CurrentStrategy.AddParametricOption(underisin,PUT, correzioneatm-i,5)


                        next




                        SetPersistentVar(ATMtit,ATM)

                        end if
                        E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

                        Comment

                        • Alex1
                          Senior Member

                          • Mar 2013
                          • 192

                          #13
                          Originariamente Scritto da Ismael
                          Penso proprio di si...

                          provo a postarlo così:

                          ....

                          \'ATMf = new TStringList()
                          \'ATMf.LoadFromFile("C:\Users\user\Dropbox\ATM.TXT " )
                          \'ATM=Cint(ATMf.text)
                          \'ATMf.free

                          ....
                          Ciao Ismael

                          Finalmente sono riuscito a provare il script
                          Da “nulla sapiente” mi ha ingannato l`apostrofo.

                          Devo dire che sei molto pravo,
                          in più si vede il potenziale nascosto di FiutoPro.


                          Intanto ringrazio ancora, per la tua pazienza.

                          Saluti
                          Alex

                          Comment

                          • Ismael
                            Senior Member

                            • Jan 2011
                            • 247

                            #14
                            Grazie ma non mi sento affatto pravo... basta che t leggi qualcosa sulla programmazione ad oggetti e poi il manuale. Poi fai un po di prove e costruisci la script poco alla volta... Quello che ho scritto io non è affatto complicato...
                            Ti posto qualche grafico delle potenzialità che ci sono nell\'analisi dei prezzi... Tieni conto che sono molto grezzi senza alcun filtro o ottimizzazione. Vorrei riuscire a costruire un ts su fiuto che, come dici tu, ha incredibilmnete più potenziale di excel...

                            Cattura1.JPG

                            Cattura2.JPG

                            Cattura3.JPG
                            E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

                            Comment

                            • Alex1
                              Senior Member

                              • Mar 2013
                              • 192

                              #15
                              Originariamente Scritto da Ismael
                              Grazie ma non mi sento affatto pravo... basta che t leggi qualcosa sulla programmazione ad oggetti e poi il manuale. Poi fai un po di prove ....
                              Ciao Ismael

                              Non so se aiuterebbe, leggendo nelle pagine del script, ho trovato questo codice.

                              Lo si potrebbe integrare per trovare le ATM in automatico?
                              (Ho provato a inserirlo, mi da sempre errore)

                              Codice:
                              Function GetPreviousStrike(ByVal underlyingIsin As String, ByVal price
                              As Double) As Double
                              Restituisce lo strike delle opzioni immediatamente precedente al valore specificato
                              underlyingIsin" Codice isin del sottostante
                              price" " " Valore di riferimento
                               
                              String RealIsin
                              [Read-Only] Codice isin dello strumento sottostante in caso di future
                              Grazie
                              Alex

                              Comment

                              Working...