Discussione: Scripts di esempio
Visualizzazione Ibrida
-
23-01-13, 12:11 #1
Scripts di esempio
Questa discussione è dedicata alla pubblicazione di semplici scripts di esempio realizzati dagli utenti.
-
23-01-13, 12:24 #2
Flat All
Ecco un primo esempio di script (in basic):
If (CurrentStrategy.NetProfit > 500) or (CurrentStrategy.NetProfit < -500) Then CurrentStrategy.FlatAll End if
L'interpretazione dello script è:
Seil profitto della strategia è maggiore di 500 €oppurela perdita della strategia è maggiore di 500 €alloraChiudi tutte le posizioni aperte della strategia
In questo piccolo script è da notare l'utilizzo del segno negativo nella condizione relativa alla perdita netta della strategia: l'utilizzo del segno negativo rende necessario anche il cambio di operatore di confronto, da maggiore a minore.
CurrentStrategy rappresenta la strategia di FiutoPRO, ed è l'oggetto principale nel sistema di scripting. Praticamente qualsiasi oggetto, proprietà, e metodo sono accessibili a partire da CurrentStrategy.
Per accedere alle proprietà ed ai metodi di un oggetto, è necessario utilizzare il carattere punto (.).
Consiglio sempre di leggere il manuale relativo al sistema di scripting di FiutoPRO a questo indirizzo:
http://www.playoptions.it/fiuto/FPSS.pdf
Max Francario
-
23-01-13, 15:41 #3
- Data Registrazione
- Aug 2008
- Località
- Edolo (BS)
- Messaggi
- 693
Ciao Max e grazie per aver aperto questa sezione...
L'oggetto CurrentStrategy è il principale...ok fin qui tutto semplice :-)
Questo ero riuscito a farlo, ovvero far interagire ad esempio il prezzo del sottostante con la Strategia...anche se magaari in modo un pò spartano...
dim bepl1
dim close
bepl1 = CurrentStrategy.UpsideBreakEven
close = CurrentStrategy.GetMainUnderlyingPrice
if close < bepl1 then
showmessage ("Bravo")
else
showmessage ("Vaffa!")
end if
Quello che invece tutt'ora non riesco a fare è interagire ad esempio con una singola opzione all'interno di una strategia...
Immagino che dovrò prima definire la gamba, con qualcosa di simile a:
Opzione = CurrentStrategy.OPZIONECHEVOGLIO
Opzione_BEP = CurrentStrategy.OPZIONECHEVOGLIO.UpsideBreakeven
Ci sto girando intorno ma non riesco a trovare il modo giusto...
-
23-01-13, 16:13 #4
Salve,
ecco un esempio di come ottenere gli oggetti corrispondenti alle leg della strategia.
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"
Seil prezzo di riferimento dell'oggetto under è maggiore dello strike dell'oggetto c17000AlloraCompra 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
-
23-01-13, 16:35 #5
- Data Registrazione
- Aug 2008
- Località
- Edolo (BS)
- Messaggi
- 693
Grazie Max!
Ok...ottimo punto di partenza :-)
-
25-01-13, 12:09 #6
- Data Registrazione
- Aug 2008
- Località
- Edolo (BS)
- Messaggi
- 693
Sono l'unico interessato allo Script??
Max...altra domandina...
Qual è il modo corretto per utilizzare la funzione:
FILTER_TIME_SESSION ?
Quello che vorrei fare è dire a Fiuto di eseguire ad esempio il FlatAll solamente se si trova all'interno degli orari della sessione che ho definito...
Ho dichiarato le sessioni così, e anche qui non so se è giusto:
DIM StartSession1 as TDateTime
DIM EndSession1 as TDatetime
StartSession1 = 0905
EndSession1 = 1725
Ripeto...non so se è corretto...
Poi però ho provato in vari modi ad inserie una condizione che richiamasse il FILTER_TIME_SESSION ma senza avere successo...
Grazie in anticipo
-
10-03-13, 00:34 #7
- Data Registrazione
- Aug 2010
- Località
- Padova
- Messaggi
- 738
-
10-03-13, 12:16 #8
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.
ApoUltima modifica di Apocalips; 10-03-13 alle 12:24
....non si desidera ciò che è facile ottenere (Ovidio)....
-
12-03-13, 11:42 #9
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
Meglio tardi che mai!
var Under: TUnderlying ; c17000: TOption Begin Under := CurrentStrategy.GetMainUnderlying c17000 := CurrentStrategy.GetByName('C @ 17000 03-2013') if(under.Reference > c17000.Strike) Then begin c17000.Buy(2, MARKET) End End
Nota: se l'opzione non è già presente nello Strategy Builder, lo script non fa nulla!