Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ...

:up:

più che i complmenti e vedere che il risultato è identico purtroppo non posso fare ..... non so un acca di Vb e con excel arranco...... infatti ti volevo chiedere se voglio cambiare il periodo di settaggio immaggino che devo sostituire il numero nella cella F-1 ma poi come faccio a fargli ricalcolare le colonne e il grafico????


grazie Tetsuo :)
il settaggio è in A1 , la % di calcolo
in A2 fissa il numero di righe su cui calcola
il resto è automatico , ricalcolo incluso
al limite si deve solo settare la scala del grafico
(e a parte la tabella in W2-AD35, che calcola medie e stddev dei diversi 'cicli' ... è da implementare ogni volta col copiaincolla, se si vuole)

la riga 1, a parte le colonne A e B , è solo un aiuto alla programmazione :help: non ho fatto pulizia :help:

grazie del feedback :):) e ancora complimenti per il codice originale :up:
 
Chi mi risolve il seguente problema?

Vorrei creare un ts che mi vada long o short al verificarsi di una serie di condizioni miste:

- se sono vere due tra tre condizioni (esempio C1, C2, C3) chiusura eventuale di posizioni short aperte e long di un contratto
- se le condizioni vere diventano (o sono) tre long di un ulteriore contratto
- se è solo una la condizione vera chiusura delle posizioni long e reverse short di un contratto
- se le condizioni sono tutte false short di un ulteriore contratto


Qualcuno mi può aiutare?
Grazie
 
Chi mi risolve il seguente problema?

Vorrei creare un ts che mi vada long o short al verificarsi di una serie di condizioni miste:

- se sono vere due tra tre condizioni (esempio C1, C2, C3) chiusura eventuale di posizioni short aperte e long di un contratto
- se le condizioni vere diventano (o sono) tre long di un ulteriore contratto
- se è solo una la condizione vera chiusura delle posizioni long e reverse short di un contratto
- se le condizioni sono tutte false short di un ulteriore contratto


Qualcuno mi può aiutare?
Grazie

in VB non è impossibile ...

se C1=vero then ac1=1
se C2=vero then ac2=1
se C3=vero then ac3=1

se ac1+ac2+ac3=2 then long di uno e LL=1 (segnale di operazione long)
se ac1+ac2+ac3=3 then long di due e LL=1
se ac1+ac2+ac3=1 o zero, then ( se LL=1, close) else short di uno e SS=1
se ac1+ac2+ac3<2, then ( se LL=1, close) else short di uno e SS=1
ecc

scusa la sintesi
 
in VB non è impossibile ...

se C1=vero then ac1=1
se C2=vero then ac2=1
se C3=vero then ac3=1

se ac1+ac2+ac3=2 then long di uno e LL=1 (segnale di operazione long)
se ac1+ac2+ac3=3 then long di due e LL=1
se ac1+ac2+ac3=1 o zero, then ( se LL=1, close) else short di uno e SS=1
se ac1+ac2+ac3<2, then ( se LL=1, close) else short di uno e SS=1
ecc

scusa la sintesi


Mi son dimenticato di aggiungere che lo volevo scritto per ProRealTime, ma mi hai dato un'idea, vedrò di provarci...

Grazie
 
Mi son dimenticato di aggiungere che lo volevo scritto per ProRealTime, ma mi hai dato un'idea, vedrò di provarci...

Grazie


sì, il trucco è nelle prime tre righe ;)
puoi anche fare
se C1=falso then ac1=-1
se C2=falso then ac2=-1
se C3=falso then ac3=-1

poi poi gestirti i valori da +3 a -3 , con 1 zero e -1 come flat
 
Chi mi risolve il seguente problema?

Vorrei creare un ts che mi vada long o short al verificarsi di una serie di condizioni miste:

- se sono vere due tra tre condizioni (esempio C1, C2, C3) chiusura eventuale di posizioni short aperte e long di un contratto
- se le condizioni vere diventano (o sono) tre long di un ulteriore contratto
- se è solo una la condizione vera chiusura delle posizioni long e reverse short di un contratto
- se le condizioni sono tutte false short di un ulteriore contratto


Qualcuno mi può aiutare?
Grazie


Ciao Barat

hai descritto troppo poco il contesto... così non si capisce molto bene cosa intendi!
Manca del tutto, se c'è, il rapporto sequenziale tra le condizioni, e se non c'è, non si capisce la sequenzialità che descrivi sulle posizioni .

Riguardo all'altro post ......
PRT non gestisce posizioni di hedging e quindi se sei long, metti di 10 fib, e dai ordine di vendida short di 1 contratto lui interpreta come chiusura di tutti i contratti long e apertura short di 1.
 
Ciao Barat

hai descritto troppo poco il contesto... così non si capisce molto bene cosa intendi!
Manca del tutto, se c'è, il rapporto sequenziale tra le condizioni, e se non c'è, non si capisce la sequenzialità che descrivi sulle posizioni .

Riguardo all'altro post ......
PRT non gestisce posizioni di hedging e quindi se sei long, metti di 10 fib, e dai ordine di vendida short di 1 contratto lui interpreta come chiusura di tutti i contratti long e apertura short di 1.


Ciao Tetsuo e grazie.

Cerco di essere più chiaro, almeno spero. Il TS dovrebbe essere sempre nel mercato, o con 2 long o con 1 long o con 1 short o con 2 short, il passaggio tra una posizione è l'altra è contemporaneo.

Ho creato il codice sotto ma non mi apre i contratti come vorrei:


if close >= MM1 then
C1 = 1
elsif close < MM1 then
C1 = 0
endif

if VM crosses over 0 then
C2 = 1
elsif VM crosses under 0 then
C2 = 0
endif

if RS crosses over 0 then
C3 = 1
elsif RS crosses under 0 then
C3 = 0
endif

once Posizione = 0
Posizione = C1 + C2 + C3
 
 
if Posizione = 0 then
if shortonmarket then
// dovrebbe esserci un contratto short aperto quindi ne aggiungo uno
sellshort 1 shares at market thisbaronclose
else
// qualsiasi sia la posizione vanno aperti due short e chiusi i long
sellshort 2 shares at market thisbaronclose
endif
endif

If Posizione = 1 then
if shortonmarket then
// se sono posizionato short arrivo da Posizione = 0 devo chiudere un contratto
exitshort 1 shares at market thisbaronclose
else
// ci sono uno o più contratti long
sellshort 1 shares at market thisbaronclose
endif
endif

If Posizione = 2 then
if longonmarket then
// se sono posizionato long arrivo da Posizione = 3 devo chiudere un contratto
sell 1 shares at market thisbaronclose
else
// ci sono uno o più contratti short
buy 1 shares at market thisbaronclose
endif
endif

If Posizione = 3 then
if longonmarket then
// dovrebbe esserci un contratto long aperto quindi ne aggiungo uno
buy 1 shares at market thisbaronclose
else
// qualsiasi sia la posizione vanno aperti due long e chiusi gli short
buy 2 shares at market thisbaronclose
endif
endif
 
 
 
 
 
Ho creato un indicatore che mi ritorna il valore di Posizione e non corrisponde con il numero di contratti che si aprono e chiudono sul backtest del TS che ho postato.

Sono un po' una frana :-(
 
Ultima modifica:
Ciao Tetsuo e grazie.

Cerco di essere più chiaro, almeno spero. Il TS dovrebbe essere sempre nel mercato, o con 2 long o con 1 long o con 1 short o con 2 short, il passaggio tra una posizione è l'altra è contemporaneo.

Ho creato il codice sotto ma non mi apre i contratti come vorrei:



allora se non l'hai già fatto devi attivare in "gestione Capitale" l'opzione "Accumula Posizioni".

Fatto questo poi devi modificare il codice in modo tale da gestire il conto delle posizioni attive altrimenti il TS aprira una nuova posizione ogni nuova barra barra. (es Se sei shortonmarket e posizione=0 è vero per più barre consecutive il ts ti aggiunge un contratto ogni volta ).

Puoi ovviare in 2 modi, e tra i due io ti consiglio il secondo in quanto meglio strutturato:

1) dopo il rigo Posizione=c1+c2+c3 metti

Codice:
if Posizione<>posizione[1]then

         [I] qui metti tutte le altre condizioni d'ordine[/I]

endif

2) aggiungi nelle condizioni di ordine il conteggio dei contratti attivi

Codice:
................
if Posizione = 0 then
	if shortonmarket and countofshortshares=1  then
		// dovrebbe esserci un contratto short aperto quindi ne aggiungo uno
		sellshort 1 shares at market thisbaronclose
	elsif not shortonmarket then
		// qualsiasi sia la posizione vanno aperti due short e chiusi i long
		sellshort 2 shares at market thisbaronclose
	endif
endif

If Posizione = 1 then
	if shortonmarket and countofshortshares=2 then
		// se sono posizionato short arrivo da Posizione = 0 devo chiudere un contratto
		exitshort 1 shares at market thisbaronclose
	elsif longonmarket then
		// ci sono uno o più contratti long
		sellshort 1 shares at market thisbaronclose
	endif
endif

If Posizione = 2 then
	if longonmarket and countoflongshares=2 then
		// se sono posizionato long arrivo da Posizione = 3 devo chiudere un contratto
		sell 1 shares at market thisbaronclose
	elsif longonmarket then
		// ci sono uno o più contratti short
		buy 1 shares at market thisbaronclose
	endif
endif

If Posizione = 3 then
	if longonmarket and countoflongshares=1 then
		// dovrebbe esserci un contratto long aperto quindi ne aggiungo uno
		buy 1 shares at market thisbaronclose
	elsif not longonmarket then
		// qualsiasi sia la posizione vanno aperti due long e chiusi gli short
		buy 2 shares at market thisbaronclose
	endif
endif


Non son fatti miei ma pensare di inserire un ordine "thisbaronclose" è paradossale ..... con PRT ancora di più.
 
allora se non l'hai già fatto devi attivare in "gestione Capitale" l'opzione "Accumula Posizioni".

Fatto questo poi devi modificare il codice in modo tale da gestire il conto delle posizioni attive altrimenti il TS aprira una nuova posizione ogni nuova barra barra. (es Se sei shortonmarket e posizione=0 è vero per più barre consecutive il ts ti aggiunge un contratto ogni volta ).

Puoi ovviare in 2 modi, e tra i due io ti consiglio il secondo in quanto meglio strutturato:

1) dopo il rigo Posizione=c1+c2+c3 metti

Codice:
if Posizione<>posizione[1]then
 
         [I]qui metti tutte le altre condizioni d'ordine[/I]
 
endif

2) aggiungi nelle condizioni di ordine il conteggio dei contratti attivi

Codice:
................
if Posizione = 0 then
    if shortonmarket and countofshortshares=1  then
        // dovrebbe esserci un contratto short aperto quindi ne aggiungo uno
        sellshort 1 shares at market thisbaronclose
    elsif not shortonmarket then
        // qualsiasi sia la posizione vanno aperti due short e chiusi i long
        sellshort 2 shares at market thisbaronclose
    endif
endif
 
If Posizione = 1 then
    if shortonmarket and countofshortshares=2 then
        // se sono posizionato short arrivo da Posizione = 0 devo chiudere un contratto
        exitshort 1 shares at market thisbaronclose
    elsif longonmarket then
        // ci sono uno o più contratti long
        sellshort 1 shares at market thisbaronclose
    endif
endif
 
If Posizione = 2 then
    if longonmarket and countoflongshares=2 then
        // se sono posizionato long arrivo da Posizione = 3 devo chiudere un contratto
        sell 1 shares at market thisbaronclose
    elsif longonmarket then
        // ci sono uno o più contratti short
        buy 1 shares at market thisbaronclose
    endif
endif
 
If Posizione = 3 then
    if longonmarket and countoflongshares=1 then
        // dovrebbe esserci un contratto long aperto quindi ne aggiungo uno
        buy 1 shares at market thisbaronclose
    elsif not longonmarket then
        // qualsiasi sia la posizione vanno aperti due long e chiusi gli short
        buy 2 shares at market thisbaronclose
    endif
endif


Non son fatti miei ma pensare di inserire un ordine "thisbaronclose" è paradossale ..... con PRT ancora di più.


Grazie mille, gentilissimo come sempre.
A dirla tutta questo è il mio primo tentativo con un backtest quindi ho messo la prima istruzione che capitava. Lo sto sperimentando su barre daily.
Ora sostituirò "thisbaronclose" con "nextbaropen".

Diciamo che chiamarlo TS è un complimento eccessivo al codice ;-)
Farò un giro sui forum in internet e cercherò qualche post sui backtest con prorealtime, su cosa fare per averli credibili.

Ogni consiglio è ben accetto.
 
Scusate la domanda banale, ma non trovo risposta.
Se voglio visualizzare tutte le azioni trattate a piazza affari (mib, midcap, star ecc..) come devo fare?
 

Users who are viewing this thread

Back
Alto