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
  • SONDAGGIO: Potrebbe interessarti una sezione "Trading Sportivo"?

    Ciao, ci piacerebbe sapere se potrebbe interessarti l'apetura di una nuova sezione dedicata unicamente al trading sportivo o betting exchange. Il tuo voto è importante perchè ci consente di capire se vale la pena pianificarla o no. Per favore esprimi il tuo voto, o No, nel seguente sondaggio: LINK.
    Puoi chiudere questo avviso premendo la X in alto a destra.

    Staff | FinanzaOnline

grazie Biagi, in rosso le mie risposte.
Stefano


Scritto da Biagi
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)
] Sembra funzionare correttamente anche con (0)

_________________________________________________
Scritto da stevesteve [/i]

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

O > C[1]

Ho provato ma non funziona. In effetti, credo di essermi spiegato in modo insufficiente. Intendevo che "domani" (e cioè quando il sistema entrerà in acquisto in apertura, avendo verificato le condizioni di base) sia soddisfatta un'ulteriore considizione, e cioè che l'apertura sia > chiusura "oggi"

_________________________________________________
[/QUOTE

e grazie a Mario per le esaurienti altre spiegazioni.;)
 
dimenticavo.....

Condizione da verificare:

"La volatilità è maggiore di almeno il 10% rispetto alla media degli ultimi 5 giorni."

Il manuale dice solo questo:
------------------
Volatility (DataArray): float
Volatility calcola la Volatilità dello specificato DataArray.
Esempio Var: mioosc (0); mioosc = Volatility (C);
FINE MANUALE

Stefano
 
Scritto da stevesteve
........

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

O > C[1]

Ho provato ma non funziona. In effetti, credo di essermi spiegato in modo insufficiente. Intendevo che "domani" (e cioè quando il sistema entrerà in acquisto in apertura, avendo verificato le condizioni di base) sia soddisfatta un'ulteriore considizione, e cioè che l'apertura sia > chiusura "oggi"

_________________________________________________
Non credo che si possa fare, con questa versione dell'interprete.
Non e' una cosa complessa, e' solo una delle (tante...) cose da fare.

Se ho capito bene servirebbe una sintassi del tipo:

EnterLong(NextBar, C , Limite)

in cui C e' ovviamente la chiusura di oggi, e il token aggiunto dice al ts di acquistare solo se viene superato il limite di valore indicato (in questo caso se domani si sale oltre il valore del close di oggi).

Veramente non e' proprio quello che era stato chiesto (apertura domani maggiore del close di oggi)....

Oggi sono un po' a corto di programmatori TS, lunedi' vedo di riprendere il discorso, magari a qualcuno di noi viene in mente una idea migliore....

Nel frattempo sarebbe interessante ricevere da voi suggerimenti su come implementare questa sintassi...

cordialita'
Mauro Pratelli
 
Re: dimenticavo.....

Scritto da stevesteve
Condizione da verificare:

"La volatilità è maggiore di almeno il 10% rispetto alla media degli ultimi 5 giorni."

Il manuale dice solo questo:
------------------
Volatility (DataArray): float
Volatility calcola la Volatilità dello specificato DataArray.
Esempio Var: mioosc (0); mioosc = Volatility (C);
FINE MANUALE

Stefano
Scusa, non ho capito la domanda.
Nell'esempio che hai postato questa cosa non era gia' stata codificata con

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);

ciao
Mauro Pratelli
TraderLink
 
Re: Re: dimenticavo.....

quote:
--------------------------------------------------------------------------------
Scritto da stevesteve
Condizione da verificare:

"La volatilità è maggiore di almeno il 10% rispetto alla media degli ultimi 5 giorni."

Il manuale dice solo questo:
------------------
Volatility (DataArray): float
Volatility calcola la Volatilità dello specificato DataArray.
Esempio Var: mioosc (0); mioosc = Volatility (C);
FINE MANUALE


Scritto da mauro.pratelli
Scusa, non ho capito la domanda.
Nell'esempio che hai postato questa cosa non era gia' stata codificata con

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);

ciao
Mauro Pratelli
TraderLink

è vero, dovrebbe essere questa parte

ATR(c,5) > Mov(ATR(c,5),10,E)*1.1

che, a differenza delle altre che ho scritto o che comunque "capisco" in ogni termine, mi sono copiato da Metastock e che forse funziona ma io non capisco come.
Quando poi ho visto che in VT esiste una apposita funzione "Volatility", ho pensato che ci fosse un modo più semplice; senonchè dal manuale non capisco come "Volatility" si potrebbe usare.

Qualcuno ha qualche esempio?

Bunonanotte

Stefano
 
Re: Re: Re: dimenticavo.....

Scritto da stevesteve

--------------------------------------------------------------------------------
Scritto da stevesteve
Condizione da verificare:

"La volatilità è maggiore di almeno il 10% rispetto alla media degli ultimi 5 giorni."

Il manuale dice solo questo:
------------------
Volatility (DataArray): float
Volatility calcola la Volatilità dello specificato DataArray.
Esempio Var: mioosc (0); mioosc = Volatility (C);
FINE MANUALE

è vero, dovrebbe essere questa parte

ATR(c,5) > Mov(ATR(c,5),10,E)*1.1

che, a differenza delle altre che ho scritto o che comunque "capisco" in ogni termine, mi sono copiato da Metastock e che forse funziona ma io non capisco come.
.......................................

Qualcuno ha qualche esempio?

Bunonanotte

Stefano [/B][/QUOTE]
__________________________________________

Credo che questo TS corrisponda a quello che dici:
2 Condizioni per l'entrata:
Prima condizione il Pattern:
Seconda condizione l'apertura del giorno successivo.

Il TS contiene anche gli indicatori che fanno parte del pattern per cui puoi controllare visivamente se tutto corrisponde.

La verifica del Pattern ti viene segnalata il giorno stesso tramite la colorazione in rosso della candela.La verifica della seconda condizione appare attraverso il colore blu della candela successiva

Il prezzo di entrata può essere l'apertura della barra blu oppure il prezzo di chiusura della barra rossa ma sempre sulla barra blu. Per selezionare una delle due modalità devi mettere tra parentesi graffe quella che vuoi escludere

{=======================================================================
Pattern di SteveSteve, listato di Biagi.
========================================================================}


Var: Condizioni(false),
Perc_guadagno(0),
Valore_uscita(0),
Perc_perdita(0),
Valore_SL(0),
Condizioni1(false),
Ar_ATR(0),
Ar_Mov(0),
Ar_HHV(0),
Ar_MovV(0),
Ar_V(0),
Entra(false),
TG(0),
STOP(0),Indzona1(0),Indzona2(0);

Perc_guadagno = 6;
Perc_perdita = -3;

// queste variabili prendono i valori degli indicatori del pattern
Ar_ATR = ATR(c,5);
Ar_Mov = Mov(ATR(c,5),10,E)*1.1;
Ar_HHv = HHV(H,21);
Ar_MovV = Mov(VOLUME,50,E)*1.5;
Ar_V = VOLUME;


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);

// In questa seconda condizione si usano,al posto dei dati odierni,i valori
// che avevano ieri i componenti del pattern
Condizioni1 = Ar_ATr[1] > Ar_Mov[1] and H[1] = Ar_HHV[1] and
Ar_V[1]>Ar_MovV[1] and C[1]>= O[1]+(O[1]*3)/100 AND(C[1]-O[1])/2 >(H[1]-C[1]);

if Condizioni then
ColorBar(Red);// Conferma della prima condizione che segnala il possibile
endif; // ingresso il giorno successivo

Entra = O > C[1]; // Verifica della seconda condizione

SECTION_ENTERLONG:

If RangeDate(20030101, 21001231) Then
If Condizioni1 = true and Entra = true Then
ColorBar(Blue); // Conferma della seconda condizione

// Verificate le due condizioni:

// Compro in apertura
EnterLong(Bar, O);
Valore_uscita = AddPerc(O, Perc_guadagno);
Valore_SL = AddPerc(O, Perc_perdita);

// Compro al valore della chiusura di ieri (ordine limite)
// togli le parentesi graffe e spostale a racchiudere le 3 righe precedenti
{EnterLong(Bar, C[1]);
Valore_uscita = AddPerc(C[1], Perc_guadagno);
Valore_SL = AddPerc(C[1], Perc_perdita);}

Exitlong(Bar,Valore_SL); // Se si usano stop stretti il livello può essere
// toccato sulla stessa barra,dopo tutto siamo in condizioni di alta volatilità
ExitLong(Bar, Valore_uscita);// Idem per targhet bassi


Endif;
Endif;
END_SECTION



SECTION_EXITLONG:

TG = Valore_Uscita;
Stop = Valore_SL;

If O > TG then // Se abbiamo un'apertura che va oltre il targhet
TG = O; // il targhet diventa l'apertura
endif;

If O < Stop then // L'aperutura sotto il livello di stop fa chiudere la
Stop = O; // posizione in apertura
endif;

If C > Stop Then
ExitLong(NextBar, TG); // Uscita a targhet
Endif;

If C < TG Then
ExitLong(NextBar, Stop); // Uscita in Stop
Endif;

END_SECTION

Indzona1 = CreateViewport(100, True, True);
Indzona2 = CreateViewport(100, True, True);
// Rappresentazione grafica degli indicatori per verifica visiva
PlotChart(Ar_V,Indzona1, red, solid,2);
PlotChart(Ar_MovV,Indzona1, blue, solid,2);

PlotChart(Ar_ATR,Indzona2, red, solid,2);
PlotChart(Ar_Mov,Indzona2, blue, solid,2);
 
Ultima modifica:
Biagi, ma tu sei un angelo mandato dal cielo!;) ;) ;)

Intanto ti ringrazio. Mi studierò con calma il tuo listato, dal quale credo che potrò anche capire per deduzione un bel po' di cose.

Grazie ancora!

Stefano

PS come sono i risultati?
 
Scritto da stevesteve
[
Stefano

PS come sono i risultati? [/B]
_______________________________________

Purtroppo ho una serie storica troppo limitata per poter dare un giudizio attendibile.
Ad occhio si dovrebbe tenere più basso il valore della media dei volumi(50 mi sembra eccessivo) , inserire stop maggiori dell'1%(così come avevi indicato all'inizio) perchè il pattern contempla un aumento della volatilità e quindi lo stop verrebbe sistematicamente catturato anche sulla stessa barra di entrata, di conseguenza bisogna allargare il targhet a valori del 7 - 10% eventualmente portando il livello di stop a pareggio ( vedi un esempio di TS con trailing stop postato sul forum "Logica di Base") dopo un certo numero di barre dall'entrata.

Per contro su alcuni titoli il sistema viene sistematicamente stoppato !!!??........ quindi questo potrebbe costituire uno spunto per creare un TS che lavori in modo diametralmente opposto sugli stessi pattern.

Lo studio delle strategie operative attraverso i TS costituisce una procedura economicamente utile in quanto ci permette di conoscere a bocce ferme, quindi senza rimetterci niente se non il tempo, l'esito di idee che se ad una sommaria valutazione sembrano buone, all'applicazione pratica ci fanno perdere soldi.

Ciao
 
Ultima modifica:
Scritto da Biagi
_______________________________________

Purtroppo ho una serie storica troppo limitata per poter dare un giudizio attendibile.
Ad occhio si dovrebbe tenere più basso il valore della media dei volumi(50 mi sembra eccessivo) , inserire stop maggiori dell'1%(così come avevi indicato all'inizio) perchè il pattern contempla un aumento della volatilità e quindi lo stop verrebbe sistematicamente catturato anche sulla stessa barra di entrata, di conseguenza bisogna allargare il targhet a valori del 7 - 10% eventualmente portando il livello di stop a pareggio ( vedi un esempio di TS con trailing stop postato sul forum "Logica di Base") dopo un certo numero di barre dall'entrata.

Per contro su alcuni titoli il sistema viene sistematicamente stoppato !!!??........ quindi questo potrebbe costituire uno spunto per creare un TS che lavori in modo diametralmente opposto sugli stessi pattern.

Lo studio delle strategie operative attraverso i TS costituisce una procedura economicamente utile in quanto ci permette di conoscere a bocce ferme, quindi senza rimetterci niente se non il tempo, l'esito di idee che se ad una sommaria valutazione sembrano buone, all'applicazione pratica ci fanno perdere soldi.

Ciao

Exitlong(Bar,Valore_SL); // Se si usano stop stretti il livello può essere
// toccato sulla stessa barra,dopo tutto siamo in condizioni di alta volatilità
ExitLong(Bar, Valore_uscita);// Idem per targhet bassi


Questi comandi "Exitlong", perchè li hai messi dentro alla sezione "Enterlong" e non insieme agli altri nell'ultima sezione?

buona notte

Stefano
 
Suggerimento per postare sul Forum le Formule

Salve a tutti,

Per poter postare sul forum eventuali formule, in modo che vengano visualizzate correttamente (gli spazi), è possibile utilizzare il TAG "code".

E cioè nel messaggio che scrivete, potete mettere
[ code ] ..... codice formula .... [ /code ].

In questo modo è possibile fare copia/incolla delle formule.
Risultato:

Codice:
if condizione then
   EnterLong(nextbar, AtOpen),
   // ......
endif;


Saluti
Staff Traderlink
 
due parole sul report:
come interpretare la parte finale del report dedicata all'eficienza?

grazie
 
Scritto da ocirne64
due parole sul report:
come interpretare la parte finale del report dedicata all'eficienza?

grazie

La misura dell'efficienza in entrata o in uscita viene effettuata confrontando il run-up ed il run-down di ogni operazione effettuata dal trading system con il run-up ed il run-down massimo del titolo.
Se questi valori corrispondono esattamente il trading system avrà avuto una efficienza del 100%, e questo significa che il ts è riuscito a comprare al minimo valore possibile e a rivendere al massimo, ottenendo dunque il maggior guadagno possibile.

L'efficienza è dunque una misura della "prontezza di riflessi" di un trading system: più è alta più il ts è pronto ad accorgersi di una inversione di tendenza e ad operare sul mercato.

Cordiali Saluti.
Staff TraderLink.
 
scusate
só che non é post giusto..ma...senza fretta....
mi é saltato il pc dove avevo installato Visual Trader
ed ora ...con il pc riparato...non riesco a rimetterlo...
mi esce questa scritta...
é avvenuto l´errore numero 100
file C \ VTRADER\tour\mainfunc.vts non esistente o tipologia non corretta.
é un errore del mio pc o un file mancante di Visual ?
grazie....
senza fretta
 
Scritto da javier sardá
scusate
só che non é post giusto..ma...senza fretta....
mi é saltato il pc dove avevo installato Visual Trader
ed ora ...con il pc riparato...non riesco a rimetterlo...
mi esce questa scritta...
é avvenuto l´errore numero 100
file C \ VTRADER\tour\mainfunc.vts non esistente o tipologia non corretta.
é un errore del mio pc o un file mancante di Visual ?
grazie....
senza fretta

Buongiorno,

questo forum e' dedicato esclusivamente alla sezione Trading System, per cui dovrebbe gentilmente inviarci un' e-mail all'indirizzo assistenza@traderlink.it oppure contattarci telefonicamente al numero 0549/904647.

Cordiali Saluti.

Staff TraderLink.
 
periodo di setup iniziale

Attenzione, importante !

C'e' un argomento che va spiegato bene, che e' emerso dall'analisi del TS che lele2 ci ha inviato, segnalando la possibile presenza di un bug. Chiamiamo l'argomento "periodo di setup iniziale".

Prendiamo ad esempio in TS che utilizzi due medie mobili:

Codice:
var: media_lenta(0),
       media_veloce(0);

       media_lenta = Mov(C, 50, S);     // Calcolo la media a 50 periodi
       media_veloce = Mov(C, 10, S);  // Calcolo la media a 10 periodi

Quando il motore dei TS di VT vede questo sorgente rileva l'oscillatore che ha bisogno di piu' "barre" e determina quindi che '50' e' il periodo di giorni (barre) minimo per far funzionare tutto il TS, ed inizia ad applicare tutto il ts dopo che sono trascorse le 50 barre del "periodo di setup iniziale".
Questo ci sembra corretto: se il TS iniziasse a lavorare prima avremmo che la variabile "media_lenta" contiene un valore che non e' calcolato effettivamente sulle 50 barre richieste, per cui tutti gli eventuali calcoli fatti sarebbero falsati.

Nota bene: non importa se la variabile in questione viene o meno usata per operazioni di trading (EnterLong... etc.)
VT non entra nel merito di queste analisi, sarebbero troppo complesse.

Ad esempio:

Codice:
   altravariabile = media_lenta * 1.5:
   miavariabile = altravariabile / media_veloce;

SECTION_ENTERLONG:
     if miavariabile > 100 then  
          enterlong.... etc. etc.

Si tratta di un sorgente inventato, senza senso, per far capire che anche se media_lenta non viene usata direttamente nella sezione "ENTERLONG" per il trading puo' comunque essere usata per influenzare altre variabili che poi infine determinano l'apertura di posizioni.

Quindi, aumentando il numero di barre minime da usare per il calcolo di un oscillatore si allunga il tempo di setup iniziale, durante il quale il TS non puo' operare, perche' non potrebbe calcolarlo correttamente. Quindi il report finale del TS riportera' dei valori diversi, anche se l'oscillatore non veniva usato per l'apertura di posizione, semplicemente perche' si e' accorciato il periodo storico su cui simulare le operazioni.

Abbiamo pensato di:
1) (facoltativamente) colorare in modo leggero lo sfondo del grafico, nel periodo iniziale di setup, per rendere piu' evidente questa zona di "non operativita' "
2) Aggiungere nel report numerico il numero di giorni ( barre) iniziali non utili per il TS

Come sotto-prodotto si potrebbe colorare, sempre facoltativamente, lo sfondo del grafico in modo diverso quando l'operazione passa in gain o quando scende in perdita. Per cui tra le due freccette enter-long ed exit-long si potranno trovare zone verdi o rosse, che fanno saltare all'occhio quanto l'operazione e' "filata liscia" o se invece ci si e' trovati spesso in perdita, anche se magari alla fine l'operazione e' stata positiva.

Che ne pensate ?

Nota bene: data l'importanza di questa informazione posto il messaggio su tutti i tre thread di VT

cordialita'
Mauro Pratelli
TraderLink
Rimini
 
Scritto da muia
Salve, vorrei sapere se è possibile usare in VT il Hi-Low activator.

Per quanto ne so il "Gann Swing HiLow Activator" consiste in una media mobile semplice dei massimi o dei minimi dei tre giorni precedenti, ma "spostata" in avanti di un giorno ed usata tipicamente come "segnale" per stop (ma anche per aprire posizioni, volendo....).

Ad esempio, se abbiamo aperto una posizione long allora controlleremo l'hi-low activator sui "minimi" del titolo nei tre giorni PRECEDENTI, e se il nostro titolo scende sotto questo livello allora abbandoniamo la posizione.

Immagino possano esistere applicazioni piu' complesse e sofisticate: io non le conosco, quindi mi limito a parlare dell'uso "semplice" di questo indicatore.


Come si usa in VT:

A MANO SUL GRAFICO:
in VT si applichi una media mobile semplice a 3 giorni sul valore "MINIMO" del titolo (quindi NON sul CLOSE). Valorizzare nel pannello della media mobile anche il parametro "Periodi di Shift orizzontale", in modo che la media mobile venga "disegnata" spostata avanti di un giorno. Questo e' l'Hi-low activator da usare per posizioni Long. Ripetendo l'operazione, ma scegliendo come origine per la nuova media il valore "MASSIMO" del titolo avremo l'hi-low activator da usare come stop per posizioni short, cioe' quando il titolo su cui siamo short supera al rialzo la media dei MASSIMI dei tre giorni, chiudiamo la posizione.

DA TRADING SYSTEM:
1) Creiamo i due indicatori, separatamente:
Codice:
Var: hi_activator(0),
        low_activator(0);

     hi_activator = MOV(H,3,S);
     low_activator  = MOV(L,3,S);

per chiudere poi, ad esempio, una posizione long:

Codice:
    if C < low_activator[1] then
       exitlong(NextBar, atopen);
    endif;

In effetti le variabili low_activator e hi_activator non contengono "veramente" gli attivatori, nel senso che non sono "spostate" di uno, per cui occorre sempre ricordare di utilizzarle nella forma "low_activator[1]". Probabilmente sarebbe utile una sintassi tipo metastock "REF(xxx, -1)" per avere sempre a disposizioni le variabili spostate di uno, per evitare di dimenticarsene durante l'utilizzo.

Qualche cosa del tipo:
low_activator = REF( MOV(L,3,S), -1);

Se c'e' qualcuno piu' esperto di questa materia.... e' il benvenuto!

cordialita'
Mauro Pratelli
TraderLink
Rimini
 
Ringraziandola della risposta, era proprio questo che mi interessava perché utilizzo lo swing chart per l’ ingresso a livello intraday per l’uscita il hi-low activator mi sembra ottimo e volevo provarlo,
avevo trovato la formula per metastock, pero per la verità preferivo usare totalmente VT perché lo swing chart funziona egregiamente. Grazie e distinti saluti
 
incontro a Rimini

Vi ricordo che il prossimo 12 giugno (Sabato)
ci incontriamo a Rimini con Enrico Malverti, vincitore nel 2002 del campionato Trading Systems nella categoria azioni.

Si tratta di un corso base, adatto a chi inizia ad avvicinarsi alla materia, e puo' risultare molto utile anche a chi desidera fare un "ripasso" delle proprie conoscenze, aiutato dall'esperienza di Enrico.

Il link con le informazioni sul corso e' questo:
http://adv.traderlink.it/adserver/redir.php?idban=82

vi aspetto !

Mauro Pratelli
TraderLink
Rimini
 
domandina..

Vorrei esportare i risultati dei report ...c'è magari la possibilità di copiarli o scaricarli direttamente in excel ??


thanks
 
quando inserisce un nuovo ts deve andare in Opzioni, poi in configura report e flaggare su "esporta report ed equity curve". Saluti,
em
 
Indietro