Home Page di InvestireOggi
Le ultime
NEWS
FINANZIARIE
Quotazioni e Grafici E.o.D. Real Time
FTSE Mib
13.057
-50.5

Rispondi
 
Strumenti discussione Cerca in questa discussione
Vecchio 04-07-2011, 12:15   #1 (permalink)
Utente Senior
 
Data registrazione: Aug 2007
Località: Rimini
Messaggi: 2,505
Swing di Gann - VT

Ciao a tutti, in allegato vi scrivo il codice in Visual Trader per l'identificazione degli swing di minimo e di massimo di Gann.

Il codice non ha alcuna valenza operativa e deve essere considerato esclusivamente un explorer.

Il programma esclude le barre inside anche multiple che intercorrono tra le tre barre che identificano lo swing di minimo o di massimo, attraverso lo shift dei valori.

Codice:
{******************************************************************************
* Swing Gann - robom1
******************************************************************************}
Var:  opeA(0), opeB(0), opeC(0),
      higA(0), higB(0), higC(0),
      lowA(0), lowB(0), lowC(0),
      cloA(0), cloB(0), cloC(0),
      barrainside(0), confronto(0),
      swing(0), swingattivo(0),
      indzona1, indzona2;
indzona1=CreateViewport(200, true, True);
indzona2=CreateViewport(200, true, True);
//******************************************************************************
//VERIFICA DELLE BARRE INSIDE
//le barre inside non vengono considerate; il confronto viene effettuato su
//high e min dell'ultima barra validata (per barra validata vedi success.)
if H <= higC and L >= lowC then barrainside = 1; else barrainside = 0; endif;
//******************************************************************************
//SHIFT DEI VALORI E DETERMINAZIONE DEI VALORI DELLE TRE BARRE DI CONFRONTO
//Se la barra non è inside occorre verificare che, nelle fasi preliminari vi
//siano almeno tre valori positivi su cui effettuare il confronto.
//Si possono avere pertanto i seguenti casi:
if barrainside = 0 then
//Caso A
//Esistono già tutte le serie dei tre valori di confronto; allora in questo
//caso si procede allo shift dei valori precedenti e il valore della barra
//corrente diventa il valore della barra C; in questo caso quindi si è
//proceduto allo shift dei valori precedenti e si potrà procedere al confronto
//per la verifica/determinazione di eventuali swing
                 if
                 opeA <> 0 and opeB <> 0 and opeC <> 0
                 then
                 opeA = opeB; higA = higB; lowA = lowB; cloA = cloB;
                 opeB = opeC; higB = higC; lowB = lowC; cloB = cloC;
                 opeC =    C; higC =    H; lowC =    L; cloC =    C;
                 confronto = 1;
                 endif;

//Caso B
//Esistono due delle tre serie di valori e manca la barra C; si procede quindi
//al solo inserimento della barra C senza procedere allo shift ed inoltre si
//procederà al confronto per la verifica/determinazione di eventuali swing.
                 if
                 opeA <> 0 and opeB <> 0 and opeC = 0
                 then
                 opeC =    C; higC =    H; lowC =    L; cloC =    C;
                 confronto = 1;
                 endif;
                 
//Caso C
//Esiste solo la serie relativa alla barra A mentre ancora mancano quelli della
//barra B; la barra B assumerà pertanto i valori correnti e non si potrà
//procedere al confronto in quanto mancano ancora i valori della barra C.
                 if
                 opeA <> 0 and opeB = 0
                 then
                 opeB = C; higB = H; lowB = L; cloB = C;
                 confronto = 0;
                 endif;

//Caso D
//Manca ancora il valore della barra A (siamo alla prima barra); la barra A
//assumerà pertanto i valori correnti e non si potrà procedere al confronto
//in quanto mancano ancora i valori della barra B e C.
                 if
                 opeA = 0
                 then
                 opeA =    C; higA =    H; lowA =    L; cloA =    C;
                 confronto = 0;
                 endif;
                 
endif;

//******************************************************************************
//DETERMINAZIONE DEGLI SWING DI MAX E SWING DI MIN
//Se la barra non è inside e puo' essere effettuato il confronto viene
//verificato se si tratta di uno swing di max

//Prima di iniziare il ciclo pongo lo swing uguale a zero
swing = 0;
//Faccio il ciclo solo se la barra non è inside e posso effettuare il confronto
if barrainside = 0 and confronto = 1 then

//Caso A. SWING DI MAX
//
//Confronto tra barra B e barra A:
// - la barra B deve avere un max maggiore di quello della barra A e un minimo
//   maggiore o uguale a quello della barra A
//
//Confronto tra la barra B e la barra C:
// - la barra B deve avere un massimo maggiore o uguale a quello della barra C
//   ed inoltre il minimo della barra C deve essere inferiore a quello della
//   barra B.
//La segnalazione dello swing di max viene effettuato sulla barra C
                 if
                 higB >  higA and
                 lowB >= lowA and
                 higB >= higC and
                 lowB >  lowC
                 then
                 swing = -1;
                 endif;
                 

//Caso B. SWING DI MIN
//
//Confronto tra barra B e barra A:
// - la barra B deve avere un massimo inferiore o uguale al massimo di A e
//   inoltre un minimo inferiore a quello di A.
//
//Confronto tra la barra B e la barra C:
// - la barra B deve avere un massimo inferiore al massimo di C ed inoltre
// un minimo inferiore o uguale al minimo di C
//La segnalazione dello swing di min viene effettuato sulla barra C
                 if
                 higB <= higA and
                 lowB <  lowA and
                 higB <  higC and
                 lowB <= lowC
                 then
                 swing = 1;
                 endif;
                 
endif;
//******************************************************************************
//COLORO LE INSIDE DI GIALLO
if barrainside = 1 then colorbar(yellow); endif;

//******************************************************************************
//DETERMINAZIONE DELLO SWING ATTIVO IN OGNI BARRA
//Se lo swing è diverso da zero chiaramente lo swing attivo sarà quello rilevato
//altrimenti sarà lo swing precedentemente determinato
if swing <> 0 then swingattivo = swing; else swingattivo = swingattivo[1]; endif;
PlotChart(swingattivo, indzona1, blue, istogramma, 3);
PlotChart(swing, indzona2, blue, solid, 3);
robom1 non è connesso   Rispondi citando
Avviso pubblicitario - i seguenti Banner Pubblicitari permettono al sito di offrirvi il consueto, alto standard qualitativo.
 
Vecchio 05-07-2011, 09:06   #2 (permalink)
f4f
翠鸟科
 
L'avatar di f4f
 
Data registrazione: Oct 2003
Località: taglialegna da CiubeBBa;at Tokyo as Zenigata;capt Orr;lednàcèk;Orazio;and miles to go before I sleep
Messaggi: 34,057
Citazione:
Originalmente inviato da robom1 Visualizza messaggio
Ciao a tutti, in allegato vi scrivo il codice in Visual Trader per l'identificazione degli swing di minimo e di massimo di Gann.

Il codice non ha alcuna valenza operativa e deve essere considerato esclusivamente un explorer.

Il programma esclude le barre inside anche multiple che intercorrono tra le tre barre che identificano lo swing di minimo o di massimo, attraverso lo shift dei valori.

Codice:
{******************************************************************************
* Swing Gann - robom1
******************************************************************************}
Var:  opeA(0), opeB(0), opeC(0),
      higA(0), higB(0), higC(0),
      lowA(0), lowB(0), lowC(0),
      cloA(0), cloB(0), cloC(0),
      barrainside(0), confronto(0),
      swing(0), swingattivo(0),
      indzona1, indzona2;
indzona1=CreateViewport(200, true, True);
indzona2=CreateViewport(200, true, True);
//******************************************************************************
//VERIFICA DELLE BARRE INSIDE
//le barre inside non vengono considerate; il confronto viene effettuato su
//high e min dell'ultima barra validata (per barra validata vedi success.)
if H <= higC and L >= lowC then barrainside = 1; else barrainside = 0; endif;
//******************************************************************************
//SHIFT DEI VALORI E DETERMINAZIONE DEI VALORI DELLE TRE BARRE DI CONFRONTO
//Se la barra non è inside occorre verificare che, nelle fasi preliminari vi
//siano almeno tre valori positivi su cui effettuare il confronto.
//Si possono avere pertanto i seguenti casi:
if barrainside = 0 then
//Caso A
//Esistono già tutte le serie dei tre valori di confronto; allora in questo
//caso si procede allo shift dei valori precedenti e il valore della barra
//corrente diventa il valore della barra C; in questo caso quindi si è
//proceduto allo shift dei valori precedenti e si potrà procedere al confronto
//per la verifica/determinazione di eventuali swing
                 if
                 opeA <> 0 and opeB <> 0 and opeC <> 0
                 then
                 opeA = opeB; higA = higB; lowA = lowB; cloA = cloB;
                 opeB = opeC; higB = higC; lowB = lowC; cloB = cloC;
                 opeC =    C; higC =    H; lowC =    L; cloC =    C;
                 confronto = 1;
                 endif;

//Caso B
//Esistono due delle tre serie di valori e manca la barra C; si procede quindi
//al solo inserimento della barra C senza procedere allo shift ed inoltre si
//procederà al confronto per la verifica/determinazione di eventuali swing.
                 if
                 opeA <> 0 and opeB <> 0 and opeC = 0
                 then
                 opeC =    C; higC =    H; lowC =    L; cloC =    C;
                 confronto = 1;
                 endif;
                 
//Caso C
//Esiste solo la serie relativa alla barra A mentre ancora mancano quelli della
//barra B; la barra B assumerà pertanto i valori correnti e non si potrà
//procedere al confronto in quanto mancano ancora i valori della barra C.
                 if
                 opeA <> 0 and opeB = 0
                 then
                 opeB = C; higB = H; lowB = L; cloB = C;
                 confronto = 0;
                 endif;

//Caso D
//Manca ancora il valore della barra A (siamo alla prima barra); la barra A
//assumerà pertanto i valori correnti e non si potrà procedere al confronto
//in quanto mancano ancora i valori della barra B e C.
                 if
                 opeA = 0
                 then
                 opeA =    C; higA =    H; lowA =    L; cloA =    C;
                 confronto = 0;
                 endif;
                 
endif;

//******************************************************************************
//DETERMINAZIONE DEGLI SWING DI MAX E SWING DI MIN
//Se la barra non è inside e puo' essere effettuato il confronto viene
//verificato se si tratta di uno swing di max

//Prima di iniziare il ciclo pongo lo swing uguale a zero
swing = 0;
//Faccio il ciclo solo se la barra non è inside e posso effettuare il confronto
if barrainside = 0 and confronto = 1 then

//Caso A. SWING DI MAX
//
//Confronto tra barra B e barra A:
// - la barra B deve avere un max maggiore di quello della barra A e un minimo
//   maggiore o uguale a quello della barra A
//
//Confronto tra la barra B e la barra C:
// - la barra B deve avere un massimo maggiore o uguale a quello della barra C
//   ed inoltre il minimo della barra C deve essere inferiore a quello della
//   barra B.
//La segnalazione dello swing di max viene effettuato sulla barra C
                 if
                 higB >  higA and
                 lowB >= lowA and
                 higB >= higC and
                 lowB >  lowC
                 then
                 swing = -1;
                 endif;
                 

//Caso B. SWING DI MIN
//
//Confronto tra barra B e barra A:
// - la barra B deve avere un massimo inferiore o uguale al massimo di A e
//   inoltre un minimo inferiore a quello di A.
//
//Confronto tra la barra B e la barra C:
// - la barra B deve avere un massimo inferiore al massimo di C ed inoltre
// un minimo inferiore o uguale al minimo di C
//La segnalazione dello swing di min viene effettuato sulla barra C
                 if
                 higB <= higA and
                 lowB <  lowA and
                 higB <  higC and
                 lowB <= lowC
                 then
                 swing = 1;
                 endif;
                 
endif;
//******************************************************************************
//COLORO LE INSIDE DI GIALLO
if barrainside = 1 then colorbar(yellow); endif;

//******************************************************************************
//DETERMINAZIONE DELLO SWING ATTIVO IN OGNI BARRA
//Se lo swing è diverso da zero chiaramente lo swing attivo sarà quello rilevato
//altrimenti sarà lo swing precedentemente determinato
if swing <> 0 then swingattivo = swing; else swingattivo = swingattivo[1]; endif;
PlotChart(swingattivo, indzona1, blue, istogramma, 3);
PlotChart(swing, indzona2, blue, solid, 3);

è sempre un piacere e uno stimolo leggere i tuoi lavori, Robom
__________________
per aspera ad astra,
ma che fatica però
f4f non è connesso   Rispondi citando
Vecchio 16-08-2011, 10:18   #3 (permalink)
Utente Senior
 
Data registrazione: Dec 2008
Messaggi: 1,271
Citazione:
Originalmente inviato da robom1 Visualizza messaggio
Ciao a tutti, in allegato vi scrivo il codice in Visual Trader per l'identificazione degli swing di minimo e di massimo di Gann.

Il codice non ha alcuna valenza operativa e deve essere considerato esclusivamente un explorer.

Il programma esclude le barre inside anche multiple che intercorrono tra le tre barre che identificano lo swing di minimo o di massimo, attraverso lo shift dei valori.

Codice:

Grazie del programmino.
Sto testando operativamente la cosa e vedendo se in pratica può avere delle applicazioni. Se qualcuno ha già fatto dei test e magari pubblicare le sue osservazioni è gradito.
bulogna non è connesso   Rispondi citando
Rispondi

Segnalibri

« Discussione precedente | Nuova discussione »

Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione Cerca in questa discussione
Cerca in questa discussione:

Ricerca avanzata

Regole messaggi
Tu non puoi inviare nuove discussioni
Tu non puoi replicare
Tu non puoi inviare allegati
Tu non puoi modificare i tuoi messaggi

Il codice BB è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Disattivato


Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Programmazione Visual Trader
codici vt di swing trading
ale73a Trading Systems, Econometria 31 12-09-2011 00:40
Analisi Intermarket
Swing...la verità!
FibMaster Piazza Affari 51 24-11-2010 12:05
claudio swing kidkurry Trading School: AT e AF, psicologia, strategie 15 25-02-2008 22:41
prima di stasera swing rialzista come sempre onlywave L'Isola dei Forumers 3 17-01-2006 16:16
Esempio di Swing chart Bipop Trading School: AT e AF, psicologia, strategie 10 16-07-2002 22:19


Tutti gli orari sono GMT +2. Adesso sono le 22:28.


vBulletin®
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
(C) Copyright InvestireOggi 2000-2010