Istruzioni tecniche e uso del codice
Forums › ProRealTime forum Italiano › Supporto ProScreener › Istruzioni tecniche e uso del codice
- This topic has 64 replies, 2 voices, and was last updated 4 years ago by
robertogozzi.
-
-
04/22/2020 at 4:19 PM #127476
Buongiorno a tutti, spero di essere nel forum corretto e la richiesta sia compatibile allo spirito dello stesso .
Mi rivolgo a chi possa darmi un aiuto/supporto sui seguenti codici di programmazione che ho trovato navigando all’interno del forum, spiegandomi con un esempio pratico l’obiettivo al fine di comprendere al meglio il risultato finale.routine copiata a da analizzare :
123456789TIMEFRAME(Weekly)c1 = Volume > Volume[10]p = 20Upper = HIGHEST[p](HIGH[1])//Lower = LOWEST[p](LOW[1])Distanza = 0.2 * pipsizec2 = close >= (Upper – Distanza)c1 = Volume > Volume[10] :
il valore (10) indica il numero di azioni scambiate nei giorni precedenti (10) oppure indica un giorno specifico (-10 gg) rispetto alla data corrente ?
in ottica di operazioni long, è corretto questa formula, oppure è consigliabile usare AVG? se affermativo come sarebbe l’istruzione corretta ?p = 20
Upper = HIGHEST[p](HIGH[1]) : è il prezzo massimo raggiunto nelle ultime 20 giornate (time frame settimanale) rispetto al valore corrente (HIGH[1])?distanza 0.2 * pipsize……
cosa rappresenta questa istruzione ? in pratica quale sarebbe il suo risultato e l’unità di misura di 0.2, è una percentuale (%); è un valore assoluto ?.
modificando in aumento o in ribasso tale valore, cosa accadrebbe al risultato ?
c2 = close >= (Upper – Distanza) quale sarebbe il risultato ?esiste una funzione ” print” per leggere il contenuto di un codice / variabile al fine di capire cosa accade di fronte ad una condizione ?
se volessi leggere il contenuto delle suddetta variale c2, cosa devo fare all’interno del programma ?
Grazie in anticipo
04/22/2020 at 4:51 PM #127492il valore (10) indica il numero di azioni scambiate nei giorni precedenti (10) oppure indica un giorno specifico (-10 gg) rispetto alla data corrente ?
indica -10 candele (giorni, settimane o minuti che siano) rispetto a quella corrente, per indicare le candele si usa un numero tra parentesi quadre, partendo da quella corrente che è [0] (che di solito si omette), [1] è la precedente, [2] l’altra ancora, ecc…CLOSE (o CLOSE[0]) indica il prezzo di chiusura della candela corrente, se la candela è in corso indica sempre l’ultimo, CLOSE[15] indica il prezzo di chiusura della 15esima candela precedente quella corrente.
in ottica di operazioni long, è corretto questa formula, oppure è consigliabile usare AVG? se affermativo come sarebbe l’istruzione corretta ?
p = 20non capisco cosa intendi dire, puoi dettagliare meglio?
p è una variabile a cui viene assegnato il valore 20, in questo casp sta per Periodi ed è usato nelle righe successive per cercare i valori minimi e massimi degli ultimi 20 periodi. Si usa una variabile, invece del numero 20, per non doverla cambiare in più righe, ma in una soltanto, quando si devono fare variazioni.
Upper = HIGHEST[p](HIGH[1]) : è il prezzo massimo raggiunto nelle ultime 20 giornate (time frame settimanale) rispetto al valore corrente (HIGH[1])?
No, è il prezzo massimo delle ultime 20 candele a partire dalla precedente, [1] si riferisce alla candela precedente (ieri sul giornaliero, la settimana scorsa sul settimanale, 1 minuto fa su 1 minuto)distanza 0.2 * pipsize……
cosa rappresenta questa istruzione ? in pratica quale sarebbe il suo risultato e l’unità di misura di 0.2, è una percentuale (%); è un valore assoluto ?.0.2 è una costanta numerica assegnata ad una variabile, può essere quello che vuoi, potrebbe essere una percentuale (0.2%), un valore assoluto (corrispondente ad una percentuale del 20%, oppure, in questo caso rappresenta 2 decimi di Pip. Si capisce perché dopo c’è PIPSIZE che serve a trasformare i PIPS in PREZZO (su Eur/Usd, 40 pips diventano 0.0040, mentre sul Dax, 40 pips restano 40, è PIPSIZE che si preoccupa di come fare la conversione secondo lo strumento)
modificando in aumento o in ribasso tale valore, cosa accadrebbe al risultato ?
c2 = close >= (Upper – Distanza) quale sarebbe il risultato ?
C2 è una variabile a cui viene assegnato un valore logico, 1 (vero) oppure 0 (falso). in tal caso si verifica che il prezzo di chiusura corrente, CLOSE, sia uguale o superiore al massimo (Upper) delle ultime 20 candele precedenti – 0.2 pips.esiste una funzione ” print” per leggere il contenuto di un codice / variabile al fine di capire cosa accade di fronte ad una condizione ?
se volessi leggere il contenuto delle suddetta variale c2, cosa devo fare all’interno del programma ?
esiste, solo per le strategie, la possibilità di utilizzare GRAPH e GRAPHONPRICE per oservare il valore delle variabili, candela per candela, durante la fase di backtest, per fare il cosiddetto debugging.Per Indicatori/Oscillatori e Screener di mercato NON c’è questa possibilità, però si può ovviare a questo trasformandoli in strategie fittizie.
Per favore usa sempre il pulsante “Insert PRT code” quando inserisci il codice nei tuoi post per facilitare la lettura degli altri. Grazie 🙂
04/23/2020 at 12:26 PM #127591Buongiorno Roberto,
scusami se riprendo i punti analizzati, non è semplice per chi non conosce il prodotto, lo faccio per chiarirmi i concetti
1CLOSE (o CLOSE[0])indica il prezzo di chiusura della candela corrente, se la candela è in corso indica sempre l’ultimo, CLOSE[15] indica il prezzo di chiusura della 15esima candela precedente quella corrente.
- quindi, se [15] riporta il prezzo della 15esima candela, cosa devo usare per conoscere il prezzo delle ultime cinque candele rispetto alla candela corrente, considerando il time frame (giornaliero; settimanale)?
questo può essere utile se voglio analizzare le azioni che hanno subito un incremento di prezzo a fine giornata
in ottica di operazioni long, è corretto questa formula, oppure è consigliabile usare AVG? se affermativo come sarebbe l’istruzione corretta ?
non capisco cosa intendi dire, puoi dettagliare meglio?- mi riferivo alla seguente istruzione “c1 = Volume > Volume[10]” se fosse corretta, posso usarla per individuare in ottica di investimento a lungo termine, le azioni che hanno subito più scambi negli ultimi 10giorni rispetto al grafico corrente ;
tornando al tema Pipsize, se ho capito bene, 0.2 è una costante fissa(il valore può essere diverso, esempio 0.1?) che può essere numerico o percentuale(0.2%), quindi se volessi calcolare la % di una candela/prezzo, quale sarebbe la corretta istruzione per estrarre le azioni che hanno subito una variazione di prezzo in percentuale in Up(in trend per capirci) a chiusura di mercato ?
Per Indicatori/Oscillatori e Screener di mercato NON c’è questa possibilità, però si può ovviare a questo trasformandoli in strategie fittizie.
- Cosa intendi trasformabili in strategie fittizie , potresti farmi un esempio applicabile ?
scusami, un principiante come il sottoscritto, avere un mezzo semplice per eseguire il debugging, sarebbe veramente di supporto in quanto conoscendo i risultati ottenuti delle istruzioni, aiuterebbero la conoscenza dell’uso delle stesse
grazie in anticipo
04/23/2020 at 3:44 PM #127637Buongiorno Roberto,
scusami se riprendo i punti analizzati, non è semplice per chi non conosce il prodotto, lo faccio per chiarirmi i concetti
1CLOSE (o CLOSE[0])indica il prezzo di chiusura della candela corrente, se la candela è in corso indica sempre l’ultimo, CLOSE[15] indica il prezzo di chiusura della 15esima candela precedente quella corrente.
- quindi, se [15] riporta il prezzo della 15esima candela, cosa devo usare per conoscere il prezzo delle ultime cinque candele rispetto alla candela corrente, considerando il time frame (giornaliero; settimanale)?
questo può essere utile se voglio analizzare le azioni che hanno subito un incremento di prezzo a fine giornata
[5] per avere il prezzo della 5a candela precedente quella corrente
in ottica di operazioni long, è corretto questa formula, oppure è consigliabile usare AVG? se affermativo come sarebbe l’istruzione corretta ?
non capisco cosa intendi dire, puoi dettagliare meglio?- mi riferivo alla seguente istruzione “c1 = Volume > Volume[10]” se fosse corretta, posso usarla per individuare in ottica di investimento a lungo termine, le azioni che hanno subito più scambi negli ultimi 10giorni rispetto al grafico corrente ;
No, è l’esatto opposto, per individuare quelle che nel periodo corrente hanno avuto più scambi tra gli ultimi 10 giorni
tornando al tema Pipsize, se ho capito bene, 0.2 è una costante fissa(il valore può essere diverso, esempio 0.1?) che può essere numerico o percentuale(0.2%), quindi se volessi calcolare la % di una candela/prezzo, quale sarebbe la corretta istruzione per estrarre le azioni che hanno subito una variazione di prezzo in percentuale in Up(in trend per capirci) a chiusura di mercato ?
Ogni valore lo decidi tu, non c’è un obbligo prestabilito. Non è una percentuale quella, ma un numero di PIPSPer Indicatori/Oscillatori e Screener di mercato NON c’è questa possibilità, però si può ovviare a questo trasformandoli in strategie fittizie.
- Cosa intendi trasformabili in strategie fittizie , potresti farmi un esempio applicabile ?
Non adesso, mi sembra un compito un pò più complicato di quanto tu possa comprendere adesso, quando avrai più padronanza del linguaggio siscusami, un principiante come il sottoscritto, avere un mezzo semplice per eseguire il debugging, sarebbe veramente di supporto in quanto conoscendo i risultati ottenuti delle istruzioni, aiuterebbero la conoscenza dell’uso delle stesse
Si, come ti ho detto le strategie possono usare GRAPH e GRAPHONPRICE
grazie in anticipo
Comunque, l’importante è studiare i manuali e leggere tanti codici, più semplici e meno semplici che trovi qui sul forum e provarli, facendo modifiche, annullandole, sbagliando, ecc… e facendo domande specifiche su certe funzioni o istruzioni o costanti. Nel giro di qualche mese sarai in grado di creare anche tu qualcosa anche di una certa complessità.
04/23/2020 at 4:19 PM #127647Perdonami,
[5] per avere il prezzo della 5a candela precedente quella corrente
forse non mi sono espresso correttamente, quale sarebbe la corretta istruzione che individui il prezzo di tutte le candele delle giornate antecedenti(5) rispetto al prezzo corrente e non alla singola giornata(5a) ?
per la variazione di prezzo della candela, mi manca qualche passaggio, quindi se non ti dispiace riprenderò il tema più avanti, dopo che ho visto qualche documentazione sul tema
Tuttavia, se usassi questa routine per estrarre le azioni che hanno subito una variazione di prezzo in percentuale in Up(in trend per capirci) a chiusura di mercato può funzionare ?
In caso contrario, potresti definirne una ad hoc ?
grazie
12345p = 20Upper = HIGHEST[p](HIGH[1])//Lower = LOWEST[p](LOW[1])Distanza = 0.2 * pipsizec2 = close >= (Upper – Distanza)04/23/2020 at 5:17 PM #127662Per avere il prezzo di 5 candele ti servono 5 variabili (con la verione 11.x di ProRealTime, solo disponibile con PRT stessa, non con IG, è possibile usufruire dei vettori) per facilitare la cosa.
Esempio:
1234PrimaVariabile = close[1]SecondaVariabile = close[2]..La tua routine è in PIPS, non in percentuale.
Per farla in percentuale occorre modificarla così:
12345p = 20Upper = HIGHEST[p](HIGH[1])//Lower = LOWEST[p](LOW[1])Distanza = 0.02 //2%c2 = close >= (Upper – (Upper * Distanza))questa ti eveidenzia quei titoli dove il prezzo ha raggiunto almeno il massimo – 2%.
Qui puoi trovare alcuni video di ProRealTime Italia https://www.youtube.com/channel/UCj1ZsVjiKQQH1XzIMENQTyQ.
Qui altri video del forum https://www.prorealcode.com/programming-with-prorealtime/.
Qui ci sono i manuali https://www.prorealtime.com/it/manuale/probuilder-indicatori-personalizzati.
04/23/2020 at 6:33 PM #12767405/07/2020 at 4:11 PM #130477Buongiorno Roberto,
il seguente codice “screen” ha l’obiettivo di estrarre le azioni che rientrano nei parametri definiti nel codice (titoli in trend – rialzo), il risultato non è soddisfacente, perché vedo titoli che non dovrebbero essere nella lista. Ad : neos(primo titolo della lista) ha un RSI(14) inferiore a 60, quindi il test condizionato, avrebbe dovuto escluderlo.
potresti indicarmi dove sbaglio ?Grazie in anticipo
1234567891011121314151617181920212223242526272829303132333435363738394041Timeframe (weekly)p = 18Upper = HIGHEST[p](HIGH[1])Distanza = 0.02 //2%cgraph = close >= (Upper - (Upper * Distanza))Timeframe (daily)// volumi della giornata devono essere superiore alla media degli ultimi 7 giornivol = average[7](volume)Cvol = volume => vol//prezzo max di quotazione = 80cquote = close <= 80prezzo = close > close[1]// indice a 14 gg deveono essere => di 60RSI14 = RSI[14]cRSI14 = RSI14 => 60//il prezzo di chiusura deve essere maggiore dell'aperturaRialzo = close > openRoc20 = ROC[20](close)cRoc20 = Roc20 > 0Roc50 = ROC[20](close)cRoc50 = Roc50 > 0Roc200 = ROC[20](close)cRoc200 = Roc200 > 0Croc = cRoc200 and Croc50 and Croc20//risultato = (prezzo and crsi14 and croc and rialzo and cgraph and cdmi18 and cvol and cquote)Test = (prezzo and crsi14 and croc and rialzo and cquote and cvol and cgraph )SCREENER [Test[1]] (Test[1] AS "Rialzo/Ribasso")05/07/2020 at 4:15 PM #13047905/13/2020 at 1:39 PM #13150005/13/2020 at 1:56 PM #131503Penso sia dovuto al fatto che alla riga 41 usi il riferimento a Test[1], cioè al valore che aveva nella candela precedente.
Non si può estrarre una sola azione, anche perché non avrebbe molto senso, perché fare una scansione di mercato se t’interessa un unico titolo? Basta che lo metti sul grafico e ne vedi l’andamento.
05/13/2020 at 4:19 PM #13151905/13/2020 at 6:01 PM #131542Fare qello che hai detto puoi farlo sicuramente, osservi un determinato titolo e metti i valori in modo che combacino esattamente (o quasi) con quel titolo, ad esempio:
12//vol = average[7](volume)Cvol = volume => 100000 AND volume <= 101000se un certo titolo ha in un dato momento un volume di 100750, puoi fare come sopra, lo stesso per gli altri indicatori. Potresti mettere = 100750, ma essendo la scansione fatta in diretta, può darsi che cambi ogni secondo e quando lo esegui non è più quel valore esatto.
Alla prima riga ho messo le // iniziali dei commenti per evitare che venga segnalato il mancato utilizzo della variabile VOL (dal momento che sotto l’ho tolta).
05/17/2020 at 11:07 AM #131922Buongiorno Roberto,
sono qui per condividere un nuovo screenner per cercare di implementare i codici a scopo didattico, che onestamente funziona parzialmente rispetto l’obiettivo.
Cerco titoli che hanno raggiunto il suo prezzo max di chiusura nelle ultime 52 settimane ; prezzo al di sopra delle medie mobili e volumi crescenti..
I grafici allegati, rappresentano il risultato. Come vedi sono diversi uno dall’altro… il titolo JD corretto ha il prezzo di chiusura max , mentre mkt, non sarebbe dovuto essere selezionato., perchè il prezzo di chiusura è più basso della chiusura del 12/maggio, quindi rientra nelle ultime 52 settimane.
In aggiunta nelle lista delle azioni, vedo anche quelli con segno negativo, perciò mi chiedo come sia possibile se cerco titoli in rialzo?
Anche in questo caso dov’è l’errore ? sicuramente è presente nel codice o nella logica. Potresti indicarmi il codice corretto?
Infine, se non volessi indicare le 52 settimane, ma se volessi indicare un periodo temporale dinamico, per tutto il periodo preso in esame dell’azione, quale sarebbe l’istruzione ?
Grazie per il supporto in anticipo.
12345678910111213141516171819202122232425262728Timeframe (weekly)//prezzo max nelle ultime 52 settimaneprezzo52 = highest[52](close[1])Timeframe (daily)c1 = close > prezzo52// il prezzo supera le meda mobileM20 = average[20,0](close)cM20 = M20 > M20[1]M50 = average[50,0](close)cM50 = M50 > M50[1]M200 = average[200,0](close)cM200 = M200 > M200[1]//Volume crescenti nelle ultime 52 candeleVol = Average[52](Volume[1])//cvol = vol >= 100000cvol = volume > volCMM = cm20 and cm50 and cm200Test = (cmm and c1 and cvol)SCREENER [Test[1]] (Test[1] AS "Rialzo/Ribasso")05/17/2020 at 11:43 AM #131931Funziona benissimo, perché alla riga 3 non prendi le ultime 52 settimane, ma le penultime 52.
Prendi 52 settimane partendo dalla precedente [1], non da quella corrente.
- quindi, se [15] riporta il prezzo della 15esima candela, cosa devo usare per conoscere il prezzo delle ultime cinque candele rispetto alla candela corrente, considerando il time frame (giornaliero; settimanale)?
-
AuthorPosts
Find exclusive trading pro-tools on