Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ... (4 lettori)

giorosa2000

Utente Senior.. d'età
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ù.

Tetsuo, forse ne abbiamo già parlato.
Ma perchè dici che è paradossale mettere "thisbaronclose". Con questo segnale tu vedi l'esecuzione solo all'apertura della nuova candela e l'equity risulta come se il segnale fosse stato eseguito in chiusura. Con " nextbaropen" ti trovi il segnale ritardato ancora di un giorno...... :)
 

tetsuo

Guest
Tetsuo, forse ne abbiamo già parlato.
Ma perchè dici che è paradossale mettere "thisbaronclose". Con questo segnale tu vedi l'esecuzione solo all'apertura della nuova candela e l'equity risulta come se il segnale fosse stato eseguito in chiusura. Con " nextbaropen" ti trovi il segnale ritardato ancora di un giorno...... :)


Ciao giorosa

Ricordi bene ne avevamo parlato nell'altro 3d su PRT

La frase che ho scritto a Barat voleva intendere 2 concetti il primo logico temporale: ancora non capisco come sia possibile conciliare l'immissione di un ordine in chiusura su un segnale daily che scatta alla chiusura stessa! E questo è un dubbio che avrei con qualsiasi piattaforma! Cioè a livello temporale stretto come faccio ad operare in chiusura se devo attendere la stessa per avere il segnale?

Con PRT è ancora più strano il tutto e questo era il secondo concetto espresso: PRT come abbiamo detto nell'altro 3d mostra il segnale di vendita in chiusura di barra nella barra successiva! Ovvero su scala daily io vedro il segnale la mattina dopo (se ho il RT altrimenti la sera successiva dopo la chiusura!!!!!)!!! A dire il vero con PRT anche un ordine "nextbaropen" risulta un po' "paradossale" in quanto come sai il segnale ti viene mostrato dopo l'asta, sempre se hai il RT altrimenti la free ti da il segnale la sera.
Però almeno in questo caso il Backtest non risulta completamente sfalzato (o almeno non troppo) e l'operatività reale potrà essere affidata ad altri metodi (indicatori del segnale creati ad arte con probuilder magari ;))

Spero di non aver creato troppa confusione e sopratutto di non aver detto troppe inesattezze! Come ti dissi nell'altro post io alla fine non uso TS ed in questo campo sei sicurtamente più ferrato tu che hai esperienze di uso dirette. Quindi ti prego se ho scritto delle inesattezze non esitare a correggermi :up:!
 

Jolly Roger

L'eretico
Carissimi, è una domanda che avevo fatto tanto tempo fa a Tetsuo, e Tetsuo mi aveva anche risposto, ma adesso ho dimenticato dove si trova la risposta :D

Prorealtime consente il DHigh, DLow, DClose, Dopen. La D sta per Daily

Mi domando come si facciano a ricreare gli stessi valori hourly.

Insomma come creare HHigh, HLow, HClose, Hopen
Idem per il Weekly: WHigh WLow Wclose e Wopen e ....monthly

Thanks
:)
 
Ultima modifica:

tetsuo

Guest
Carissimi, è una domanda che avevo fatto tanto tempo fa a Tetsuo, e Tetsuo mi aveva anche risposto, ma adesso ho dimenticato dove si trova la risposta :D

Prorealtime consente il DHigh, DLow, DClose, Dopen. La D sta per Daily

Mi domando come si facciano a ricreare gli stessi valori hourly.

Insomma come creare HHigh, HLow, HClose, Hopen
Idem per il Weekly: WHigh WLow Wclose e Wopen e ....monthly

Thanks
:)

Ciao Black ho ritrovato il messaggio dove ti mandavo il codice per i valori settimanali :)

Questo è il codice per i valori settimanali (settimana in corso)

Codice:
if dayofweek<dayofweek[1] then
wopen=open
whigh=high
wlow=low
wclose=close
endif

if high>whigh then
whigh=high
endif
if low<wlow then
wlow=low
endif

wclose=close

return wopen, whigh, wlow, wclose


Per avere i valori orari penso che basti cambiare leggermente il codice

Codice:
If hour<>hour[1] then

hopen=open
hhigh=high
hlow=low
hclose=close
endif

if high>hhigh then
hhigh=high
endif
if low<hlow then
hlow=low
endif

hclose=close

return hopen, hhigh, hlow, hclose



Ciao
:bye:
 

Jolly Roger

L'eretico
Ciao Black ho ritrovato il messaggio dove ti mandavo il codice per i valori settimanali :)

Questo è il codice per i valori settimanali (settimana in corso)

Codice:
if dayofweek<dayofweek[1] then
wopen=open
whigh=high
wlow=low
wclose=close
endif

if high>whigh then
whigh=high
endif
if low<wlow then
wlow=low
endif

wclose=close

return wopen, whigh, wlow, wclose


Per avere i valori orari penso che basti cambiare leggermente il codice

Codice:
If hour<>hour[1] then

hopen=open
hhigh=high
hlow=low
hclose=close
endif

if high>hhigh then
hhigh=high
endif
if low<hlow then
hlow=low
endif

hclose=close

return hopen, hhigh, hlow, hclose



Ciao
:bye:


Grazie super TET :up: :) ti sono riconoscente. Magari prima o poi ci si incontra. Ti devo un pranzo e una cena :)
 

Mizy

Nuovo forumer
Avrei bisogno che qualche anima pia mi aiutasse a programmare il grafico costituito da:
indice ftsemib e le velocita' delle medie mobili a 50 ore, 100 ore, 200 ore.
tutto sullo stesso grafico.
Mi rimetto al vostro buon cuore.
grazie a tutti.
 

Barat

Forumer attivo
Fino ad oggi ho sempre e solo chiesto, per la prima volta pubblico un indicatore, piccolo piccolo, forse già esistente in internet, ma l'ho fatto da me.

L'indicatore individua le barre inside e per ogni barra inside cerca entro quante barre sono compresi i minimi e i massimi della barra stessa. Il principio parte dalla ricerca di eventuali NR4 bar (Narrow Range 4).

Lo scopo è di individuare situazioni potenziali di compressione di volatilità e possibili ingressi sui breakout.

Consiglio di scegliere lo stile istogramma per Inside e NR4, Inside ha valore -1 o 0 (-1 significa che la barra è inside), NR4 assume valore da 1 a infinito (c'è un limite a 50 per evitare ciclo infinito) maggiore è il numero di NR4 e maggiori sono le barre dove i massimi e i minimi delle precedenti includono l'inside e maggiore è la compressione di volatilità.

Ritengo abbia senso usarlo in intraday, su grafici daily non ho visto grandi valori di NR4.


//////////ID_NR4///////////////
if barindex < 3 then
Inside = 0
else
if High < High[1] and Low > Low[1] then
Inside = -1
else
Inside = 0
endif
if Inside = -1 then
p = 2
Nr4 = 1
While High <= High[p] and Low >= Low[p] and p<50 do
Nr4 = p
p = p + 1
Wend
else
Nr4 = 0
endif
endif
Return Inside, Nr4
///////////////////////////////
 

Barat

Forumer attivo
Esiste in prorealtime un comando che corrisponda al comando AFL di amibroker valuewhen ?

se voglio sapere nei 20gg passati il progressivo della barra il cui valore è il massimo degli stessi 20gg come faccio?


io per ora non ho trovato di meglio di pensare ad un ciclo FOR:

Codice:
n = 0
BarraMassimo = barindex - 20
for n = 0 to 20
   if high[n] > High[barindex-BarraMassimo] then
      BarraMassimo = barindex - n
   endif
next
 
Ultima modifica:

Users who are viewing this thread

Alto