Discussione: Scripts di esempio
-
10-03-13, 19:08 #61Senior Member


- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
Ciao Apo,
ti dico come la penso io:
per arrivare a scrivere script che siano in grado di fare cose complesse (in precedenza avevi parlato di una rollata di un Iron Condor) sarebbe auspicabile avere prima appreso qualche nozione di programmazione a oggetti, che non è un argomento specifico solo del linguaggio presente in Fiuto Pro, bensì un argomento molto più generale.
Cose del tipo: sapere che cos'è una classe, che cosa sono proprietà metodi ed eventi, che differenza c'è tra una funzione ed una procedura, ecc. ...
Inoltre, sia il programmare sia l'utilizzare degli script presuppongono sempre l'obbligo e la disponilità da parte dell'utente di mettersi a "dialogare" con la macchina, cercando di capire prima di tutto come interrogarla e come farsi ritornare da lei delle risposte.
E' così che si inizia, e poi piano piano si va avanti cercando di fare cose nuove e sempre più complesse. Ma ci vuole tempo e soprattutto tanta, tanta, tanta (ma proprio tanta) pazienza!
Secondo me chi si trova a partire completamente da zero può intanto iniziare ad interagire con lo script in maniera elementare, giocando a fargli delle domande facendosi dare delle risposte.
Faccio un esempio: quando si apre per la prima volta lo Script Editor di una nuova strategia compare il seguente codice pre-compilato:
' 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. ' dim mainUnderlying as TUnderlying mainUnderlying = CurrentStrategy.GetMainUnderlying() ShowMessage("Main underlying for this strategy is " + mainUnderlying.Name)
Lo si manda in esecuzione (cliccando sull'icona con la freccetta verde) e intanto si vede che cosa succede (e soprattutto ci si deve domandare il perchè succede).
Poi si può ad esempio aggiungere allo script un'altra riga del tipo:
ShowMessage(mainUnderlying.
e vedere intanto che nell'editor dello script magicamente si apre una finestrina che da' la possibilità di fare delle scelte.
Se si completa la riga come segue
ShowMessage(mainUnderlying.Delta)
il nuovo codice completo diventerà:
' 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. ' dim mainUnderlying as TUnderlying mainUnderlying = CurrentStrategy.GetMainUnderlying() ShowMessage("Main underlying for this strategy is " + mainUnderlying.Name) ShowMessage(mainUnderlying.Delta)
e si vede che cosa è cambiato rispetto a prima.Ultima modifica di Smash; 10-03-13 alle 20:35
-
10-03-13, 20:11 #62
Ciao smash, grazie del tuo preziosissimo contributo, incominceremo a fare questi piccoli tentavi per incominciare a capire come si interagisce con la macchina.
grazie infinite....non si desidera ciò che è facile ottenere (Ovidio)....
-
10-03-13, 20:46 #63Senior Member



- Data Registrazione
- Dec 2009
- Messaggi
- 813
Smash santo subito!!!
ahahah bella questa emotion
Grazie mille anche da parte mia, provo subito ad interagire con la bestia e speriamo che altri programmatori vogliano dedicare un pò del loro prezioso tempo per condividere le loro e le nostre conoscienze!
-
10-03-13, 20:55 #64Senior Member



- Data Registrazione
- Aug 2010
- Località
- Padova
- Messaggi
- 738
ShowMessage in Pascal
{ SCRIPT PERSONALITY: PASCAL }
var Sottostante;
begin
Sottostante := CurrentStrategy.Name;
ShowMessage (Sottostante);
end;"Tempus omnia medetur" .... e fà guadagnare di Theta
-
10-03-13, 21:00 #65Senior Member


- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
-
10-03-13, 21:05 #66Senior Member


- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
-
10-03-13, 22:33 #67Senior Member



- Data Registrazione
- Aug 2008
- Località
- Edolo (BS)
- Messaggi
- 693
Script Rollata
Ok...vediamo di mettere qualche esempio... e sottolineo che solo di esempio si tratta...per cominciare da qualcosa di facile...
Ecco uno script che rolla una put venduta quando il Last del sottostante (SIEMENS) è uguale o inferiore al valore 80.00.
Il rolling viene fatto dall'opzione strike 80 (put_Vendute1) all'opzione strike 78 (put_Vendute2)
L'opzione strike 74 (put_Comprate1) è la copertura
Tutte le opzioni devono già essere presenti nello Strategy Builder...
Il tipo di ordine a mercato in questo esempio è MARKET, che però con le opzioni non andrebbe usato....
ATTENZIONE! Non è un esempio da usare a mercato reale, è solo per capire la logica dello script, perchè in realtà andrebbero inseriti altri controlli relativi alla strategia e altri parametri...
Ovviamente Max potrà correggermi se c'è qualche errore nello script...anche perchè sto cercando di imparare anche io
' Dichiarazione Variabili
dim sottostante as TUnderlying
dim put_Vendute1 as TOption
dim put_Vendute2 as TOption
dim put_Comprate1 as TOption
' Definizione Variabili
sottostante = CurrentStrategy.GetByName("SIEMENS")
put_Vendute1 = CurrentStrategy.GetByName("P @ 80 03-2013")
put_Vendute2 = CurrentStrategy.GetByName("P @ 78 03-2013")
put_Comprate1 = CurrentStrategy.GetByName("P @ 72 03-2013")
' Rollata
if (sottostante.Last <= 80.00) then
put_Vendute1.AddOrder(1, MARKET)
put_Vendute2.AddOrder(-1, MARKET)
end ifUltima modifica di chrisbasetta; 10-03-13 alle 22:35
-
10-03-13, 23:11 #68
ottimo Chris,
adesso incomincia ad essere chiaro il concetto di definizione e dichiarazione di variabili
questi esempi pratici, come dicevo, valgono piu di mille letture di libri.
...se al bambino non gli fai vedere come si tiene in mano una forchetta, lui continuerà a mangiare con le mani.....
una domanda Chris:
che tu sappia, all'interno di uno script posso richiamare variabili di un altra strategia che non sia quella corrente? ad esempio se volessi controllare con un sottostante esterno il delta 1% di un portafoglio composto da diverse strategie è possibile farlo con uno script?
presumo che per fare questo devono essere rese disponibili le variabili di portafoglio, dico bene?
grazieUltima modifica di Apocalips; 10-03-13 alle 23:26
....non si desidera ciò che è facile ottenere (Ovidio)....
-
10-03-13, 23:27 #69Senior Member


- Data Registrazione
- Jul 2010
- Messaggi
- 430
C'est magnifique !!
Aspetta sempre che scelta se farla in paper trading od altro, ma ha fatto la rollata senza passare dalla chain.
Quello che hai usato é visual basic ? Io lo mandato in esecuzione come nelle macro con il triangolo del play, ma bisogna salvarla in un progetto ? É come devo essere inseriti nelle strategie ?
-
10-03-13, 23:44 #70Senior Member



- Data Registrazione
- Aug 2010
- Località
- Padova
- Messaggi
- 738

Rispondi Citando


