info@playoptions.it Chiedi un consulto
+39 0425 792923 Lunedì - Venerdì, 9.00 - 18.00
Contattaci
toggle menu
info@playoptions.it Chiedi un consulto
+39 0425 792923 Lunedì - Venerdì, 9.00 - 18.00
Contattaci
toggle menu
Pagina 2 di 2 Prima 12
  1. #11

    Data Registrazione
    Mar 2013
    Messaggi
    192
    Citazione Originariamente Scritto da Ismael Visualizza Messaggio
    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

  2. #12

    Data Registrazione
    Jan 2011
    Località
    Castiglioncello (LI)
    Messaggi
    240
    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'è.

  3. #13

    Data Registrazione
    Mar 2013
    Messaggi
    192
    Citazione Originariamente Scritto da Ismael Visualizza Messaggio
    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

  4. #14

    Data Registrazione
    Jan 2011
    Località
    Castiglioncello (LI)
    Messaggi
    240
    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'è.

  5. #15

    Data Registrazione
    Mar 2013
    Messaggi
    192

    Question

    Citazione Originariamente Scritto da Ismael Visualizza Messaggio
    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)

    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

  6. #16

    Data Registrazione
    Jan 2011
    Località
    Castiglioncello (LI)
    Messaggi
    240
    Citazione Originariamente Scritto da Alex1 Visualizza Messaggio
    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)

    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
    Ciao Alex, il problema è che l'atm si sposta durante la giornata e poi le serie di ask e bid si muovono in continuazione... Quindi è meglio (per me) decidere un atm iniziale e mantenerlo, così ho serie di prezzi che si riferiscono sembre alle solite opzioni...

    Comunque Se vuoi trovare l'atm potresti usare:
    1.addparametricoptions
    2. una formula del tipo:
    if (last/intervallo tra strike)-int(last/intervallo tra strike)>0.5 then
    atm=(int(last/intervallo tra strike)+1)*intervallo tra strike
    else
    atm=int(last/intevallo tra strike)*intevallo tra strike
    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