Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ... (1 Viewer)

guz

Nuovo forumer
ho provato così e fino ad ora pare andare in gain utilizzando un TF 30 minuti. Come posso migliorarlo?

Indicator1 = SmoothedStochastic[9,9](MedianPrice)
Indicator2 = ExponentialAverage[9](Indicator1)
// InitVariable
StopLimit = 10
c1 = (Indicator1 >= Indicator2)
IF c1 THEN
BUY 1 SHARES AT MARKET RealTime
ENDIF
IF LONGONMARKET THEN
SELL AT ENTRYQUOTE * (1 + StopLimit / 100) Limit
ENDIF
IF SHORTONMARKET THEN
EXITSHORT AT ENTRYQUOTE / (1 + StopLimit / 100) Limit
ENDIF
REM Vendita
IF NOT c1 THEN
SELL AT MARKET RealTime
ENDIF
REM Vendita allo scoperto
IF NOT c1 THEN
SELLSHORT 1 SHARES AT MARKET RealTime
ENDIF
REM Riacquisto
IF c1 THEN
EXITSHORT AT MARKET RealTime
ENDIF
 

yago

Nuovo forumer
Caio, susate ho delle domade da perfetto neofita di pro real Time a riguardo la teoria di Demark. Ho copiato i codici riportati per la creazione degli indicatori, tuttavia la visualizzazione dei medesimi indicatori avviene con delle linee anziche con istogrammi, come posso ottenre quest'ultimo risultato come riportato nel link?

http://www.investireoggi.it/forum/889293-post652.html

In più come posso plottare il td sequential set up sul grafico del prezzo sempre come da link sopra riportato?
Scusate per l'inesperienza e grazie per l'aiuto.
 

tetsuo

Guest
In più come posso plottare il td sequential set up sul grafico del prezzo sempre come da link sopra riportato?


Ciao

ti faccio vedere come fare a plottare questo poi le restanti parti ti ci diverti da solo tanto è sempre la stessa cosa :D


[ame]http://www.youtube.com/watch?v=7PScmD6qCQc[/ame]


ciao
 

meursault

lo straniero
Ciao a tutti, volevo postare il codice per traslare all'indietro i grafici. Non so se il problema sia gia' stato affrontato o risolto da qualcuno, spero possa essere di interesse.

Il risultato sara' qualcosa di questo tipo

1261257813djeurostoxx500310.png


Questo e' il grafico del fut eurostoxx 50, compressione 15 minuti, traslato all'indietro di un giorno.

Ecco il codice (scusate ma non riesco ad indentarlo)

REM traslazione

if (barindex <= numbarre - indietro) and (barindex > indietro) then
if indietro = 0 then
ind = close
elsif indietro = 1 then
ind = -DPO[1](close)+close
elsif indietro = 2 then
ind = 2*(-DPO[2](close)+close) - (-DPO[1](close)+close)
else
ind = (2*indietro-2)*(-DPO[2*indietro-2](close)+close) - (2*indietro-4)*(-DPO[2*indietro-4](close)+close)-close[indietro-3]
endif
ind1 = round(ind)
else
if barindex<= indietro then
ind1 = undefined
else
ind1 =ind1[1]
endif
endif

return ind1 as "traslazione"


Le variabili sono indietro e numbarre.

Un paio di spiegazioni e osservazioni:
- la variabile indietro rappresenta di quante barre vogliamo traslare indietro il grafico. Per grafici intraday consiglio di usare un multiplo intero del numero di barre presenti in un giorno di contrattazione nella compressione prescelta in modo da ritrovarsi con le ore-minuti. Ad esempio nel grafico sopra indietro vale 56, che e' esattamente il numero di barre a 15min in una giornata di contrattazione del future eurostoxx. Per grafici giornalieri non importa invece il valore che si sceglie, ovviamente i giorni risulteranno sballati
- la variabile numbarre rappresenta il numero di barre sul grafico. Per sapere quante sono consiglio di scrivere un indicatore di appoggio con la sola riga
return barindex
e' questo indicatore che si vede nel grafico sopra nell'ultima piccola finestra. Il suo ultimo valore rappresenta il numero di barre sul grafico ed e' quindi quello da inserire come valore per la variabile numbarre
- i prezzi a destra della traslazione vengono posti tutti uguali all'ultimo prezzo (spieghero' dopo il perche'), ovviamente e' possibile fare scelte diverse
- i prezzi della traslazione vengono ricostruiti partendo da delle medie, e in questa trasformazione possono sorgere dei decimali che non ci sono. Il codice qua sopra e' stato fatto per l'eurostoxx, dove i prezzi sono interi, questa e' la ragione di quel round(ind). Per altri strumenti bisognera' o togliere questa riga o studiare un'altra soluzione tramite approssimazione per far tornare esattamente i valori, onestamente non ho affrontato il problema ma credo non sia troppo difficile risolverlo con qualche prova (magari invece e' difficile, non so a dire il vero).
- per l'utilizzo intraday questo codice ha una grossa mancanza che sarebbe bello risolvere (Tetsuo? :)): in pratica la traslazione non si aggiorna in real-time ma solo ogni volta che vengono inseriti i valori delle variabili. Per quello a volte faccio "su e giu'" con le variabili nella finestra delle proprieta' per far ricaricare l'ultimo valore dei prezzi. Non ci ho pensato molto tempo ma la soluzione non mi sembra immediata ... almeno per me ...

Nei prossimi post mettero' due applicazioni della traslazione: le medie mobili centrate e indicatori ciclici costruiti con esse e la proiezione nel futuro di indicatori. Sono cose che solitamente vengono fatte con excel ma grazie alla traslazione diventano possibili anche in PRT.
 

meursault

lo straniero
mmc

Come e' noto le medie mobili centrate sono medie che vengono plottate meta' periodo indietro. Avvicinandosi al "presente", la parte dei prezzi che rimane scoperta nel calcolo viene posta ad esempio, alla Migliorino, fittiziamente uguale all'ultimo prezzo (ecco perche' nella traslazione faccio esattamente la stessa cosa).

Ora, tramite la traslazione il codice per tracciare una mmc diventa immediato. Invece di fare una media e portarla indietro, facciamo una media del grafico traslato all'indietro

REM mmc

if n mod 2 = 0 then
t = n/2
else
t = (n -1)/2
endif

trasl = CALL traslazione[t,numbarre]

ind = Average[n](trasl)

return ind

variabili n e numbarre. N e' il periodo della media, numbarre ha lo stesso significato gia' esposto prima, e quindi al solito conviene aver sotto una finestra dell'indicatore barindex.

Nel grafico qua sotto ho plottato una mmc a 28 periodi

1261260752mmc.png


Come e' noto in realta' in prt si puo' plottare una mmc ... basta plottare una mm e nel pannello proprieta' inserire spostamento in periodo -meta' del periodo della media mobile. Il problema e' che cosi' facendo l'ultimo mezzo periodo rimane costante, la mm non viene proiettata. Con la mmc del codice precedente invece copriamo anche quest'ultima parte. Nel grafico sotto sono plottate la mmc periodo 28 del codice e la mm di prt traslata all'indietro di 14 barre. Come si vede corrispondo perfettamente e in piu' abbiamo i valori fino in fondo (rettangolo)

1261260922mmc2.png


Un'ultima osservazione sulle mmc: una volta che le abbiamo e' praticamente immediato scrivere il codice delle bande di Hurst, che tralascio.

Ora passo agli indicatori ciclici definiti con le mmc come descritti da Migliorino ad esempio. L'indicatore ciclo relativo al ciclo di lunghezza n e' definito come differenza tra la mmc di periodo n/2 e quella di periodo n. Il codice e' quindi semplicemente.

REM indicatore ciclo mmc

if n mod 2 = 0 then
m = n/2
else
m = round(n/2)
endif

mymmc1 = CALL mmc[m ,numbarre]
mymmc2 = CALL mmc[n ,numbarre]

ind = (mymmc1 - mymmc2)

return ind

Variabili: n che e' la lunghezza del ciclo espressa in numero di barre della compressione prescelta, numbarre il solito.

Ecco l'indicatore ciclo del 4gg. N in questo caso e' 224 = 56*4

1261261910indicatoreciclo.png


Non c'e' sicuramente bisogno di ricordarlo, ma per chi non avesse mai usato mmc e compagnia, ricordo che sono strumenti da prendere con le pinze perche' allo scorrere del tempo si modificano anche nel passato. Con questi codici lo scorrere del tempo si riflettera' nell'aumentare sempre di piu' il valore di numbarre.
 

meursault

lo straniero
proiezioni nel futuro

Grazie alla traslazione, possiamo proiettare nel futuro qualsiasi indicatore. La proiezione verra' fatta ammettendo che i valori nel futuro si manterranno costanti all'ultimo valore registrato. Per altre supposizioni dei valori futuri bisognera' cambiare il codice della traslazione alla riga ind1 =ind1[1].

Per fare la proiezione di un indicatore non bisogna fare altro che applicarlo alla traslazione. Prendo come esempio di indicatore il price oscillator (o POS, che non e' nient'altro che una differenza di medie mobili), un tipico indicatore di ciclo.
Il codice e' semplicemente

tras = CALL traslazione[indietro , numbarre]

ind=PriceOscillator[nbreve,nlunga](tras)

return ind

dove ritroviamo le variabili indietro e numbarre e nbreve nlunga per la lunghezza delle medie. Per controllare un ciclo di lunghezza n si usa nbreve = n/4 e nlunga = n/2.

Nel grafico riporto la traslazione all'indietro di un giorno dell'eurostoxx e il pos del ciclo a 4gg, con proiezione futura. Ho messo anche una verticale ad indicare il "presente"

1261263053pos.png


I giorni risultano ovviamente sballati di 1. Dalla proiezione a prezzi costanti risulta che il 4gg che sembrava partito (l'indicatore ciclo con le mmc nel post precedente sembrava dire cosi') forse risulta solo una "finta" ... i prezzi si dovranno spingere velocemente all'insu' altrimenti l'indicatore tornera' sui suoi passi ... se poi lunedi' apriamo a 3000 non prendetevela con me :D

Lo stesso principio (indicatore applicato alla traslazione) puo' essere applicato anche per proiettare altri indicatori, a dire il vero io ho verificato solo il macd, spero funzioni con tutti.

:ciao:
 

tetsuo

Guest
Ciao a tutti, volevo postare il codice per traslare all'indietro i grafici. Non so se il problema sia gia' stato affrontato o risolto da qualcuno, spero possa essere di interesse.

Il risultato sara' qualcosa di questo tipo

1261257813djeurostoxx500310.png


Questo e' il grafico del fut eurostoxx 50, compressione 15 minuti, traslato all'indietro di un giorno.

Ecco il codice (scusate ma non riesco ad indentarlo)

REM traslazione

if (barindex <= numbarre - indietro) and (barindex > indietro) then
if indietro = 0 then
ind = close
elsif indietro = 1 then
ind = -DPO[1](close)+close
elsif indietro = 2 then
ind = 2*(-DPO[2](close)+close) - (-DPO[1](close)+close)
else
ind = (2*indietro-2)*(-DPO[2*indietro-2](close)+close) - (2*indietro-4)*(-DPO[2*indietro-4](close)+close)-close[indietro-3]
endif
ind1 = round(ind)
else
if barindex<= indietro then
ind1 = undefined
else
ind1 =ind1[1]
endif
endif

return ind1 as "traslazione"


Le variabili sono indietro e numbarre.

Un paio di spiegazioni e osservazioni:
- la variabile indietro rappresenta di quante barre vogliamo traslare indietro il grafico. Per grafici intraday consiglio di usare un multiplo intero del numero di barre presenti in un giorno di contrattazione nella compressione prescelta in modo da ritrovarsi con le ore-minuti. Ad esempio nel grafico sopra indietro vale 56, che e' esattamente il numero di barre a 15min in una giornata di contrattazione del future eurostoxx. Per grafici giornalieri non importa invece il valore che si sceglie, ovviamente i giorni risulteranno sballati
- la variabile numbarre rappresenta il numero di barre sul grafico. Per sapere quante sono consiglio di scrivere un indicatore di appoggio con la sola riga
return barindex
e' questo indicatore che si vede nel grafico sopra nell'ultima piccola finestra. Il suo ultimo valore rappresenta il numero di barre sul grafico ed e' quindi quello da inserire come valore per la variabile numbarre
- i prezzi a destra della traslazione vengono posti tutti uguali all'ultimo prezzo (spieghero' dopo il perche'), ovviamente e' possibile fare scelte diverse
- i prezzi della traslazione vengono ricostruiti partendo da delle medie, e in questa trasformazione possono sorgere dei decimali che non ci sono. Il codice qua sopra e' stato fatto per l'eurostoxx, dove i prezzi sono interi, questa e' la ragione di quel round(ind). Per altri strumenti bisognera' o togliere questa riga o studiare un'altra soluzione tramite approssimazione per far tornare esattamente i valori, onestamente non ho affrontato il problema ma credo non sia troppo difficile risolverlo con qualche prova (magari invece e' difficile, non so a dire il vero).
- per l'utilizzo intraday questo codice ha una grossa mancanza che sarebbe bello risolvere (Tetsuo? :)): in pratica la traslazione non si aggiorna in real-time ma solo ogni volta che vengono inseriti i valori delle variabili. Per quello a volte faccio "su e giu'" con le variabili nella finestra delle proprieta' per far ricaricare l'ultimo valore dei prezzi. Non ci ho pensato molto tempo ma la soluzione non mi sembra immediata ... almeno per me ...

Nei prossimi post mettero' due applicazioni della traslazione: le medie mobili centrate e indicatori ciclici costruiti con esse e la proiezione nel futuro di indicatori. Sono cose che solitamente vengono fatte con excel ma grazie alla traslazione diventano possibili anche in PRT.


:eek:

complimentoni veramente senza parole :up: :up:

La via per aggirare quello che era un limite di Probuilder è stata aperta non rimane che percorrerla :mano:

al più presto (magari quando avrò capito dov'è la magia) eseguo delle prove per il problemino dell'aggiornamento ;)

Alla prossima

Ciao

P.S. secondo me mezzo forum sta facendo la ola :D
 

meursault

lo straniero
:eek:

complimentoni veramente senza parole :up: :up:

La via per aggirare quello che era un limite di Probuilder è stata aperta non rimane che percorrerla :mano:

al più presto (magari quando avrò capito dov'è la magia) eseguo delle prove per il problemino dell'aggiornamento ;)

Alla prossima

Ciao

P.S. secondo me mezzo forum sta facendo la ola :D

Grazie Tetsuo, i complimenti da te sono un onore :mano:

E dire che il codice per la traslazione l'ho scritto 8-9 mesi fa e ormai non lo uso piu' visto che sono diventato un fanatico del Main Trend (magari un giorno ci confrontiamo i codici anche su quello, il mio e' di una brutalita' assoluta :lol:). Mah, spero veramente che sta traslazione possa servire a qualcosa, sono curioso di vedere altre eventuali applicazioni.

Ciao e a presto
 

tetsuo

Guest
Grazie Tetsuo, i complimenti da te sono un onore :mano:

E dire che il codice per la traslazione l'ho scritto 8-9 mesi fa e ormai non lo uso piu' visto che sono diventato un fanatico del Main Trend (magari un giorno ci confrontiamo i codici anche su quello, il mio e' di una brutalita' assoluta :lol:). Mah, spero veramente che sta traslazione possa servire a qualcosa, sono curioso di vedere altre eventuali applicazioni.

Ciao e a presto


Insomma lo hai tenuto nascosto nel cassetto apposta per farci un gradito regalo di Natale :)

Purtroppo io non ho il RT quindi mi rimane difficile fare delle prove per controllare il problema dell'aggiornamento, così mi verrebbe da supporre che il difetto sia legato all'uso della variabile numbarre e sarebbe da controllare se in intraday il numero delle barre caricate rimane costante oppure se all'arrivo di una nuova barra barindex aumenta di un'unità. Comunque rimaneggiando un po' il codice questa variabile può essere esclusa lasciando solo "indietro" come valore da inserire a mano! Mi viene anche da pensare che l'errore possa essere dovuto al DPO stesso ...hai fatto mai una prova per verificare se quest'ultimo si auto aggiorna in RT ???


Fammi sapere se nelle tue prove hai già controllato queste cose così proviamo a migliorare il codice!

Ciao

P.S. Ti leggo con piacere anche sul 3d dell'eurostoxx, dove ho visto come usi il main trend, la differenza più grossa tra il mio codice e il tuo tipo di conteggio stà da quel che vedo nella definizione di barra "inside"
Su questo punto tempo fa, quando lo postai su maintrendanalysis.com, chiesi (anche se in modo indiretto) a celeron se il mio modo di considerare le barre con valori identici fosse correto ma non è che ho capito molto bene la risposta :mmmm::wall: e questa è una cosa che va approfondita!
Comunque il mio codice è lì mostrami il tuo se vuoi e facciamo un confronto più serio :up:
 

meursault

lo straniero
Insomma lo hai tenuto nascosto nel cassetto apposta per farci un gradito regalo di Natale :)

Purtroppo io non ho il RT quindi mi rimane difficile fare delle prove per controllare il problema dell'aggiornamento, così mi verrebbe da supporre che il difetto sia legato all'uso della variabile numbarre e sarebbe da controllare se in intraday il numero delle barre caricate rimane costante oppure se all'arrivo di una nuova barra barindex aumenta di un'unità. Comunque rimaneggiando un po' il codice questa variabile può essere esclusa lasciando solo "indietro" come valore da inserire a mano! Mi viene anche da pensare che l'errore possa essere dovuto al DPO stesso ...hai fatto mai una prova per verificare se quest'ultimo si auto aggiorna in RT ???


Fammi sapere se nelle tue prove hai già controllato queste cose così proviamo a migliorare il codice!

Ciao

P.S. Ti leggo con piacere anche sul 3d dell'eurostoxx, dove ho visto come usi il main trend, la differenza più grossa tra il mio codice e il tuo tipo di conteggio stà da quel che vedo nella definizione di barra "inside"
Su questo punto tempo fa, quando lo postai su maintrendanalysis.com, chiesi (anche se in modo indiretto) a celeron se il mio modo di considerare le barre con valori identici fosse correto ma non è che ho capito molto bene la risposta :mmmm::wall: e questa è una cosa che va approfondita!
Comunque il mio codice è lì mostrami il tuo se vuoi e facciamo un confronto più serio :up:

Macche' regalo di Natale, e' che sono lento ... ci ho messo 6 mesi per decidermi a iscrivermi al forum, 6 mesi per decidermi a postare :rolleyes: ...

Allora, riguardo a quello che scrivi, sono curioso di rivedere il rimaneggiamento del codici. In RT quando arriva una nuova barra barindex aumenta di un'unita' (e quindi bisogna aumentare numbarre). Sul DPO non so, verifichero' domani come si aggiorna, pero' non penso che sia li' il problema perche' c'e' tra l'altro una cosa strana ... tempo fa, prima della traslazione, avevo scritto un codice per calcolare direttamente le mmc, anche li' usavo il DPO, e anche quello non mi si aggiornava ... poi pero' se scrivevo un indicatore che semplicemente richiamava quello di partenza allora si aggiornava, perche' credo che praticamente ricaricasse in continuazione i parametri ... ci ho provato anche con la traslazione, ed in effetti si aggiorna in diretta ... ma solo l'ultima barra, mentre tutti i valori prima, dall'ultimo traslato in poi rimangono costanti ... si' beh se hai capito cosa sto scrivendo sei un fenomeno, perche' non l'ho capito neanch'io :D meglio che domani posti un grafico dal RT che cosi' vedi ... :mumble: ... e forse comincio a capire quale potrebbe essere la soluzione ... vabbe' vediamo domani.

Per il Main Trend, io le inside le considero con il minore/maggiore uguale, se e' quello che intendevi, e non mi ero mai fatto la domanda su come considerarle :wall: Il mio codice e' penoso (di programmazione capisco veramente poco) e ha due grosse lacune. La prima e' che non so se in PRT sia possibile usare delle liste ... insomma strutture che non abbiano prederminata all'inizio la lunghezza ... e quindi in realta' mi sono scritto a mano (e limitato) il numero possibili di conteggi (mi sembra che ne ho messi 15). L'altra cosa, che invece mi piacerebbe risolvere, e' come viene tracciato il Main Trend. Al momento io lo traccio cosi' con dei puntini

1261438351djeurostoxx500310.png


e poi traccio i segmenti a mano, mentre ovviamente vorrei che venissero tracciati in automatico. Lo zig-zag putroppo non aiuta perche' andrebbe a prendere gli ultimi punti invece che i primi ...

Al forum di Celeron non sono iscritto e di sto passo mi iscrivero' tra 6 mesi, quindi se magari puoi darmi una mano col mio codice o farmi vedere il tuo anche in mp mi faresti un grosso favore.

Ecco il codice, vedo se riesco a metterlo in una finestra perche' e' lunghino

Ciao :up:

Codice:
once mt = low
once mtverso = -1

if mtverso = -1 then
    if low < mt then
        mt = low
        conteggio1=0
        conteggio2=0
        conteggio3=0
        conteggio4=0
        conteggio5=0
        conteggio6=0
        conteggio7=0
        conteggio8=0
        conteggio9=0
        conteggio10=0
        conteggio11=0
        conteggio12=0
        conteggio13=0
        conteggio14=0
        conteggio15=0
        lvlconteggio1=0
        lvlconteggio2=0
        lvlconteggio3=0
        lvlconteggio4=0
        lvlconteggio5=0
        lvlconteggio6=0
        lvlconteggio7=0
        lvlconteggio8=0
        lvlconteggio9=0
        lvlconteggio10=0
        lvlconteggio11=0
        lvlconteggio12=0
        lvlconteggio13=0
        lvlconteggio14=0
        lvlconteggio15=0
    else
        if NOT(low>=low[1] and high<=high[1] ) then
            assegna = 0
            if conteggio1 > 0 and high > lvlconteggio1 then
                conteggio1 = conteggio1+1
                lvlconteggio1 = high
                assegna = 1
            endif
            if conteggio2 > 0 and high > lvlconteggio2 then
                conteggio2 = conteggio2+1
                lvlconteggio2 = high
                assegna = 1
            endif
            if conteggio3 > 0 and high > lvlconteggio3 then
                conteggio3 = conteggio3+1
                lvlconteggio3 = high
                assegna = 1
            endif
            if conteggio4 > 0 and high > lvlconteggio4 then
                conteggio4 = conteggio4+1
                lvlconteggio4 = high
                assegna = 1
            endif
            if conteggio5 > 0 and high > lvlconteggio5 then
                conteggio5 = conteggio5+1
                lvlconteggio5 = high
                assegna = 1
            endif
            
            if conteggio6 > 0 and high > lvlconteggio6 then
                conteggio6 = conteggio6+1
                lvlconteggio6 = high
                assegna = 1
            endif
            if conteggio7 > 0 and high > lvlconteggio7 then
                conteggio7 = conteggio7+1
                lvlconteggio7 = high
                assegna = 1
            endif
            if conteggio8 > 0 and high > lvlconteggio8 then
                conteggio8 = conteggio8+1
                lvlconteggio8 = high
                assegna = 1
            endif
            if conteggio9 > 0 and high > lvlconteggio9 then
                conteggio9 = conteggio9+1
                lvlconteggio9 = high
                assegna = 1
            endif
            if conteggio10 > 0 and high > lvlconteggio10 then
                conteggio10 = conteggio10+1
                lvlconteggio10 = high
                assegna = 1
            endif
            
            if conteggio11 > 0 and high > lvlconteggio11 then
                conteggio11 = conteggio11+1
                lvlconteggio11 = high
                assegna = 1
            endif
            if conteggio12 > 0 and high > lvlconteggio12 then
                conteggio12 = conteggio12+1
                lvlconteggio12 = high
                assegna = 1
            endif
            if conteggio13 > 0 and high > lvlconteggio13 then
                conteggio13 = conteggio13+1
                lvlconteggio13 = high
                assegna = 1
            endif
            if conteggio14 > 0 and high > lvlconteggio14 then
                conteggio14 = conteggio14+1
                lvlconteggio14 = high
                assegna = 1
            endif
            if conteggio15 > 0 and high > lvlconteggio15 then
                conteggio15 = conteggio15+1
                lvlconteggio15 = high
                assegna = 1
            endif
            
            if conteggio1 = 0 then
                conteggio1 = 1
                lvlconteggio1 = high
                assegna = 1
            else
                if assegna = 0 and conteggio2 = 0 then
                    conteggio2 = 1
                    lvlconteggio2 = high
                    assegna = 1
                else
                    if assegna = 0 and conteggio3 = 0 then
                        conteggio3 = 1
                        lvlconteggio3 = high
                        assegna = 1
                    else
                        if assegna = 0 and conteggio4 = 0 then
                            conteggio4 = 1
                            lvlconteggio4 = high
                            assegna = 1
                        else
                            if assegna = 0 and conteggio5 = 0 then
                                conteggio5 = 1
                                lvlconteggio5 = high
                                assegna = 1
                            else
                                if assegna = 0 and conteggio6 = 0 then
                                    conteggio6 = 1
                                    lvlconteggio6 = high
                                    assegna = 1
                                else
                                    if assegna = 0 and conteggio7 = 0 then
                                        conteggio7 = 1
                                        lvlconteggio7 = high
                                        assegna = 1
                                    else
                                        if assegna = 0 and conteggio8 = 0 then
                                            conteggio8 = 1
                                            lvlconteggio8 = high
                                            assegna = 1
                                        else
                                            if assegna = 0 and conteggio9 = 0 then
                                                conteggio9 = 1
                                                lvlconteggio9 = high
                                                assegna = 1
                                            else
                                                if assegna = 0 and conteggio10 = 0 then
                                                    conteggio10 = 1
                                                    lvlconteggio10 = high
                                                    assegna = 1
                                                else
                                                    if assegna = 0 and conteggio11 = 0 then
                                                        conteggio11 = 1
                                                        lvlconteggio11 = high
                                                        assegna = 1
                                                    else
                                                        if assegna = 0 and conteggio12 = 0 then
                                                            conteggio12 = 1
                                                            lvlconteggio12 = high
                                                            assegna = 1
                                                        else
                                                            if assegna = 0 and conteggio13 = 0 then
                                                                conteggio13 = 1
                                                                lvlconteggio13 = high
                                                                assegna = 1
                                                            else
                                                                if assegna = 0 and conteggio14 = 0 then
                                                                    conteggio14 = 1
                                                                    lvlconteggio14 = high
                                                                    assegna = 1
                                                                else
                                                                    if assegna = 0 and conteggio15 = 0 then
                                                                        conteggio15 = 1
                                                                        lvlconteggio15 = high
                                                                        assegna = 1
                                                                    endif
                                                                endif
                                                            endif
                                                        endif
                                                    endif
                                                endif
                                            endif
                                        endif
                                    endif
                                endif
                            endif
                        endif
                    endif
                endif
            endif
            
            
            if conteggio1 = 3 or conteggio2 = 3 or conteggio3 = 3 or conteggio4 = 3 or conteggio5 = 3 or conteggio6 = 3 or conteggio7 = 3 or conteggio8 = 3 or conteggio9 = 3 or conteggio10 = 3 or conteggio11 = 3 or conteggio12 = 3 or conteggio13 = 3 or conteggio14 = 3 or conteggio15 = 3 then
                mt = high
                mtverso = 1
                conteggio1=0
                conteggio2=0
                conteggio3=0
                conteggio4=0
                conteggio5=0
                conteggio6=0
                conteggio7=0
                conteggio8=0
                conteggio9=0
                conteggio10=0
                conteggio11=0
                conteggio12=0
                conteggio13=0
                conteggio14=0
                conteggio15=0
                lvlconteggio1=0
                lvlconteggio2=0
                lvlconteggio3=0
                lvlconteggio4=0
                lvlconteggio5=0
                lvlconteggio6=0
                lvlconteggio7=0
                lvlconteggio8=0
                lvlconteggio9=0
                lvlconteggio10=0
                lvlconteggio11=0
                lvlconteggio12=0
                lvlconteggio13=0
                lvlconteggio14=0
                lvlconteggio15=0
            endif
        endif
    endif
else
    if high > mt then
        mt = high
        conteggio1=0
        conteggio2=0
        conteggio3=0
        conteggio4=0
        conteggio5=0
        conteggio6=0
        conteggio7=0
        conteggio8=0
        conteggio9=0
        conteggio10=0
        conteggio11=0
        conteggio12=0
        conteggio13=0
        conteggio14=0
        conteggio15=0
        lvlconteggio1=0
        lvlconteggio2=0
        lvlconteggio3=0
        lvlconteggio4=0
        lvlconteggio5=0
        lvlconteggio6=0
        lvlconteggio7=0
        lvlconteggio8=0
        lvlconteggio9=0
        lvlconteggio10=0
        lvlconteggio11=0
        lvlconteggio12=0
        lvlconteggio13=0
        lvlconteggio14=0
        lvlconteggio15=0
    else
        if NOT(low>=low[1] and high<=high[1] ) then
            assegna = 0
            
            if conteggio1 > 0 and low < lvlconteggio1 then
                conteggio1 = conteggio1+1
                lvlconteggio1 = low
                assegna = 1
            endif
            if conteggio2 > 0 and low < lvlconteggio2 then
                conteggio2 = conteggio2+1
                lvlconteggio2 = low
                assegna = 1
            endif
            if conteggio3 > 0 and low < lvlconteggio3 then
                conteggio3 = conteggio3+1
                lvlconteggio3 = low
                assegna = 1
            endif
            if conteggio4 > 0 and low < lvlconteggio4 then
                conteggio4 = conteggio4+1
                lvlconteggio4 = low
                assegna = 1
            endif
            if conteggio5 > 0 and low < lvlconteggio5 then
                conteggio5 = conteggio5+1
                lvlconteggio5 = low
                assegna = 1
            endif
            if conteggio6 > 0 and low < lvlconteggio6 then
                conteggio6 = conteggio6+1
                lvlconteggio6 = low
                assegna = 1
            endif
            if conteggio7 > 0 and low < lvlconteggio7 then
                conteggio7 = conteggio7+1
                lvlconteggio7 = low
                assegna = 1
            endif
            if conteggio8 > 0 and low < lvlconteggio8 then
                conteggio8 = conteggio8+1
                lvlconteggio8 = low
                assegna = 1
            endif
            if conteggio9 > 0 and low < lvlconteggio9 then
                conteggio9 = conteggio9+1
                lvlconteggio9 = low
                assegna = 1
            endif
            if conteggio10 > 0 and low < lvlconteggio10 then
                conteggio10 = conteggio10+1
                lvlconteggio10 = low
                assegna = 1
            endif
            if conteggio11 > 0 and low < lvlconteggio11 then
                conteggio11 = conteggio11+1
                lvlconteggio11 = low
                assegna = 1
            endif
            if conteggio12 > 0 and low < lvlconteggio12 then
                conteggio12 = conteggio12+1
                lvlconteggio12 = low
                assegna = 1
            endif
            if conteggio13 > 0 and low < lvlconteggio13 then
                conteggio13 = conteggio13+1
                lvlconteggio13 = low
                assegna = 1
            endif
            if conteggio14 > 0 and low < lvlconteggio14 then
                conteggio14 = conteggio14+1
                lvlconteggio14 = low
                assegna = 1
            endif
            if conteggio15 > 0 and low < lvlconteggio15 then
                conteggio15 = conteggio15+1
                lvlconteggio15 = low
                assegna = 1
            endif
            
            if conteggio1 = 0 then
                conteggio1 = 1
                lvlconteggio1 = low
                assegna = 1
            else
                if assegna = 0 and conteggio2 = 0 then
                    conteggio2 = 1
                    lvlconteggio2 = low
                    assegna = 1
                else
                    if assegna = 0 and conteggio3 = 0 then
                        conteggio3 = 1
                        lvlconteggio3 = low
                        assegna = 1
                    else
                        if assegna = 0 and conteggio4 = 0 then
                            conteggio4 = 1
                            lvlconteggio4 = low
                            assegna = 1
                        else
                            if assegna = 0 and conteggio5 = 0 then
                                conteggio5 = 1
                                lvlconteggio5 = low
                                assegna = 1
                                
                            else
                                if assegna = 0 and conteggio6 = 0 then
                                    conteggio6 = 1
                                    lvlconteggio6 = low
                                    assegna = 1
                                    
                                else
                                    if assegna = 0 and conteggio7 = 0 then
                                        conteggio7 = 1
                                        lvlconteggio7 = low
                                        assegna = 1
                                        
                                    else
                                        if assegna = 0 and conteggio8 = 0 then
                                            conteggio8 = 1
                                            lvlconteggio8 = low
                                            assegna = 1
                                            
                                        else
                                            if assegna = 0 and conteggio9 = 0 then
                                                conteggio9 = 1
                                                lvlconteggio9 = low
                                                assegna = 1
                                                
                                            else
                                                if assegna = 0 and conteggio10 = 0 then
                                                    conteggio10 = 1
                                                    lvlconteggio10 = low
                                                    assegna = 1
                                                    
                                                else
                                                    if assegna = 0 and conteggio11 = 0 then
                                                        conteggio11 = 1
                                                        lvlconteggio11 = low
                                                        assegna = 1
                                                        
                                                    else
                                                        if assegna = 0 and conteggio12 = 0 then
                                                            conteggio12 = 1
                                                            lvlconteggio12 = low
                                                            assegna = 1
                                                            
                                                        else
                                                            if assegna = 0 and conteggio13 = 0 then
                                                                conteggio13 = 1
                                                                lvlconteggio13 = low
                                                                assegna = 1
                                                                
                                                            else
                                                                if assegna = 0 and conteggio14 = 0 then
                                                                    conteggio14 = 1
                                                                    lvlconteggio14 = low
                                                                    assegna = 1
                                                                    
                                                                else
                                                                    if assegna = 0 and conteggio15 = 0 then
                                                                        conteggio15 = 1
                                                                        lvlconteggio15 = low
                                                                        assegna = 1
                                                                    endif
                                                                endif
                                                            endif
                                                        endif
                                                    endif
                                                endif
                                            endif
                                        endif
                                    endif
                                endif
                            endif
                        endif
                    endif
                endif
            endif
            
            
            if conteggio1 = 3 or conteggio2 = 3 or conteggio3 = 3 or conteggio4 = 3 or conteggio5 = 3 or conteggio6 = 3 or conteggio7 = 3 or conteggio8 = 3 or conteggio9 = 3 or conteggio10 = 3 or conteggio11 = 3 or conteggio12 = 3 or conteggio13 = 3 or conteggio14 = 3 or conteggio15 = 3 then
                mt = low
                mtverso = -1
                conteggio1=0
                conteggio2=0
                conteggio3=0
                conteggio4=0
                conteggio5=0
                conteggio6=0
                conteggio7=0
                conteggio8=0
                conteggio9=0
                conteggio10=0
                conteggio11=0
                conteggio12=0
                conteggio13=0
                conteggio14=0
                conteggio15=0
                lvlconteggio1=0
                lvlconteggio2=0
                lvlconteggio3=0
                lvlconteggio4=0
                lvlconteggio5=0
                lvlconteggio6=0
                lvlconteggio7=0
                lvlconteggio8=0
                lvlconteggio9=0
                lvlconteggio10=0
                lvlconteggio11=0
                lvlconteggio12=0
                lvlconteggio13=0
                lvlconteggio14=0
                lvlconteggio15=0
            endif
        endif
    endif
endif



return mt coloured by mt - low -1 as "MT"
 

Users who are viewing this thread

Alto