Visual Trader T.S. : Logica di base

  • Due nuove obbligazioni Societe Generale, in Euro e in Dollaro USA

    Societe Generale porta sul segmento Bond-X (EuroTLX) di Borsa Italiana due obbligazioni, una in EUR e una in USD, a tasso fisso decrescente con durata massima di 15 anni e possibilità di rimborso anticipato annuale a discrezione dell’Emittente.

    Per continuare a leggere visita questo LINK
Re: Re: terra terra......

molte grazie!
ciao

Stefano


Scritto da fulminato77
Ci Provo:

1 - c'è un errore nel TS:
---------------------------

EnterLong(NextBar, Open); // errata

EnterLong(NextBar, AtOpen); // Giusta

Altrimenti cercherebbe di comprarti domani al valore dell'apertura di oggi. (Open).

---------------------------

2 - Puoi anche scriverla utilizzando la funzione "IsWhite":

If IsWhite = true Then
.........


Ciao
 
Ultima modifica:
preseguendo terra terra....

...determinate le condizioni di ingresso, entro all'apertura del giorno dopo.

Voglio uscire quando ho realizzato almeno il x% rispetto all'apertura, oppure in chiusura.

Come posso tradurre in formule le pseudocodifiche tra parentesi quadre?



SECTION_EXITLONG:
If [Max del giorno dopo > aperturadel giorno dopo + x%] ;
ExitLong ( [apertura del giorno dopo+x%] );
Else;
ExitLong(Bar, AtClose);
Endif;
END_SECTION
 
ancora una domanda

... e scusatene la banalità, ma sono proprio all'inizio....

questo è il risulatato di un TS di prova che, al verificarsi di certe condizioni, entra in apertura e esce in chiusura del giorno successivo.

A me pare di riconoscere - nella colonna "%Net" - 10 operazioni positive e 4 negative.

Due domande:

1) la colonna successiva ("%Tot") mi apstterei che fosse la sommatoria dei singoli risulati del netto, ma non è così: che cosa rappresenta?

2) prox post

Stefano
 

Allegati

  • operazio.gif
    49,1 KB · Visite: 247
Ultima modifica:
Domanda 2

nella finestra "Report" dei risultati, la situazione sembra opposta:

le operazioni positive sono 4, e le negative 10!

Mi sta sfuggendo qualcosa di essenziale, suppongo .....:confused: :confused: :confused:

Grazie a chi potrà illuminarmi.

Stefano
 

Allegati

  • report.gif
    29,8 KB · Visite: 247
Re: Domanda 2

Scritto da stevesteve
nella finestra "Report" dei risultati, la situazione sembra opposta:

le operazioni positive sono 4, e le negative 10!

Mi sta sfuggendo qualcosa di essenziale, suppongo .....:confused: :confused: :confused:

Grazie a chi potrà illuminarmi.

Stefano

.. a me sembra un bug del programma.
Nell'elenco movimenti si vedono in effetti 4 positive, se guardi la colonna "%tot", che dovrebbe essere comprensiva delle commissioni. Sembra che nella finestra report i numerini positive/negative vengano fatte sulle operazioni COMPRESE di commissioni, e non al netto, come dice la finestra...

ciao
 
Re: Input

Scritto da fulminato77
Anziche dichiararle con "Var", utilizza "Input".

Esempio:

Anziche:
-----------
Var: m1,m2, parmedia1(7), parmedia2(14);

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

Con l'Input:
----------------
Input: parmedia1(7);
Var: m1,m2, parmedia2(14);

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


In questo modo ti chiede il valore ogni volta che lo riesegui (premi 'M') con la tastiera, oppure scorri una graduatoria (è più veloce).

Ciao

... grazie! in effetti bastava leggere il manuale...
 
Re: Domanda 2

Scritto da stevesteve
nella finestra "Report" dei risultati, la situazione sembra opposta:

le operazioni positive sono 4, e le negative 10!

Mi sta sfuggendo qualcosa di essenziale, suppongo .....:confused: :confused: :confused:

Grazie a chi potrà illuminarmi.

Stefano
E' vero, il report delle posizioni positive / negative etc. tiene conto delle commissioni, cosa che non dovrebbe fare.
Stiamo modificando il report in modo che sia presente nelle due "versioni": al netto ed al lordo delle commissioni.

cordialita'
Mauro Pratelli
TraderLink
 
Re: preseguendo terra terra....

Scritto da stevesteve
...determinate le condizioni di ingresso, entro all'apertura del giorno dopo.

Voglio uscire quando ho realizzato almeno il x% rispetto all'apertura, oppure in chiusura.

Come posso tradurre in formule le pseudocodifiche tra parentesi quadre?

SECTION_EXITLONG:
If [Max del giorno dopo > aperturadel giorno dopo + x%] ;
ExitLong ( [apertura del giorno dopo+x%] );
Else;
ExitLong(Bar, AtClose);
Endif;
END_SECTION

Se non ho capito male, tutto il TS lavora con barre ad un giorno, e' giusto ?
Se e' cosi' allora il tutto potrebbe essere codificato in questo modo:

percentuale_desiderata = 3; // Diciamo che vogliamo il 3%
valore_desiderato = AddPerc(O, percentuale_desiderata);

if H > valore_desiderato then
ExitLong(Bar, valore_desiderato); // NON ho provato questa sintassi...
else
ExitLong(Bar,AtClose);
Endif:

ATTENZIONE: non ho provato questo codice, va eventualmente sistemato.
Ma tutto questo non convince.

L'utilizzo di operazioni "Bar" dovrebbe essere evitato, usando sempre "NextBar". Si veda in proposito il mio messaggio "Attenzione a BAR" in questo stesso thread, al link

http://www.finanzaonline.com/forum/showthread.php?threadid=457935&perpage=15&pagenumber=2

Di fatto come si potrebbe VERAMENTE seguire il TS scritto in questo modo ? Le barre giornaliere si completano solo alla sera, ed il TS girerebbe "a bocce ferme", quindi non otterremmo mai la segnalazione del raggiungimento del target nel momento giusto. Sapremmo solo dopo che avremmo dovuto vendere a x% oppure in chiusura. Peccato che alle 6 di sera non lo potremmo piu' fare.

Questo se ho capito bene la domanda, altrimenti se mi aiuta a capire meglio.
Cosi' come lo vedo questo TS puo' funzionare bene in Intraday, se vuole posso postarLe un esempio.

cordialita'
Mauro Pratelli
TraderLink
Rimini
 
Re: Re: preseguendo terra terra....

Scritto da mauro.pratelli
Se non ho capito male, tutto il TS lavora con barre ad un giorno, e' giusto ?
Se e' cosi' allora il tutto potrebbe essere codificato in questo modo:

percentuale_desiderata = 3; // Diciamo che vogliamo il 3%
valore_desiderato = AddPerc(O, percentuale_desiderata);

if H > valore_desiderato then
ExitLong(Bar, valore_desiderato); // NON ho provato questa sintassi...
else
ExitLong(Bar,AtClose);
Endif:

ATTENZIONE: non ho provato questo codice, va eventualmente sistemato.
Ma tutto questo non convince.

L'utilizzo di operazioni "Bar" dovrebbe essere evitato, usando sempre "NextBar". Si veda in proposito il mio messaggio "Attenzione a BAR" in questo stesso thread, al link

http://www.finanzaonline.com/forum/showthread.php?threadid=457935&perpage=15&pagenumber=2

Di fatto come si potrebbe VERAMENTE seguire il TS scritto in questo modo ? Le barre giornaliere si completano solo alla sera, ed il TS girerebbe "a bocce ferme", quindi non otterremmo mai la segnalazione del raggiungimento del target nel momento giusto. Sapremmo solo dopo che avremmo dovuto vendere a x% oppure in chiusura. Peccato che alle 6 di sera non lo potremmo piu' fare.

Questo se ho capito bene la domanda, altrimenti se mi aiuta a capire meglio.
Cosi' come lo vedo questo TS puo' funzionare bene in Intraday, se vuole posso postarLe un esempio.

cordialita'
Mauro Pratelli
TraderLink
Rimini

Prima di tutto grazie per le risposte. A prima vista la logica corrisponde alle mie intenzioni. Proverò poi in concreto il codice che proponi (possiamo darci del tu? ;) ).

Il limite che dici sarebbe che non potrei avere la segnalazione di ingresso "mentre" il prezzo raggiunge il target?

In effetti non avevo questa intenzione, ma solo di provare la bontà di alcune condizioni di ingresso in apertura.

In questo senso mi pare che, una volta che il TS individui che l'ultima barra (ad un giorno) soddisfa le condizioni date, posso tranquillamente (con Directa) inserire un ordine di acquisto in apertura, e subito dopo (dopo l'apertura) un ordine di vendita al prezzo di acquisto+x% e un ordine di vendita di "tutte" le azioni al meglio in chiusura: quest'ultimo ordine sarebbe eseguito soltanto se non fosse stato eseguito il primo.

Stefano
 
Re: Re: Re: preseguendo terra terra....

Scritto da stevesteve
Prima di tutto grazie per le risposte. A prima vista la logica corrisponde alle mie intenzioni. Proverò poi in concreto il codice che proponi (possiamo darci del tu? ;) ).

Il limite che dici sarebbe che non potrei avere la segnalazione di ingresso "mentre" il prezzo raggiunge il target?

In effetti non avevo questa intenzione, ma solo di provare la bontà di alcune condizioni di ingresso in apertura.

In questo senso mi pare che, una volta che il TS individui che l'ultima barra (ad un giorno) soddisfa le condizioni date, posso tranquillamente (con Directa) inserire un ordine di acquisto in apertura, e subito dopo (dopo l'apertura) un ordine di vendita al prezzo di acquisto+x% e un ordine di vendita di "tutte" le azioni al meglio in chiusura: quest'ultimo ordine sarebbe eseguito soltanto se non fosse stato eseguito il primo.

Stefano
... volentieri diamoci del tu!
In effetti l'operativita' con Directa ti permette di seguire poi il TS ugualmente, anche se in modo non molto "espandibile".

Ad esempio, un domani potresti voler aggiungere la clausola "se ho superato x% perche' limitarmi ? seguiamo il rialzo, ci fermiamo se il titolo ritraccia poi di y%" o cose del genere.

Quindi: per ora va tutto bene, se poi vorrai veramente implementare il ts in realtime, facendo seguire il mercato, la strada sara' (circa) questa:

1) il TS lo fai girare sul realtime (diciamo con barre a 1 minuto)
2) con le funzioni "GetValues" "virtualizzi" il titolo, in modo da fare i calcoli su barre che sembrino "EndOfDay"
3) Le decisioni di trading le fai in tempo reale per quanto riguarda la chiusura della posizione in gain
4) Operi in apertura ed in chiusura usando le funzioni di controllo sugli orari, in modo da "sapere" che sei in apertura (o quasi...) o in chiusura (o quasi...)

Ovviamente questi "quasi" possono poi rendere il TS inutilizzabile, magari scopri che il primo dato di apertura e' cosi' diverso da quello che riesci a prendere tu 1 minuto dopo che tutto il castello crolla......

E' un mondo difficile....

Ciao
Mauro Pratelli
TraderLink
Rimini
 
Ho dei problemi con la Funzione GETVALUES

Nel manuale è indicata questa definizione:
________________________________________________
“””””
GetValues (tipo, numperiodi, open, min, max, close):boolean
Descrizione
Ritorna i valori di apertura, minimo, massimo, chiusura, del periodo selezionato.

Esempio2
GetValues(, 1, mioopen, miomin, miomax, mioclose);
// Plotto il minimo a 5 giorni
PlotChart(miomin, 0, green, solid, 2);

// Plotto il massimo a 5 giorni
PlotChart(miomax, 0, blue, solid, 2); “””””
________________________________________________

In questo esempio, se non ho interpretato male, 1 rappresenta “numperiodi” quindi l’indicatore dovrebbe plottare il minimo ed il massimo di 1 periodo prima e non quello di 5 periodi prima (giorni ?), inoltre vedo che non è definito il “ tipo”.
Potreste cortesemente fare un esempio concreto di applicazione di questa funzione sia per l’EOD che per l’intraday.

Grazie
 
Re: Re: Re: Re: preseguendo terra terra....

Scritto da mauro.pratelli
... volentieri diamoci del tu!
In effetti l'operativita' con Directa ti permette di seguire poi il TS ugualmente, anche se in modo non molto "espandibile".

Ad esempio, un domani potresti voler aggiungere la clausola "se ho superato x% perche' limitarmi ? seguiamo il rialzo, ci fermiamo se il titolo ritraccia poi di y%" o cose del genere.

Quindi: per ora va tutto bene, se poi vorrai veramente implementare il ts in realtime, facendo seguire il mercato, la strada sara' (circa) questa:

1) il TS lo fai girare sul realtime (diciamo con barre a 1 minuto)
2) con le funzioni "GetValues" "virtualizzi" il titolo, in modo da fare i calcoli su barre che sembrino "EndOfDay"
3) Le decisioni di trading le fai in tempo reale per quanto riguarda la chiusura della posizione in gain
4) Operi in apertura ed in chiusura usando le funzioni di controllo sugli orari, in modo da "sapere" che sei in apertura (o quasi...) o in chiusura (o quasi...)

Ovviamente questi "quasi" possono poi rendere il TS inutilizzabile, magari scopri che il primo dato di apertura e' cosi' diverso da quello che riesci a prendere tu 1 minuto dopo che tutto il castello crolla......

E' un mondo difficile....

Ciao
Mauro Pratelli
TraderLink
Rimini

bene, grazie alle tue indicazioni sono riuscito a costruire un primo, rudimentale, TS, che per ora lavora soltanto sull'EoD.

I risultati non sono esaltanti ma, ad un primo sguardo, non dovrebbero mandare in rovina: almeno non troppo rapidamente :D

Lo trascrivo, magari qualcuno potrebbe essere interessato:
******************************************************************************
Trading System Pattern Breakout di volatilità)
CONDIZIONI DI INGRESSO:

A = La volatilità è maggiore di almeno il 10% rispetto alla media degli ultimi 5 giorni.
NON SONO PER NIENTE SICURO DELLA CORRETTEZZA DI QUESTA PARTE DELLA FORMULA, CHE HO COPIATO DA METASTOCK:
DAL MANUALE:
ATR(DataArray, Periods): float
ATR calcola l'Average True Range del periodo passato (Periods).
Esempio Var: mioatr(0); mioatr = ATR(C, 10);
------------------
Volatility (DataArray): float
Volatility calcola la Volatilità dello specificato DataArray.
Esempio Var: mioosc (0); mioosc = Volatility (C);
FINE MANUALE

B = MAX > ultimi 21 giorni

C = Volume > del 50% media ultimi 50 gg

D = Chiusura maggiore dell'apertura

E = Differenza tra Massimo e Apertura è almeno il doppio della differenza tra Apertura e minimo
Insomma: ha chiuso nella parte alta della barra (forse si può dire in modo più semplice)
************************************************

Acquisto in apertura sulla barra successiva al pattern
*******************************************************************************}
Var: Condizioni(0), Perc_guadagno(0), Valore_uscita(0), Perc_perdita(0), Valore_SL(0);

// Condizioni A+B+C+D+E vedi sopra
Condizioni = ATR(c,5) > Mov(ATR(c,5),10,E)*1.1 and H = HHV(H,21) and VOLUME > Mov(VOLUME,50,E)*1.5 and C>=O+O*3/100 AND (C-O)/2 > (H-C);

Perc_guadagno = 3;

Valore_uscita = AddPerc(O, Perc_guadagno);

Perc_perdita = 1;

Valore_SL = AddPerc(O, -Perc_perdita);

SECTION_ENTERLONG:
// dal 1 gennaio 2003 in poi
If RangeDate(20030101, 21001231) Then
If Condizioni = true Then
// come si fa ad aggiungere la condizione che l'apertura sia > chiusura giorno precedente?:

EnterLong(NextBar, AtOpen); // Compro in apertura al verificarsi del pattern
Endif;
Endif;
END_SECTION

SECTION_EXITLONG:
// Prima verifica se il prezzo è andato sotto dell'1% dall'apertura: in tal caso vale come SL.
// Qui è stato necessario scegliere se testare prima il valore di SL o quello di target,
// dato che la barra giornaliera non ci "dice" in quale ordine i prezzi si sono mossi.
// La scelta di testare prima i minimi è la più prudente, perchè in questo modo,
// nella realtà, i risultati potrebbero essere stati solo migliori.
If L < Valore_SL Then
ExitLong(Bar, Valore_SL);
//qui (e nelle righe successive) è rilevante "Bar" o "nextbar"?:
Endif;

// Solo se il prezzo non è andato < 1% rispetto all'apertura/acquisto, verifica se è > 3%
// In tal caso vende per target raggiunto. Altrimenti vende in chiusura comunque
If H > Valore_uscita Then
ExitLong(Bar, Valore_uscita);
Else
ExitLong(Bar,AtClose);
Endif;

// Sempre se il prezzo non è andato < 1% rispetto all'apertura/acquisto, sarebbe interessante
// verificare, per esempio, se la vendita in chiusura sia migliore del raggiungimento del 3%. Ma come si fa a fare il confronto?
// If L < Valore_SL Then
// ExitLong(Bar, Valore_SL);
// Else
// ExitLong(Bar,AtClose);
// Endif;
END_SECTION
**************************************************

Se qualcuno può darmi un suggerimento sulla parti scritte in rosso mi sarebbe di aiuto.

Il tema che volevo sollevare è un altro: quando lo vado a provare, a meno che non mi sia sfuggito qualcosa di essenziale, devo aprire il grafico del singolo titolo, spingere "M" per applicarlo, poi "shift+M" per vedere i risultati, e così via per ogni titolo.

E' un bel po' laborioso, e se cambio anche un solo parametro e voglio fare il confronto mi tocca rifare tutta la procedura, segnarmi da qualche parte i risultati.......

Come si può fare per applicare il TS contemporaneamente a un gruppo di titoli? E a registrare i risultati in modo da poterli confrontare?

I dati ci sono tutti .......... ;) ;) c'è "solo" da gestirli :clap:

buona notte

Stefano
 
Ultima modifica:
Scritto da stevesteve


Var: Condizioni(0), Perc_guadagno(0), Valore_uscita(0), Perc_perdita(0), Valore_SL(0);
________________________________________________

la variabile Condizioni(0) deve essere sostituita da Condizioni(false)
_________________________________________________
Scritto da stevesteve [/i]

// come si fa ad aggiungere la condizione che l'apertura sia > chiusura giorno precedente?:
_________________________________________________

O > C[1]
_________________________________________________
Scritto da stevesteve [/i]

ExitLong(Bar, Valore_SL);
//qui (e nelle righe successive) è rilevante "Bar" o "nextbar"?:
_________________________________________________

La perdita dell'1% potrebbe realizzarsi già sulla barra di entrata per cui ExitLong(Bar, Valore_SL); andrebbe messo già nella SECTION_ENTERLONG:
mentre ExitLong(NexBar, Valore_SL); andrebbe messo nella SECTION_EXITLONG:
Comunque di questo chiedo conferma anch'io a Pratelli.
__________________________________________________
Scritto da stevesteve [/i]

// Sempre se il prezzo non è andato < 1% rispetto all'apertura/acquisto, sarebbe interessante
// verificare, per esempio, se la vendita in chiusura sia migliore del raggiungimento del 3%. Ma come si fa a fare il confronto?
__________________________________________________

Si potrebbe inserire un Input (es: Exit(0) a cui dare valore 0 oppure 1 per cui nella SECTION_EXITLONG: si possono inserire due condizioni
if Exit = 0 then ................le condizioni attuali altrimenti
if Exit = 1 then Exitlong(Bar,Atclose);

__________________________________________________
Scritto da stevesteve [/i]

Il tema che volevo sollevare è un altro: quando lo vado a provare, a meno che non mi sia sfuggito qualcosa di essenziale, devo aprire il grafico del singolo titolo, spingere "M" per applicarlo, poi "shift+M" per vedere i risultati, e così via per ogni titolo.

E' un bel po' laborioso, e se cambio anche un solo parametro e voglio fare il confronto mi tocca rifare tutta la procedura, segnarmi da qualche parte i risultati.......

Come si può fare per applicare il TS contemporaneamente a un gruppo di titoli? E a registrare i risultati in modo da poterli confrontare?

I dati ci sono tutti .......... ;) ;) c'è "solo" da gestirli :clap:
___________________________________________________

Mi associo alle tua richiesta
 
Scritto da Biagi
Ho dei problemi con la Funzione GETVALUES
................

Credo che la funzione non sia descritta affatto bene, nel manuale, (oltre ad alcuni evidenti errori) ora la stanno riscrivendo.

La funzione GetValues serve per "Virtualizzare" il titolo su cui e' applicato il TS, in modo da "vederlo" anche con una compressione temporale diversa.

Ad esempio:
1) Trading System che opera in IntraDay ma che vuole fare anche calcoli sul titolo trattandolo come se fosse EndOfDay (una barra unica per ogni giorno)
2) TS che opera EndOfDay (una barra al giorno) ma che fa anche calcoli sul titolo come se ogni barra contenesse cinque giorni di borsa
3) etc. etc.

La sintassi e':

ggcambiato = GetValues (tipo, numperiodi, mioopen, miomin, miomax, mioclose);

Del valore di ritorno della funzione ("ggcambiato") ne parliamo dopo... Da notare invece che le variabili mioopen etc. sono definite da Voi, quindi hanno il nome che Voi scegliete, e vengono "riempite" direttamente dalla funzione GetValues.

GetValues serve infatti per ottenere open - min - max - close del titolo, dopo averne cambiato virtualmente la compressione.

Se scriviamo, ad esempio:
ggcambiato = GetValues (days, 5, mioopen, miomin, miomax, mioclose);

otteniamo che nelle Vostre variabile "mioopen", "miomin", etc. etc. ci finiscono i dati dell'ultima barra del titolo (open - min - max -close") ma come se il titolo fosse stato messo a compressione 5 giorni. Cioe' in ogni barra il valore di apertura e' l'open del primo giorno, il valore di chiusura e' il close del quinto giorno, il max ed il min sono i massimi ed i minimi riscontrati nei cinque giorni.

Ecco un sorgente di esempio:
-----------------------------------------
Var: mioopen, miomax, miomin, mioclose,
ggcambiato(false);

// Estrai i valori di 5 giorno fa.
ggcambiato = GetValues(days, 5, mioopen, miomin, miomax, mioclose);

// Visualizza i valori sul grafico
PlotChart(miomin, 0, red, solid,2);
PlotChart(miomax, 0, green, solid,2);

Altro esempio: se ho scritto un TS che lavora in RealTime, ma fa conti anche sulle barre EndOfDay del titolo (una barra per un intero giorno) potrei scrivere

ggcambiato = GetValues(days, 1, mioopen, miomin, miomax, mioclose);

cioe', sono in realtime, magari ogni barra corrisponde a 1 minuti, ma nelle mie variabili ora voglio sapere open - min - max - close globali di ieri.


Esaminiamo il valore di ritorno della funzione GetValues.
Il manuale dice
"La funzione ritorna True quando i valori vengono aggiornati."
Riprendiamo l'esempio del TS realtime: se attivo il ts e non ho neanche un giorno di storico realtime, la funzione deve tornare sempre "false", in quanto non riesce a comprimere virtualmente il titolo ad un giorno (NON ho infatti ancora un giorno di dati). Se lasciassi sempre attivo il TS vedremmo che all'arrivo delle quotazioni del giorno dopo, per una sola volta, il ritorno della funzione diventa "True", poiche' il sistema ha un nuovo giorno da accorpare e le variabili vengono valorizzate.

Un esempio: se opero in realtime e voglio calcolare i livelli di Pivot del giorno precedente (che poi restano buoni per tutto il giorno...) la sintassi e' circa:

// Estrai i valori di 1 giorno fa. (Cioe' mette il titolo a barre di 1 giorno)
ggcambiato = GetValues (days, 5, mioopen, miomin, miomax, mioclose);

  if ggcambiato then
   // calcola i livelli Pivot
   punto_medio = (miomax + miomin + mioclose) / 3;
   resistenza = (PivPnt * 2) - miomin;
   supporto = (PivPnt * 2) - miomax;
  endif;

cioe' il ricalcolo dei livelli di pivot viene fatto solo quando il "giorno e' cambiato", cioe' si e' creata una nuova barra giornaliera e possiamo calcolare i livelli che resteranno validi per tutto il giorno (visto che lavoriamo in realtime).


Non so se mi sono spiegato bene, cosi' via web non mi e' facile: sono comunque a disposizione per ogni altro chiarimento..

cordialita'
Mauro Pratelli
TraderLink
Rimini
 
Re: Re: Re: Re: Re: preseguendo terra terra....

Scritto da stevesteve


.....
Il tema che volevo sollevare è un altro: quando lo vado a provare, a meno che non mi sia sfuggito qualcosa di essenziale, devo aprire il grafico del singolo titolo, spingere "M" per applicarlo, poi "shift+M" per vedere i risultati, e così via per ogni titolo.

E' un bel po' laborioso, e se cambio anche un solo parametro e voglio fare il confronto mi tocca rifare tutta la procedura, segnarmi da qualche parte i risultati.......

Come si può fare per applicare il TS contemporaneamente a un gruppo di titoli? E a registrare i risultati in modo da poterli confrontare?

I dati ci sono tutti .......... ;) ;) c'è "solo" da gestirli :clap:

buona notte

Stefano

Sono funzionalita' su cui stiamo gia' lavorando, anzi abbiamo gia' alcuni moduli in test interno. Per ora e' possibile passare da un titolo all'altro in questo modo:

1) Con VT EndOFDay: dato che siete sempre all'interno di una graduatoria, aprite un tabellone ordinato a piacere (ad esempio "Strane quantita' scambiate") aprite il grafico, applicate il ts.
A quel punto usate le freccine SINISTRA - DESTRA (che trovate sia sul grafico stesso in basso a dx che sulla toolbar principale di sinistra) per andare avanti / indietro nella lista dei titoli che avete gia' scelto, il titolo si aggiorna sul grafico, il ts e' attivo e si ricalcola da solo.

2) Con VT RealTime: aprite un grafico dal tabellone, applicate il TS. Poi con il drag & drop dal tabellone portate di volta in volta sul grafico aperto un nuovo titolo.

3) Sui grafici: in ogni caso se applicate un TS su un grafico e poi salvate il modello ottenete che ogni volta che applicate il modello viene calcolato anche il TS

Pero' questo non vale per le analisi "numeriche", che per ora si fanno solo "a mano". Un primo modulo di calcolo interno lo abbiamo gia', quando si stabilizza un poco lo rilasciamo in beta test.

cordialita'
Mauro Pratelli
TraderLink
Rimini
 
Tutto chiarissimo fino a questo punto:

Scritto da mauro.pratelli
[
................................
Un esempio: se opero in realtime e voglio calcolare i livelli di Pivot del giorno precedente (che poi restano buoni per tutto il giorno...) la sintassi e' circa:

// Estrai i valori di 1 giorno fa. (Cioe' mette il titolo a barre di 1 giorno)
ggcambiato = GetValues (days, 5, mioopen, miomin, miomax, mioclose);

  if ggcambiato then
   // calcola i livelli Pivot
   punto_medio = (miomax + miomin + mioclose) / 3;
   resistenza = (PivPnt * 2) - miomin;
   supporto = (PivPnt * 2) - miomax;
  endif;

cioe' il ricalcolo dei livelli di pivot viene fatto solo quando il "giorno e' cambiato", cioe' si e' creata una nuova barra giornaliera e possiamo calcolare i livelli che resteranno validi per tutto il giorno (visto che lavoriamo in realtime).
________________________________________________

Io metto 1 e non 5 se voglio i pivot riferiti alla barra del giorno prima ed invece lascio 5 se voglio calcolare i pivot riferiti alle 5 giornate precedenti il giornocambiato.
E' giusto ?
 
Scritto da Biagi

...........
// Estrai i valori di 1 giorno fa. (Cioe' mette il titolo a barre di 1 giorno)
ggcambiato = GetValues (days, 5, mioopen, miomin, miomax, mioclose);

  if ggcambiato then
   // calcola i livelli Pivot
   punto_medio = (miomax + miomin + mioclose) / 3;
   resistenza = (PivPnt * 2) - miomin;
   supporto = (PivPnt * 2) - miomax;
  endif;

cioe' il ricalcolo dei livelli di pivot viene fatto solo quando il "giorno e' cambiato", cioe' si e' creata una nuova barra giornaliera e possiamo calcolare i livelli che resteranno validi per tutto il giorno (visto che lavoriamo in realtime).
________________________________________________

Io metto 1 e non 5 se voglio i pivot riferiti alla barra del giorno prima ed invece lascio 5 se voglio calcolare i pivot riferiti alle 5 giornate precedenti il giornocambiato.
E' giusto ?

E' giusto. L'errore piu' frequente e' credere di riferirsi a "5 giorni fa", invece che all'ultima barra, che somma i valori dei 5 giorni precedenti.

cordialita'
Mauro Pratelli
TraderLink
Rimini
 
Su un listato che avevo inserito qualche giorno fa su questo forum era riportato:

Var: PAT25(false),Day1(False),Day2(false),Op1(O),C1(C),H1(H),L1(L),
Op2(O),C2(C),H2(H),L2(L),Ap(O),TG(0),Targhet(0),Ntrade(0),NB(0);

if IsFirstBarDay then
Ap = Open[0]; // Apertura odierna
Day1 = GetValues(days,1,Op1,L1,H1,C1);
Day2 = GetValues(days,2,Op2,L2,H2,C2);
TG = (H2-L2); // Targhet pari all'altezza della barra di 2 giorni prima
Ntrade =0; //Serve a limitare il numero di entrate
NB = 0; //Conterà il numero di barre dall'entrata
if Day1 = true and Day2 = true then
Pat25 = ((H1 > H2) and (C1 > C2) and ((H1 -L1) > (H2 - L2) and (AP < C1))); //Pattern
endif; “

Ora se ho ben capito:
Day1 = GetValues(days,1,Op1,L1,H1,C1); era una condizione che il TS verificava
correttamente per quello che mi serviva (darmi massimo, minimo, apertura e chiusura del giorno prima) mentre
Day2 = GetValues(days,2,Op2,L2,H2,C2); non poteva darmi I valori che io volevo( Massimo e Chiusura di 2 giorni prima) in quanto questa funzione mi andava a prendere il Massimo dei due giorni precedenti e la chiusura di ieri.
Ne consegue che, ad esempio, la condizione C1 > C2 non fosse mai verificata in quanto risultava sempre che C1 era uguale a C2.

Se questa interpretazione è corretta credo che sia utile introdurre altre 4 funzioni che potremmo definire:
HighDaily[x], LowDaily[x], OpenDaily[x], CloseDaily[x] in modo da potersi riferire con precisione ad un massimo o minimo di X giorni prima anche se ci troviamo in ambito realtime.

grazie per la disponibilità
 
Scritto da Biagi

................
Ora se ho ben capito:
Day1 = GetValues(days,1,Op1,L1,H1,C1); era una condizione che il TS verificava
correttamente per quello che mi serviva (darmi massimo, minimo, apertura e chiusura del giorno prima) mentre
Day2 = GetValues(days,2,Op2,L2,H2,C2); non poteva darmi I valori che io volevo( Massimo e Chiusura di 2 giorni prima) in quanto questa funzione mi andava a prendere il Massimo dei due giorni precedenti e la chiusura di ieri.
Ne consegue che, ad esempio, la condizione C1 > C2 non fosse mai verificata in quanto risultava sempre che C1 era uguale a C2.

Se questa interpretazione è corretta credo che sia utile introdurre altre 4 funzioni che potremmo definire:
HighDaily[x], LowDaily[x], OpenDaily[x], CloseDaily[x] in modo da potersi riferire con precisione ad un massimo o minimo di X giorni prima anche se ci troviamo in ambito realtime.

grazie per la disponibilità

E' giusto, C1 e' uguale a C2 perche' rappresentano comunque la chiusura dell'ultima barra disponibile, sia che il titolo venga "visto" a barre di un giorno che a barre di due giorni. In ogni caso l'ultimo valore di chiusura e' lo stesso.

Questa situazione si risolvera' con un modo piu' flessibile, rispetto a quello (correttissimo) che propone.

Infatti l'accesso con GetValues ai valori virtualizzati del titolo presenta una serie di altre problematiche non risolvibili semplicemente. Ci vorra' del tempo, ma la soluzione sara' qualcosa tipo:

var: altrotitolo(0);

altrotitolo= InstallTicker("FIB", Day, 2);

Oppure

altrotitolo= InstallTicker(MySelf, Day, 2);

if altrotitolo.C > altrotitolo.C[1] then ....

Attenzione: non e' la sintassi definitiva, e' solo per dare una idea.
Il concetto e' quello di poter "installare" un altro "titolo", che di solito sara' lo stesso titolo su cui gira il TS ma gia' virtualizzato a 'n' giorni, minuti, etc.

Il secondo (terzo ? quarto ?) titolo sara' a questo punto gestibile con TUTTE le normali funzioni, oscillatori, confronti del titolo "base", quello su cui state applicando il TS.

Inoltre il titolo aggiuntivo puo' anche essere totalmente diverso, il che aprirebbe la strada verso TS molto sofisticati, permettendo ad esempio di agire su un titolo mentre si analizza un indice, o su un derivato comparandolo con il sottostante, etc. etc.

Non e' una cosa in arrivo in tempi brevi, ma la riteniamo molto importante.

cordialita'
Mauro Pratelli
TraderLink
 
Indietro