Risultati da 1 a 10 di 16

Visualizzazione Elencata

  1. #1

    Data Registrazione
    Jan 2011
    Località
    Castiglioncello (LI)
    Messaggi
    240

    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 )

    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
    Ultima modifica di Ismael; 31-01-15 alle 12:57
    E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Contattaci

Chiama gli esperti
+39 0425 792923

Chiamaci
Email

Richiedi informazioni via E-MAIL
info@playoptions.it

Scrivici
Nostri Uffici

Vieni a trovarci
45100 Rovigo

Contattaci

Serve Aiuto?

Contattaci per maggiori informazioni.

Denis MorettoSpecialista Finanziario
Contattaci
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.