Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
 All Forums
 Help
 Aiuti, consigli, dubbi ...
 Indicatori su timeframe settimanale

Note: You must be registered in order to post a reply.

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert Email Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

   
   

T O P I C    R E V I E W
imf69 Posted - 02 November 2010 : 10:46:39
Buongiorno,

Avrei l'esigenza di utilizzare degli indicatori all'interno di un Ts (o allarme) calcolati però su base settimanale e non daily.
Ad esempio mi servirebbe ottenere il valore del MACD in un TS come se stessi osservando il grafico con la compressione settimanale.

Grazie in anticipo per l'aiuto.
Cordiali saluti
4   L A T E S T    R E P L I E S    (Newest First)
SupportoTecnico Posted - 03 November 2010 : 14:41:25
Al momento, non è possibile parametrizzare direttamente quale base dati esterna aprire.

Possiamo però risolvere la cosa in un modo meno elegante.

Se stai programmando un trading system e dalla base dati esterna ti serve solamente il valore di uno o più indicatori, allora il mio suggerimento è quello di spostare all'interno di un indicatore utente (cioè un indicatore programmato da te), l'accesso alla base dati esterna.

In pratica, costruire un indicatore di questo tipo:



Database A2A("Milano", "A2A.MI", "W")
Database ANSALDO("Milano", "STS.MI", "W")
Database ATLANTIA("Milano", "ATL.MI", "W")
Database AUTOGRILL("Milano", "AGL.MI", "W")
Database AZIMUT_HOLDING("Milano", "AZM.MI", "W")
Database BANCA_MPS("Milano", "BMPS.MI", "W")


Property Titolo as Numeric
    default (0)
EndProperty



Function Main()

dim Valore as Numeric    


    select case Titolo
    case 1 'A2A
        Valore = dbexp(macd, "A2A")
    case 2 'ANSALDO
        Valore = dbexp(macd, "ANSALDO")
    case 3 'ATLANTIA
        Valore = dbexp(macd, "ATLANTIA")
    case 4 'AUTOGRILL
        Valore = dbexp(macd, "AUTOGRILL")
    case 5 'AZIMUT_HOLDING
        Valore = dbexp(macd, "AZIMUT_HOLDING")
    case 6 'BANCA_MPS
        Valore = dbexp(macd, "BANCA_MPS")
    endselect
    
    return Valore

Endfunction





In questo modo, crei un indicatore utente che ha lo scopo di ritornare il valore del MACD di un determinato titolo calcolato su base settimanale. Quindi, all'interno del tuo Trading system per avere il valore settimanale del MACD di AUTOGRILL scriverei una cosa del tipo:

Valore = MioIndicatore(4)

Dove "MioIndicatore" è il nome che hai dato all'indicatore appena creato sopra.
Passerai il parametro 4 perchè 4 corrisponde ad AUTOGRILL nella lista all'interno dell'indicatore.


A questo punto però non abbiamo ancora reso dinamica la cosa. In pratica dobbiamo rendere dinamico il valore passato a MioIndicatore (e non passare fisso 4).

Questa cosa la possiamo risolvere utilizzando un OPTION.

Quindi nel modulo "Opzioni Comuni" del tuo tranding system devi dichiarare la tua opzione:

Option OptMACD(1, 10, 1)

Io ho messo 10, come limite superiore dei valori che può assumere l'option, ma ovviamente va settato con il numero massimo (o superiore) che hai nella lista dell'indicatore.

A questo punto puoi utilizzare la tua opzione all'interno dei vari moduli del tuo Trading system, come parametro dell'indicatore di prima:

Valore = MioIndicatore(OptMACD)


Infice, quando aggiungerai il trading system ai vari titoli, dovrai settare giustamente a seconda del titolo a cui stai allegando in trading system, il valore di OptMACD. E questo lo fai nelle proprietà del trading system all'interno del pannello di controllo.

imf69 Posted - 03 November 2010 : 09:15:11
Al supporto tecnico:
Salve,

Mi permetta innanzitutto di ringraziare per la professionalità della risposta, sia come tempestività che completezza.

Ho implementato nel codice del mio TS l'indicatore (nell'esempio il macd) su base weekly in base alle vs. indicazioni, e riesco ad ottenere quanto mi serve.

Si pone però un'altro problema che descrivo brevemente:

Lo scopo finale è quello di programmare un allarme che all'apertura dei grafici (di un dato gruppo) mi notifichi automaticamente se un titolo a matchato determinati criteri sia daily che weekly.

Nella funzione "database" noi attualmente passiamo un'argomento costante corrispondente al simbolo di un determinato titolo, ma l'esigenza sarebbe quella di avere un argomento variabile per tutti i titoli del gruppo aperto sottoposti a scansione.(ovvero come si comporta un normale allarme che nel codice non referenzia nessun titolo specifico)

E' possibile effettuare un'assegnazione dinamica del simbolo o è necessario creare tanti allarmi diversi quanti
sono i titoli contenuti in un dato gruppo ?

La ringrazio sempre in anticipo se mi può dare uno spunto per risolvere il problema.

Buona giornata.
Cordialmente
Imf69
SupportoTecnico Posted - 02 November 2010 : 14:54:55
Dimenticavo:

Se vuoi a questo punto ottenere il valore del MACD sui dati settimanali, utilizzerai sempre la funzione DbExp:

ValoreMACD = DbExp(Macd, "FTSEMIB")
SupportoTecnico Posted - 02 November 2010 : 14:51:48
Una soluzione potrebbe essere quella di utilizzare la parola chiave DATABASE.

Riporto la prima frase della pagina in cui è descritta:

Utilizzando la parola chiave Database è possibile accedere, all'interno delle varie funzioni, ai dati di un titolo specifico contenuto in un determinato gruppo di lavoro.
Questo trova la sua utilità, ad esempio, quando per validare un segnale di un trading system si vuole verificare che un determinato titolo abbia rispettato certe regole oppure quando si vuole costruire un trading system su time frame diversi.

Quindi pare proprio che faccia al caso tuo.

Per saperne di più sull'argomento questo è il link:

http://www.insider3000.com/insider/it/hol/default.asp?titleid=01100&argid=02255


In pratica, per accedere ad una base dati esterna devi:

- dichiarare un link alla base dati, specificando la compressione che desideri (Nel tuo caso settimanale quindi => W ). E questo lo fai esternamente alla funzione "Main".

- accedere alla base dati dichiarata utilizzando la funzione dbexp e il nome della base dati.

N.B. non unitilizzare la funzione "DbValue" per accedere ai dati ma sempre "DbExp", in quanto DbValue è obsoleta e lenta.


Facciamo un piccolo esempio:

Supponiamo di voler accedere alla base dati in compressione settimanale del FTSEMIB (uesta base dati si trova nel gruppo di lavoro "Milano"), e di voler poi utilizzare questi dati all'interno del trading system accedendo ai dati stessi tramite la funzione DbExp.

Scriverò quindi:



Database FTSEMIB("Milano", "FTSEMIB.MI", "W")

Function Main()
Dim Ftse_Close as Numeric
   .................
   .................
   .................
   
   Ftse_Close = DbExp(Close, "FTSEMIB")

   .................
   .................
   .................   

EndFunction


Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07