Data Mining Algoritmi e Programmazione



Похожие документы
STRATEGIA DI TRADING. Turning Points

Algoritmo per l individuazione dei punti di svolta basato su previsioni effettuate con un modello di lisciamento esponenziale.

Analisi di scenario File Nr. 10

II.f. Altre attività sull euro

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Il SENTIMENT E LA PSICOLOGIA

Capitolo 4.2. Analisi tecnica: Fibonacci

Database 1 biblioteca universitaria. Testo del quesito

Corso di. Dott.ssa Donatella Cocca

Gestione Turni. Introduzione

Indice di rischio globale

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Capitolo 13: L offerta dell impresa e il surplus del produttore

Calcolo del Valore Attuale Netto (VAN)

COME SI FORMA E COME SI RICONOSCE UN ROSS HOOK

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

Matematica in laboratorio

MAGAZZINO FISCALE (agg. alla rel )

Automazione Industriale (scheduling+mms) scheduling+mms.

Vediamo l Indice Ftse-Mib (dati giornalieri aggiornati alla chiusura del 28 agosto): Volumi e Prezzi

TNT IV. Il Diavolo è meno brutto di come ce lo dipingono!!! (Guarda il video)

GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

FLASHINVESTOR Manuale dell Utente

IL MODELLO CICLICO BATTLEPLAN

Capitolo 2. Operazione di limite

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

Serie Storiche Trasformazioni e Aggiustamenti

INTRODUZIONE AI CICLI

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

GUIDA AL CHART TRADING

Introduzione alla programmazione in C

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

Applicazioni grafiche

IL RISCHIO D IMPRESA ED IL RISCHIO FINANZIARIO. LA RELAZIONE RISCHIO-RENDIMENTO ED IL COSTO DEL CAPITALE.

PARTE 3: SUPPORTI E RESISTENZE

TNT IV. Il Diavolo è meno brutto di come ce lo dipingono!!! (Guarda il video)

Strategie di copertura dai rischi del cambio e del prezzo del petrolio

Come Creare una Strategia di Trading di Successo

(a cura di Francesca Godioli)

2. Leggi finanziarie di capitalizzazione

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Contabilità generale e contabilità analitica

Invio SMS. DM Board ICS Invio SMS

Come si seleziona un fondo di investimento

Financial Trend Analysis

Ammortamento di un debito

Capitale raccomandato

Capitale raccomandato

Capitale raccomandato

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

GRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI

Report settimanale. 3-7 marzo by David Carli

Esempi di algoritmi. Lezione III

Manuale Operativo Risk Manager

Metodi statistici per le ricerche di mercato

OSSERVAZIONI TEORICHE Lezione n. 4

Il concetto di valore medio in generale

Google AdWords. Corrispondenze Parole Chiave

Raggruppamenti Conti Movimenti

Il mercato mobiliare

! Esempio 1: Future Crude Oil con grafico a 15 minuti!!

Progetto PI , passo A.1 versione del 14 febbraio 2007

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

Verifica della correttezza formale del numero di partita IVA

LA LEGGE DEI GRAFICI THE LAW OF CHARTS DI JOE ROSS

istruzioni per l uso

Introduzione all Information Retrieval

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

4 3 4 = 4 x x x 10 0 aaa

a) Determinare i numeri indice a base fissa del fatturato con base 2007=100 e commentare i risultati ottenuti per gli anni 2008 e 2012

MD 9. La macroeconomia delle economie aperte. UD 9.1. Macroeconomia delle economie aperte

MODIFICHE AL REGOLAMENTO N /98 IN MATERIA DI MERCATI

= 1, = w 2 x σ 2 x + (1 w x ) 2 σ 2 x 2 w x (1 w x ) σ x σ y, = w x 0.2. = 0,

LE FUNZIONI A DUE VARIABILI

Come creare il test di Yasso tramite l applicazione Training Center

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

Il significato della MEDIA e della MEDIANA in una raccolta di dati numerici

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

_COSA SONO E A COSA SERVONO I CICLI DI BORSA.

Algoritmi e Strutture Dati

Financial Trend Analysis

Tasso di occupazione per fasce di età. Provincia di Piacenza, ,3 83,1 77,7 27,6 16, anni anni anni.

Guida Compilazione Piani di Studio on-line

Il personale docente e la segreteria didattica per effettuare la gestione degli scrutini dovranno eseguire semplici operazioni.

2.7 La cartella Preparazioni e CD Quiz Casa

Struttura logica di un programma

Dimensione di uno Spazio vettoriale

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

IL MARKETING STRATEGICO

CHIUSURE di MAGAZZINO di FINE ANNO

STRATEGIA DI TRADING SUL CROSS EUR-JPY

Versione 7.0 Taglie e Colori. Negozio Facile

3 - Generazione di un disegno CAD partendo dal file in formato Pregeo

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

Guida Informativa. LAVORI DI FINE ANNO ebridge Linea Azienda. Chiusura e riapertura esercizio di magazzino, fatturazione, ordini e agenti.

Mercati finanziari e valore degli investimenti

Транскрипт:

Data Mining Algoritmi e Programmazione Turning Point Professore: Tommaso Gastaldi A cura di: Nello Procaccioli 1

DEFINIZIONE ASK E BID Prima di proiettarsi sul discorso riguardo l algoritmo da utilizzare per il calcolo del turning point, vorrei analizzare tutti i passi effettuati per arrivare a questo, partendo dalla definizione di Ask e Bid. Che cos è il prezzo Ask e il prezzo Bid? Il prezzo Bid è il prezzo al quale il dealer è disposto ad acquistare uno strumento finanziario. Il prezzo Ask è quello al quale il dealer è disposto a vedere uno strumento finanziario. Il prezzo Ask (detto anche offer) è superiore al prezzo Bid. Il cosiddetto best Bid è il più elevato prezzo Bid presente sul mercato. Analogamente, è detto best Ask il più basso prezzo Ask presente sul mercato. Il concetto Bid-Ask spread è applicabile anche ai mercati ad asta e in tal senso è dato dalla differenza tra la miglior proposta in vendita e la miglior proposta in acquisto, presenti sul mercato. Che cos è lo Spread tra Ask e Bid? Lo Spread non è altro che la differenza tra Ask e Bid. Il Bid-Ask spread è la differenza tra best Ask e best Bid. Con riferimento all operatività del dealer, il Bid-Ask spread è il margine di profitto lordo di tale intermediario, che negozia strumenti di proprietà appartenenti al proprio portafoglio. Negli ordini istantanei infatti lo spread è decisamente più facile da leggere perché lo vuoi vedere direttamente sul grafico tick oppure sopra i tasti Vendi/Compra della finestra ordine. Negli ordini pendenti invece il broker esegue gli ordini esattamente al prezzo da te indicato ( al netto dell eventuale slippage) e pertanto aprirà e chuderà gli ordini a prezzi comprensivi di spread. Tuttavia si tratta di impostazioni che variano da broker a broker. Nello specifico, analizzando quello che avviene nella finestra ordine, è necessario precisare che se fai un rodine di acquisto (posizione long) devi pensare che il broker ti darà l eseguito Ask nonostante tu abbia richiesto Bid. Infatti il broker aggiunge al prezzo Bid qualche pips di spread e in seguito ti fornisce l eseguito al prezzo Ask. Allo stesso modo se fai un ordine di vendita (posizione short) devi pensare che il broker ti fornirà l eseguito sempre al prezzo Ask nonostante tu abbia richiesto il Bid, ma in questo caso il broker aggiunge qualche pips. 2

Il colore della casella VENDI è rosso come il prezzo di Bid; Il colore della casella COMPRA è celeste come il prezzo di Ask; Tale grafico è impostato sul prezzo Bid, pertanto se si vuole chiudere una posizione short si deve considerare il prezzo Ask e viceversa, se si vuole chiudere una posizione long si deve considerare il prezzo di Bid. Dopo aver fatto una breve introduzione riguardo gli Ask e i Bid proseguiamo il percorso andando ad illustrare tutti i passaggi effettuati per creare una serie storica che visualizzi l andamento dei prezzi. La prima cosa che ci si chiede è : cos è una serie storica? Una serie storica si definisce come un insieme di variabili casuali ordinate rispetto al tempo, ed esprime la dinamica di un certo fenomeno nel tempo. Le serie storiche vengono studiate sia per interpretare un fenomeno, individuando componenti di trend, di ciclicità, di stagionalità e/o di accidentalità, sia per prevedere il suo andamento futuro. In generale, quando si parla di serie si intende la classificazione di diverse osservazioni di un fenomeno rispetto ad un carattere qualitativo. Se tale carattere è il tempo, la serie viene denominata serie storica o temporale. La variabili, ossia il fenomeno preso in considerazione, può essere osservato in dati istanti di tempo o alla fine di periodi di lunghezza definita. Le serie storiche possono essere di due tipi: Deterministico: se i valori della variabile possono essere esattamente determinati sulla base dei valori precedenti. Stocastico: se i valori delle variabili possono essere determinati sulla base dei valori precedenti solo in misura parziale. 3

La maggioranza delle serie storiche è di tipo stocastico e si rivela quindi impossibile elaborare previsioni prive di errore. Nel nostro programma per generare una serie di prezzi abbiamo utilizzato i generatori pseudocasuali. Per fare questo è importante definire: 1. Il prezzo iniziale. 2. Tick (Variazione minima). Si è inoltre stabilito che il prezzo successivo Pi+1 deve essere uguale al prezzo precedente +- Tick in base al valore 0 o 1 della variabile Bernoulliana. Per effettuare una generazione di numeri casuali è stato utilizzato l oggetto random che rappresenta un generatore di numeri peseudo-casuali. Il random walk è un percorso dove ogni passo ha una direzione casuale e possibilmente anche una dimensione casuale. Le cosiddette passeggiate aleatorie sono utilizzate come modelli per studiare fenomeni variabili coma la diffusione e il prezzo di attività finanziarie. L espressione di un Random Walk è: P t = P t-1 + E t Dove: o P t = Indica il prezzo dell azione al tempo t. o P t-1 = Indica il prezzo dell azione al tempo t-1 o E t = Indica il White Noise Questo appena descritto non viene considerato un modello utilizzabile per i prezzi perché, nel caso in cui viene generato un numero di prezzi sufficientemente elevato, si possono ottenere valori negativi perdendo cosi significato. Il modello cosi ottenuto non è realistico. Dopo aver illustrato le tecniche per definire il programma, andiamo a vedere alcuni passi fondamentali per la costruzione: 1) Viene creata la classe Osservazione_prezzo: Public Class osservazione_prezzo Public istante As Date Public prezzo As Decimal End Class 4

2) Si creano le liste dei prezzi BID e ASK: Dim lista_oss_casuali_bid As New List(Of osservazione_prezzo) Dim lista_oss_casuali_ask As New List(Of osservazione_prezzo) 3) Si creano dei riferimenti temporali: 0, 0) Dim Origine As Date = New Date(Now.Year, Now.Month, Now.Day, 0, Dim istanteprec As Date = Origine Dim istantecorrente As Date 4) Si procede con la creazione dei prezzi: Dim prezzoiniziale As Decimal = 10000 Dim prezzoprec As Decimal = prezzoiniziale Dim prezzocorrente As Decimal 5) Si generano dei numeri casuali attraverso il ciclo for: For i As Integer = 1 To 1000 If Me.rnd.NextDouble < 0.5 Then prezzocorrente = prezzoprec - tick Else prezzocorrente = prezzoprec + tick End If 61)) istantecorrente = istanteprec.addseconds(me.rnd.next(5, 5

6) Si creano le liste di osservazioni casuali: Dim oss_bid As New osservazione_prezzo With oss_bid.prezzo = prezzocorrente.istante = istantecorrente End With lista_oss_casuali_bid.add(oss_bid) Dim oss_ask As New osservazione_prezzo With oss_ask.prezzo = prezzocorrente + tick.istante = istantecorrente End With lista_oss_casuali_ask.add(oss_ask) 7) Si determinano i minimi e i massimi: Dim x_bid As Single = CSng((oss_bid.istante - Origine).TotalSeconds) Dim y_bid As Single = oss_bid.prezzo Dim x_ask As Single = CSng((oss_ask.istante - Origine).TotalSeconds) Dim y_ask As Single = oss_ask.prezzo ListaPuntiNonTrasformati_bid.Add(New PointF(x_bid, y_bid)) ListaPuntiNonTrasformati_ask.Add(New PointF(x_ask, y_ask)) If minx > x_bid Then minx = x_bid If maxx < x_bid Then maxx = x_bid If miny > y_bid Then miny = y_bid If maxy < y_ask Then maxy = y_ask istanteprec = istantecorrente prezzoprec = prezzocorrente 8) Si definisce una funzione in cui si crea una lista dei punti trasformati: Function CalcolaListaPuntiTrasformati(ByVal minx As Double, ByVal maxx As Double, ByVal miny As Double, ByVal maxy As Double, _ ByVal listapuntinontrasformati As List(Of PointF)) As List(Of Point) 6

Dim listapuntitrasformati As New List(Of Point) For Each puntonontrasformato As PointF In listapuntinontrasformati Dim x As Integer = CInt(mybitmap.Width * (puntonontrasformato.x - minx) / (maxx - minx)) Dim y As Integer = mybitmap.height - CInt(mybitmap.Height * (puntonontrasformato.y - miny) / (maxy - miny)) listapuntitrasformati.add(new Point(x, y)) Next Return listapuntitrasformati End Function 9) Viene definito il disegno delle liste dei punti trasformati: Me.mygraphics.FillRectangle(Brushes.White, New Rectangle(Point.Empty, New Size(Me.mybitmap.Width, Me.mybitmap.Height))) Me.mygraphics.DrawLines(Pens.Maroon, ListaPuntiTrasformati_bid.ToArray) Me.mygraphics.DrawLines(Pens.Blue, ListaPuntiTrasformati_ask.ToArray) Me.PictureBox1.Image = Me.mybitmap 7

Costruito il progetto attraverso i 9 passaggi andiamo a visualizzare il risultato: DEFINIZIONE DI TURNING POINT I turning point sono dei particolari livelli di prezzo, calcolati mediante semplici formule matematiche che consentono di determinare dei possibili valori di supporto e resistenza per la seduta successiva. I Turning vengono maggiormente utilizzati dai trader che lavorano in intra day su Cowered Warrant ed i derivati in generale che hanno necessità di prendere determinati livelli di prezzo a cui entrare e uscire nel corso della seduta. Questi punti vengono presi in considerazione per determinare la direzione primaria del mercato identificando i principali livelli di supporto e di resistenza. Tali livelli possono anche essere utilizzati per generare livelli validi in un ottica settimanale o mensile anche ai singoli titoli azionari ed indici. Dopo aver brevemente descritto il turning point, si procede con la definizione dei metodi o algoritmi scelti per il calcolo di tali punti di massimo o minimo picchi. 8

Il nostro principale obiettivo è quello di trovare degli algoritmi veloci ed efficaci, che ci aiutino a individuare il momento in cui vendere o acquistare un titolo finanziario. Si tratta in particolare di due metodi: A. Il primo metodo scelto riguarda l utilizzo delle medie mobili. La media mobile per definizione, è uno strumento utilizzato per l analisi di serie storiche. Esse vengono utilizzate principalmente nell analisi tecnica. Esistono diversi tipi di medie mobili, che si differenziano tra loro per la formula di calcolo. I tipi principali sono: i. Media Mobile Semplice. La media mobile semplice è la più utilizzata dagli analisti ed è quella più facile per quanto riguarda il calcolo. Vengono presi dei dati di un determinato periodo e ne viene calcolata la media sommandoli fra loro e dividendo per il numero totale di valori. Tale media è spesso criticata, in quanto assegna la stessa importanza ad ogni singolo dato. 9

ii. Media Mobile Ponderata. Per ovviare al problema delle medie mobili semplici è stata creata la Media Mobile Ponderata. Il suo calcolo prevede che, prendendo in esame una media mobile composta da 10 periodi, la chiusura del decimo venga moltiplicata per 10, quella del 9 per nove e cosi fino alla fine. In questo modo si riesce a dare maggior peso agli ultimi valori. iii. Media Mobile Esponenziale. La Media Mobile Esponenziale viene generata da un sistema di calcolo complesso che cerca di eliminare le carenze della media mobile semplice. Viene dato un peso differente ai vari prezzi, un peso maggiore quelli più recenti uno minore quelli più vecchi. 10

iv. Media Mobile Adattiva. Uno dei principali problemi riscontrati nell utilizzo della media mobile riguarda la scelta del periodo da utilizzare. Mentre la media mobile veloce può risultare più efficace in un mercato che si muove poco, una più lenta sarà preferibile in un mercato con un trend ben definito. Per ovviare a questo problema è stata creata una media mobile che, utilizzando uno studio sulla volatilità presente nel mercato, adatta la sua velocità. I calcoli su cui si basa questa media non sono di facile apprendimento e si basano su concetti avanzati di statistica e matematica. 11

B. Il secondo metodo analizzato è quello che è stato attuato nel mio progetto. In tale algoritmo il calcolo del turning point avviene attraverso la differenza dei due prezzi, il prezzo corrente e il prezzo precedente del titolo. Vengono incrementati i punti buy e sell. Quando per uno dei due si arriva a un massimo di 10 punti nello stesso trend, l ultimo viene memorizzato come un punto di svolta. Il codice è il seguente: If prezzoprec > prezzocorrente Then buy += 1 'bid Else sell += 1 'ask End If If buy >= 10 And sell = 1 Then listapicchib.add(oss_bid) Dim picco As New picco With picco.istante = istantecorrente.prezzo = prezzocorrente.tipo_picco = picco.tipopicco.buy End With listapicchi.add(picco) buy = 0 sell = 0 End If If sell >= 10 And buy = 1 Then listapicchis.add(oss_ask) Dim picco As New picco With picco.istante = istantecorrente 12

.prezzo = CDec(prezzocorrente + tick).tipo_picco = picco.tipopicco.sell End With listapicchi.add(picco) buy = 0 sell = 0 End If If buy > 1 And sell > 1 Then buy = 0 sell = 0 End If istanteprec = istantecorrente prezzoprec = prezzocorrente If listapicchi.count > 0 Then If ((prezzocorrente >= 1.01 * listapicchi.last.prezzo) Or (prezzocorrente <= 0.99 * listapicchi.last.prezzo)) Then Dim punto As New osservazione_prezzo With punto.istante = istantecorrente.prezzo = prezzocorrente End With listapicchi.last.puntochiusura = punto End If Il risultato dell algoritmo: 13

14