La parola chiave DATABASE viene utilizzata per accedere ai dati (sia storici che real time) di un determinato strumento/risoluzione. Per accedere ai dati del grafico di riferimento dell’indicatore/trading-system NON è necessario dichiarare alcun database. Tuttavia, per accedere a dati di strumenti diversi, o per accedere ai dati dello strumento di riferimento ma con risoluzione differente da quella del grafico sottostante, è necessario dichiarare un database.
Sintassi #
Database <nome database> ("<nome strumento>", "<tipo risoluzione>", <unità risoluzione>, "<tipo dato>")
Per accedere alla serie dati di uno strumento/risoluzione diversa dal quella del grafico sottostante, è necessario dichiarare un database. La dichiarazione di un database avviene utilizzando la parola chiave DATABASE e dai seguenti attributi:
Nome Database: definisce il nome univoco del database. Puoi definire come preferisci il nome del database. Lo userai all’interno dello script per accedere al database.
Nome Strumento: specifica il nome esatto dello strumento a cui vuoi accedere. Il nome è quello definito nella Tab Strumenti della finestra principale di Overcharts. Per non incorrere in errori, ti consigliamo di impostare il nome dello strumento usando la lista dei valori possibili. Se lo strumento a cui vuoi accedere è lo stesso del grafico sottostante, lascia vuoto questo campo.
Tipo Risoluzione: specifica la risoluzione della serie dati. T = Tick, C = Contract (volume bar), P = Point (range bar), S = Second, MIN = Minute, H = Hour, SES = Session, D = Day, W = Week, M = Month, Q = Quarter, Y = Year.
Unità di Risoluzione: specifica l’unità di risoluzione. Ad esempio, se Tipo Risoluzione è minuti e Unità di Risoluzione è 5 allora la risoluzione del database sarà 5 minuti.
Tipo Dato: specifica il tipo di dato: T = Trade, B = Bid, A = Ask.
I Database vanno definiti a livello di script, cioè esternamente a tutte le funzioni. Ti consigliamo di definire tutti i Database ad inizio script.
Funzione DBexp #
Una volta dichiarato un database, puoi accedere ai dati utilizzando la funzione DBEXP:
My.Data.DBEXP(<espressione>, <nome database>, [<valore per data>])
Mediante la funzione DBEXP, puoi calcolare qualsiasi espressione utilizzando i dati del database.
Gli argomenti di DBEXP sono:
<espressione>: una qualsiasi espressione
<nome database>: nome del database da utilizzare nel calcolo di <espressione>
<valore per data>: (facoltativo, default True). Se TRUE, la barra corrente nel database esterno viene determinata in base alla data/ora della barra corrente del grafico di riferimento. Se FALSE, la barra corrente nel database esterno corrisponde al numero della barra corrente del grafico di riferimento. E’ chiaro che se le due serie storiche non sono perfettamente allineate, o se hanno risoluzioni differenti, impostare a FALSE questo argomento produrrebbe risultati non corretti. Ti consigliamo di impostare sempre a TRUE questo argomento, a meno di particolari esigenze.
Utilizzo #
Esempio:
Database AppleMin5 ("Apple", "MIN", 5, "T")
'Se lo strumento è lo stesso del grafico sottostante puoi lasciare vuoto il nome strumento:
Database ThisDay1 ("", "D", 1, "T")
Function Main()
...
If ((My.Data.DBexp(Close > Open, ThisDay1) = True) Then
...
EndIf
...
Dim MyValue As Numeric = My.Data.DBexp((High + Low) / 2, AppleMin5)
...
EndFunction
Per rendere dinamica la dichiarazione del database, puoi utilizzare una Property di tipo Database anziché dichiarare il database all’interno dello script. In questo modo, imposterai di volta in volta il database nella finestra delle proprietà dell’indicatore/trading-system:
Property DB1 As Database
EndProperty
Function Main()
...
If ((My.Data.DBexp(Close > Open, DB1) = True) Then
...
EndIf
...
EndFunction