Ottimizzare funzione tempo

Forums ProRealTime forum Italiano Supporto ProOrder Ottimizzare funzione tempo

Viewing 15 posts - 1 through 15 (of 19 total)
  • #174105

    Ciao Roberto,  sai se c’è qualche snippetcode per ottimizzare il range temporale in cui opera un TS? (La mascherina dell’ottimizzazione non prende lo 0 (es, time = 010000) inoltre non è facile definire unità temporali inferiori ad 1H).

    Probabilmente occorre un codice con soltanto la funzione Time (senza defparam flat before – flatafter).

    A tal proposito, come scriveresti con soltanto la funzione Time questo codice (lo uso sul Dax a 15 minuti):

    DEFPARAM Flatbefore = 010000
    limitHour = time<204500

    Grazie

     

     

    #174108

    Questo è il sistema per 15 minuti.

    timel = time >=  A  and  time <= B

    Poi vai nelle variabili e metti come vedi nell’immagine.

    Ciao

     

    #174138

    Grazie Mauro per la risposta, ma non riesco ancora a fare quello che voglio.

    Ti chiederei: che calcolo hai fatto per ottenere nel passo 1500?

    Che scarto è quello con 1500: 15 minuti? (non mi sembra dal report)

    Se poi inserisco limitHour influisce?

    Questo è quello che esce su 200 unità (per minimizzare il calcolo) di:

    timeDay=time>=A and time<=B
    limitHour = time <204500

    con A tra: 10000 e 90000 e B tra 1730000 e 220000 (come è possibile che in B non si superano le 173000?)

     

     

     

    #174145

    Le ore sono sempre di 6 cifre, solo che  PRT le interpreta come numeri, togliendo gli zeri iniziali, per ottimizzare dalle 090000 alle 173000 con un passo di 15 minuti devi indicare 001500 (cioè 1500), se vuoi usare mezz’ora indicherai 003000 e per un’ora 010000.

     

    #174166

    Ciao Roberto, in teoria quello che hai scritto è chiaro, ma in pratica ancora la cosa non è chiara.

    Ottimizzando un TF a 15 minuti con passo 3000, dovrei avere intervalli di 30 minuti (come hai scritto).

    Ottimizzando A dall’1 di notte alle 9 di mattina e B dalle 17:30 alle 21:30 leggo (ad esempio):

    A = 34000 e B 179000

    Cosa significa?

     

    #174176

    Significa che hai sbagliato qualcosa.

    Parti da 010000 fino a 090000, con passo 003000. Indica sempre 6 cifre, senza preoccuparti se gli zeri iniziali vengono tolti.

     

    #174180

    Ho riprovato digitando 6 cifre, ma il risultato non cambia. Ecco il codice iniziale del Dax a 15 minuti con 10K e sotto la parte iniziale  dell’ottimizzazione completata.

    Non capisco dove può essere l’errore.

    DEFPARAM CumulateOrders=False
    timeDay=time>=A and time<=B

    #174188

    Ma non hai attivato il Walk Forward, anche con 1 solo passaggio.

    Dovrebbero  essere 153 combinazioni, non 378.

    Devi chiedere a PRT premendo Ctrl+M dalla piattaforma.

     

    1 user thanked author for this post.
    #174191

    Ciao Roberto, non capisco cosa c’entra il walkForward. E’ una modalità di ottimizzazione, si può usare o meno.

    Per quanto riguarda l’assistenza sinceramente preferisco farne a meno dato che ancora non mi hanno mai risolto un problema (è una descrizione non una critica!).

    Utilizzerò da ora solo il passo ad 1 ora che funziona, limitando così anche l’overfitting.

    Grazie per l’interessamento ed al prossimo problema!

     

    #174217

    Il problema non è che non funziona, è che ti ottimizza ogni mezz’ora, ma se tu sei su un grafico a 1 minuto o 5 minuti entra anche in orari diversi dai 30 minuti.

    Lui lavora in base alle tue condizioni sul grafico che stai usando, se gli chiedi di fare un’ottimizzazione ogni mezz’ora te la fa,  però questo è indipendente dall’entrate.

     

    #175130

    Ciao Roberto, stò riprovando ad ottimizzare la funzione tempo. Ti chiedo i seguenti punti (timeframe 15 minuti sul Dax):

    1) se ottimizzo la funzione TIME dal punto A (esempio ore 2o)  al punto B (esempio 22) con passo: 000500 = 5 minuti(scrivo sempre tutte e sei le cifre!) mi trova dei valori tipo: 211500, ma anche 217000. Sai se ci può essere un bug? Da te funziona così?

    2) //                                                               //                                                                                                      : 010000 = 1 ora                                                                      mi trova i valori corretti: 200000 – 210000 – 220000

    3) se provo ad ottimizzare defparam flatbefore/after con una variabile mi compare il seguente messaggio (vd  immagine). Sai il motivo?

    4) se volessi rimpiazzare defparam flatbefore = X e flat after = Y  con: cTime = time >= X and time <= Y, poi cosa devo scrivere-aggiungere nel codice per fargli chiudere  le operazione una volta superati questi orari come fa esattametne defparam?

    Grazie

     

     

    #175133

    Con DEFPARAM (come con TIMEFRAME) n0n si possono usare variabili, quindi non sono ottimizabili, devi variarli manualmente tu per ogni prova che vuoi fare, oppure le rimpiazzi col codice.

    Per chiudere ad una certa ora (sostituisce DEFPARAM FLATAFTER):

    Per operare solo dopo una certa ora (sostituisce DEFPARAM FLATBEFORE), puoi anche metterci un’orario di fine operatività:

    Per quanto riguarda il bug, non è un bug, secondo me non stai usando un TF a 5 minuti. A me funziona correttamente.

     

     

     

    #175136

    Provo il tuo esempio sopra per rimpiazzare defparam con time.

    Ecco intanto cosa esce nel  TF  a 5 minuti.

    #175138

    TF 5 minuti

    #175142

    Ah…. adesso ho capito cosa vuoi dire. E’ normale, sono numeri non date, quindi non puoi evitarlo. Dopo 205500 c’è 206000 (non 210000).

    ProRelaTime supporta solo il tipo di dati numerico.

     

Viewing 15 posts - 1 through 15 (of 19 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login