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

meursault

lo straniero
Un saluto a tutti e ancora scusate ma il tempo è ancora poco :rolleyes:

Buon giorno a tutti.Vorrei chiedervi se qualcuno ha riscontrato ed è riuscito a risolvere un problemino di settaggio piattaforma proreal..all'assistenza dopo 3 segnalazioni ed 1 mese di attesa non ho ricevuto risposta.
Dunque io lavoro solo su eurex (dax e bund).Time frame 1 o 2 minuti.Grazie a voi ho semplificato notevolmente i test con codici che rendono la situazione di mercato visiva di colori,linee,swing.Quindi salvato un piano di lavoro "pulito" ma con con caricati i codici,non resta che inserire le freccette rosse e verdi per un backtest manuale dove poi andro' a trascrivere i prezzi in excel per calcolare positivita',target ottimale,drawdown,equity.Benissimo,9 volte su 10 i dati fanno schifo e butto tutto nel cestino..Ma di tanto in tanto qualcosa di interessante rimane e lo vorrei tenere.Ma come?Salvo un nuovo piano di lavoro con nome qualsiasi dove poi lo vedo comparire nella lista personale dei piani di lavoro.Premetto che ho provato a salvare uno stesso grafico "finito" di centinaia di freccette rosse verdi su grafico con la X rossa,lucchetto concatenato,lucchetto aperto.Bene,ora se riapro un grafico dello stesso mercato con lo stesso time frame,le freccette rosse e verdi ricompaiono ma,dovendo ricominciare un nuovo test le devo cancellare (tasto destro e "cancella tutti gli oggetti").Il dispiacere è che le cancella anche dal piano di lavoro salvato in precedenza....poco male se tutti i valori sono in excell ma li vorrei ugualmente..il nuovo piano invece dovra' essere pulito..
grazie a tutti e buon lavoro
cristian
ps per meursault:in cantina c'è una bottiglia di amarone della valpolicella che aspetta..

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:

xopen=(xopen[1]+close[1])/2

RETURN xopen


Perchè non disegna niente?:-?

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:
 

Clic

Forumer storico
Un saluto a tutti e ancora scusate ma il tempo è ancora poco :rolleyes:


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:

Innanzi tutto lasciami dire che sei un grande. :clap::clap::clap:Ma non pretendevo che ti riscrivessi addirittura il codice del SAR.
Il problema dell'xopen l'ho risolto con l'istruzione IntradayBarIndex. Tuttavia non pensavo che ci fosse bisogno dell'assegnazione iniziale. Ad esempio se utilizzi "Close" non devi dichiarare nulla.
 

Clic

Forumer storico
Ciao, qualche esperto è in grado di tradurre in linguaggio di prorealtime questi due indicatori in linguaggio tradestation?:bow:


Premetto che conosco poco entrambi i linguaggi
Quindi non mi assumo responsabilità.
Questo è Rb-1.

LongLeg=35
ShortLeg=5
MultiLeg=10
MultiW=1

ShortWeight = 2/(ShortLeg+1)
LongWeight = 2/(LongLeg+1)

If TempSyncS = 0 then
SyncShort = Close
SyncLong = Close
Else
SyncShort = TempSyncS*(1-ShortWeight)+(ShortWeight*Close)
SyncLong = TempSyncL*(1-LongWeight)+(LongWeight*Close)
Endif

TempSyncS = SyncShort
TempSyncL = SyncLong

MultiOsc = (100*((SyncShort/SyncLong)-1))

MultiWeight = 2/(MultiLeg+1)

If TempSyncM = 0 then
SyncMulti = MultiOsc
Else
SyncMulti = (Abs(TempSyncM) * (1 - MultiWeight)) + (MultiWeight * MultiOsc)
Endif

TempSyncM = SyncMulti
MultiHigh = SyncMulti*Multiw
MultiLow = -1*MultiHigh


RETURN MultiOsc As "MO", MultiHigh As "MH", MultiLow As "ML"
 

max3001

Forumer attivo
Premetto che conosco poco entrambi i linguaggi
Quindi non mi assumo responsabilità.
Questo è Rb-1.

LongLeg=35
ShortLeg=5
MultiLeg=10
MultiW=1

ShortWeight = 2/(ShortLeg+1)
LongWeight = 2/(LongLeg+1)

If TempSyncS = 0 then
SyncShort = Close
SyncLong = Close
Else
SyncShort = TempSyncS*(1-ShortWeight)+(ShortWeight*Close)
SyncLong = TempSyncL*(1-LongWeight)+(LongWeight*Close)
Endif

TempSyncS = SyncShort
TempSyncL = SyncLong

MultiOsc = (100*((SyncShort/SyncLong)-1))

MultiWeight = 2/(MultiLeg+1)

If TempSyncM = 0 then
SyncMulti = MultiOsc
Else
SyncMulti = (Abs(TempSyncM) * (1 - MultiWeight)) + (MultiWeight * MultiOsc)
Endif

TempSyncM = SyncMulti
MultiHigh = SyncMulti*Multiw
MultiLow = -1*MultiHigh


RETURN MultiOsc As "MO", MultiHigh As "MH", MultiLow As "ML"


Grazie, sembra proprio funzionare. Adesso lo studio un pò. Secondo te sarebbe possibile rendere variabili MO,MH e ML?
Max
 

2tempista

Forumer attivo
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
 

popov

Coito, ergo cum.
Il problema dell'xopen l'ho risolto con l'istruzione IntradayBarIndex. Tuttavia non pensavo che ci fosse bisogno dell'assegnazione iniziale. Ad esempio se utilizzi "Close" non devi dichiarare nulla.
ciao a tutti.

"Close" è una variabile interna di PRT e rappresenta il valore di chiusura della candela in esame. non devi inizializzarla proprio perché è PRT che te la fornisce già bella e pronta.

xopen invece è una variabile che definisci tu e come tale non ha un valore predeterminato e pertanto deve essere inizializzata con una prima assegnazione.
 

Users who are viewing this thread

Alto