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

popov

Coito, ergo cum.
salve a tutti a me servirebbe un codice per prt sul fib che compra quando il prezzo è sopra la mm16 e shoorta sotto la mm16 su time frame giornaliero qualcuno mi può aiutare che vorrei fare un backtest ma sono impedito, grazie
ciao

essendo timeframe daily parto dal presupposto che il calcolo debba essere fatto sul close daily precedente e l'ingresso avvenga in open se la condizione è soddisfatta.

cosa diversa è se vuoi l'ingresso in tempo reale. fammi sapere che al limite modifico il codice.

questo codice funziona su tutti i timeframe, quindi in fase di backtest scegli il timeframe che ti serve.

Codice:
if (close > average[16](close)) then
	if (shortonmarket) then
		exitshort 1 shares at market nextbaropen
	endif
	buy 1 shares at market nextbaropen
elsif (close < average[16](close)) then
	if (longonmarket) then
		sell 1 shares at market nextbaropen
	endif
	sellshort 1 shares at market nextbaropen
endif

tieni presente che non esiste stoploss (non hai dato indicazioni al riguardo) il ts semplicemente inverte la posizione quando la mm16 viene tagliata verso l'alto o verso il basso. quindi sta sempre in posizione e mai flat.

a dire la verità c'è un caso - uno solo - in cui rimane flat. vediamo se lo indovini. ;)

hope this helps
 

f4f

翠鸟科
ciao

essendo timeframe daily parto dal presupposto che il calcolo debba essere fatto sul close daily precedente e l'ingresso avvenga in open se la condizione è soddisfatta.

cosa diversa è se vuoi l'ingresso in tempo reale. fammi sapere che al limite modifico il codice.

questo codice funziona su tutti i timeframe, quindi in fase di backtest scegli il timeframe che ti serve.

Codice:
if (close > average[16](close)) then
    if (shortonmarket) then
        exitshort 1 shares at market nextbaropen
    endif
    buy 1 shares at market nextbaropen
elsif (close < average[16](close)) then
    if (longonmarket) then
        sell 1 shares at market nextbaropen
    endif
    sellshort 1 shares at market nextbaropen
endif
tieni presente che non esiste stoploss (non hai dato indicazioni al riguardo) il ts semplicemente inverte la posizione quando la mm16 viene tagliata verso l'alto o verso il basso. quindi sta sempre in posizione e mai flat.

a dire la verità c'è un caso - uno solo - in cui rimane flat. vediamo se lo indovini. ;)

hope this helps


posso ?? ;)
 

f4f

翠鸟科
Un saluto a tutti e ancora scusate ma il tempo è ancora poco :rolleyes:



Ciao Cristian
non posso aiutarti molto perché con lucchetto aperto e chiuso non sono mai riuscito a fare niente :wall::wall::wall::wall: (ho anche sospettato che fosse possibile solo per chi ha il real time, cosa che non ho) ma mi sembra che nei piani di lavoro puoi salvare solo cose come colori e stile del grafico, indicatori ecc. ma non gli oggetti che disegni sul grafico (frecce, trendline ...). Insomma non penso che si possa risolvere il tuo problema ... ma invece di fare tutto a mano perché non scrivi un codice per il tuo ts usando il ProBackTest di PRT che tra l'altro ti permette di salvare i ts e riapplicarli quando vuoi?
Lo so, non basta per l'amarone, vedrò di impegnarmi di più :lol:



Ciao Clic, visto che calcoli xopen facendo riferimento al valore di xopen nella barra precedente devi dare un valore iniziale altrimenti il calcolo non partirà mai, ed infatti non ti disegna niente e anzi si pianta ...

Fai una cosa così
Codice:
if barindex = 0 then
    xopen = valoreiniziale
else
    xopen=(xopen[1]+close[1])/2
endif

RETURN xopen
Dove valoreiniziale può essere o una variabile o qualcosa di calcolato sui parametri della prima barra (non so, (open + close)/2 ad esempio), vedi tu visto che non so cosa vuoi ottenere.

Con te sono in debito della traslazione del SAR, come dicevo giorni addietro avrei prima di tutto dovuto scrivere il codice per esteso del SAR. Credo di avercela fatta (a meno magari dei valori prima del primo/secondo cambio di verso, PRT li calcola in modo curioso ...). Ecco il codice, buttato giù un po' di fretta ...

Codice:
REM Codice esplicito SAR

if barindex = 0 then
    ww = low
elsif barindex = 1  then
    if low >= low[1] then
        ww = ww[1]
        ep = Max(high,high[1])
    else
        ww = high[1]
        ep = low
        colore = -1
        af = valiniziale
    endif
elsif barindex = 2 and ww[1] = ww[2] then
    af = valiniziale
    if low >= ww[1] then
        ww = ww[1]
        ep = Max(high,ep[1])
        colore = 1
    else
        ww = ep[1]
        ep = low
        colore = -1
    endif
else
    ww = ww[1] + af[1]*(ep - ww[1])
    if colore = 1 then
        if ww > low[1]or ww > low[2] then
            ww = Min(low[1],low[2])
        endif
        if low < ww then
            ww = ep
            ep = low
            af = valiniziale
            colore = -1
        elsif high > ep then
            ep = high
            af = Min (af[1]+step,valmax)
        endif
    else
        if ww < high[1]or ww < high[2] then
            ww = Max(high[1],high[2])
        endif
        if high > ww then
            ww = ep
            ep = high
            af = valiniziale
            colore = 1
        elsif low < ep then
            ep = low
            af = Min (af[1]+step,valmax)
        endif
    endif
endif

return ww
Varibili da inserire valiniziale, step, valmax che sono rispettivamente il valore iniziale dell'accelerazione, lo step con cui viene aumentata l'accelerazione, il valore massimo dell'accelerazione. I valori classici sono rispettivamente 0,02 0,02 0,2

Ecco un grafico con il Parabolic SAR di PRT con i puntini e il risultato del codice, coincidono

1296691183estoxx50full0311future.png


Per traslare il sar bisognerà mettere al posto di high e low gli high e low traslati (o almeno credo e spero) ... ma per quello ci risentiamo domani

:ciao:


bellissimo :) :up:
 

2tempista

Forumer attivo
ciao

essendo timeframe daily parto dal presupposto che il calcolo debba essere fatto sul close daily precedente e l'ingresso avvenga in open se la condizione è soddisfatta.

cosa diversa è se vuoi l'ingresso in tempo reale. fammi sapere che al limite modifico il codice.

questo codice funziona su tutti i timeframe, quindi in fase di backtest scegli il timeframe che ti serve.

Codice:
if (close > average[16](close)) then
	if (shortonmarket) then
		exitshort 1 shares at market nextbaropen
	endif
	buy 1 shares at market nextbaropen
elsif (close < average[16](close)) then
	if (longonmarket) then
		sell 1 shares at market nextbaropen
	endif
	sellshort 1 shares at market nextbaropen
endif

tieni presente che non esiste stoploss (non hai dato indicazioni al riguardo) il ts semplicemente inverte la posizione quando la mm16 viene tagliata verso l'alto o verso il basso. quindi sta sempre in posizione e mai flat.

a dire la verità c'è un caso - uno solo - in cui rimane flat. vediamo se lo indovini. ;)

hope this helps

flat quando chiude sulla media :-o grazie anche se lo cercavo in tempo reale per cercare di limitare lo slippage , nonostante il backtest penso che ci siano cmq problemi di slippage poichè su barre con tf inferiore dovrebbe crossare + volte la suddetta media :rolleyes: cmq ho fatto il backtest e con quel codice non và fà solo una o 2 operazioni.
 

popov

Coito, ergo cum.
cmq ho fatto il backtest e con quel codice non và fà solo una o 2 operazioni.
strano: a me invece le operazioni le esegue regolarmente. ho messo pure la mm16 in blu sul grafico. ecco il risultato. i parametri in "gestione capitale" sono corretti?
 

Allegati

  • mm16.png
    mm16.png
    34,4 KB · Visite: 988

f4f

翠鸟科
strano: a me invece le operazioni le esegue regolarmente. ho messo pure la mm16 in blu sul grafico. ecco il risultato. i parametri in "gestione capitale" sono corretti?


questo tuo grafo ( potrei sbagliarmi, data l'ora ... il caffè non mi entra in circolo fino alle 11 almeno :wall::wall:)
è un grafo tipico di un TS su medie

due note, se mi permetti :help::help:
1 aggiungere un filtro di trend ... ADX o RAVI
1b mettere un trigger di direzione : opero long solo se .... ad es, se close(1) > close(30)

2 e forse più interessante (cioè :wall: adesso sto studiando questa cosa) : i TS su MM perdono anche le la pendenza è troppo bassa, pur avendo un trend: penZavo di fare una analisi della pendenza della mm di riferimento ...


ciao :):)
 

2tempista

Forumer attivo
popov come mai hai fatto il backtest nei dintorni del 2005? forse ho capito perchè non mi và il backtest, allora a quanto pare una sola media mobile così corta anche su tf daily dà troppi falsi segnali, quindi il presupposto di usarla come trend follower anche a corto periodo è sbagliata, proviamo con una da 40
 

2tempista

Forumer attivo
allora grazie popov ora funziona avevo sbagliato io questo è il risultato con la mm40 e il risultato non mi piace per niente, a guardare le frecce sembra che il ts entra molte barre dopo e addirittura certi trade entra short stando sopra la mm di riferimento!! allora o mi sfugge qualcosa o il backtest non è affidabile
1296983922mm40.jpg


ps come si fà a postare l'immagine + grande?
 

Users who are viewing this thread

Alto