Info BarIndex, TradePrice, StrategyProfit e PositionPerf
Forums › ProRealTime forum Italiano › Supporto ProOrder › Info BarIndex, TradePrice, StrategyProfit e PositionPerf
- This topic has 10 replies, 2 voices, and was last updated 3 years ago by MauroPro.
Tagged: Barindex, positionperf, strategyprofit, tradeindex, tradeprice
-
-
12/16/2020 at 11:10 AM #153936
Salve, avrei due questioni sull’uso di BarIndex.
1) vorrei sapere in che modo si può utilizzare BarIndex per far si che si possa unire alla semplice condizione di un cross di due medie (es.: average[20] crossover average[50], la condizione per cui non ci sia stato nelle (es. 10) barre precedenti un altro cross.
(Ossia che per le barre da [1] a [10] non ci sia stato né average[20]crossover average[50], né average[20 ] crossunder average[50]).
2) Una seconda cosa: mi “sembra” di aver letto da qualche parte nelle oltre 60 pagine del forum italiano di ProOrder che è anche possibile far iniziare il conteggio di bar index non da sinistra a destra, ma da destra a sinistra con l’uso di determinate parentesi, Possibile?
Grazie
12/16/2020 at 1:46 PM #153974Primo punto, non serve BarIndex (si potrebbe fare, ma è solo una complicazione) bensì SUMMATION:
1IF AltreCondizioni AND Summation[10](average[20] crosses over average[50])[1] = 0 THEN[1] alla fine serve per prendere le 10 barre partendo da quella precedente (da 1 a 10), altrimenti prende da quella corrente (da 0 a 9).
Secondo punto, si, come per qualunque altra costante o variabile o risultato (vedi sopra);Sì se adsesso BARINDEX ha valore 2764, BARINDEX[1] avrà valore 2763, ecc… Visto che BARINDEX è un numero progressivo (non un prezzo che non ha una progressione) puoi anche scrivere BARINDEX-1 invece di BARINDEX[1].
Se scrivi CLOSE[BarIndex] prenderai SEMPRE il prezzo della prima candela in assoluto perché è come se scrivessi CLOSE[2764] ed alla candela successiva CLOSE[2765], cioè quello della 2764esima o 2765esima candela precedente.12/16/2020 at 2:30 PM #153984Grazie Roberto, ho capito meglio con il tuo esempio il funzionamento di BarIndex.
Un ultima cosa che potrebbe servire anche ad altri utenti non esperti: c’è un modo “semplice” di fissare nella progressione di barindex dei punti importanti, come la chiusura di un trade (un pò come quello che fa la funzione tradeindex che ne segnala l’apertura) in modo da richiamare semplicemente questi punti per future operazioni?
12/16/2020 at 5:26 PM #154019Non c’è una costante specifica come TradeIndex, però puoi fartela facilmente. Nell’esempio la chiamerò CloseIndex e prenderà il valore dell’ultima barra di chiusura (che un trade è chiuso si vede da quando il risultato della strategia viene aggiornato, è la barra precedente):
123IF StrategyProfit <> StrategyProfit[1] THENCloseIndex = BarIndex - 1 //o BarIndex[1]ENDIFperò potrai riciordare solo l’ultima chiusura.
Per ricordarne di più (anche tutti), occorre un vettore o indice (array). Puoi cercare sul forum per capire come funzionano.
12/16/2020 at 5:40 PM #15402301/02/2021 at 11:22 AM #155922Stavo riguardando la formula riportata sopra (insieme ad altri codici sulla chiusura riportati nel forum con strategyProfit ed onMarket), per capire se un trade è chiuso, ma mi è venuto un dubbio: strategyProfit non potrebbe essere uguale a strategyProfit[1] se abbiamo una strategia che si basa sul close e compaiono due close uguali?
In questo caso, vorrei la conferma, avendo due close uguali anche il risultato della strategia, quindi di strategyProfit non cambia.
Grazie
01/02/2021 at 12:56 PM #155951Se una strategia fa un’operazione che termina con ZERO e questa operazione si apre e si chiude all’interno di una stessa candela…la cosa si complica un pò, si potrebbe guardare se TRADEPRICE(1) , l’ultimo prezzo che dovrebbe essere quello di chiusura è identico a TRADEPRICE(2), che dovrebbe essere quello di apertura. Dico dovrebbe perché, ad esemnpio, in caso di Stop & Reverse potrebbe esserci stata una chiusura di un trade seguita dall’apertura di uno contrario allo stesso prezzo.
La cosa migliore è quella di registrare SEMPRE l’ultimo prezzo quando NON si è a mercato (oppure c’è stata uno Stop & Reverse), poi ad ogni candela (sempre in caso di operazione conclusasi con ZERO profitti/perdite) verificare che quel prezzo sia diverso da quello salvato e sia uguale agli ultimi due (entrata ed uscita).
Potrebbe essere scritto così:
123456789101112131415161718ONCE UltimoPrezzo = 0//// verificare se c'è stata un'operazione//v1 = (Not OnMarket) AND OnMarket[1] //la più semnplice, era a mercato prima e adesso non lo èv2 = (Not OnMarket) AND (Not OnMarket[1]) AND (StrategyProfit <> StrategyProfit[1]) //non era a mercato prina né adesso, ma c'è stato un guadfagno o una perditav3 = (StrategyProfit = StrategyProfit[1]) AND (TRADEPRICE(1) = TRADEPRICE(2)) AND (TRADEPRICE(1) <> UltimoPrezzo) AND (UltimoPrezzo <> 0) //nessun profitto, né perdita, ma gli ultimi due prezzi sono identici e sono diversi dall'Ultimo salvatoIF v1 OR v2 OR v3 THEN.. //c'è stata un'operazione sicuramente tra la precedente candela e quella attuale.ENDIF//// salvare l'ultimo prezzo quando NON a mercato, oppure quando c'è stato uno Stop & Reverse//IF Not OnMarket OR (LongOnMarket[1] AND ShortOnMarket) OR (LongOnMarket AND ShortOnMarket[1]) THENUltimoPrezzo = TRADEPRICE(1)ENDIF01/02/2021 at 12:58 PM #155952Ciao Roberto grazie per la risposta, stavo per scrivere anche questa aggiunta per ulteriori chiarimenti che spero possano servire anche ad altri utenti.
Per essere più chiaro, è vero che si pone strategyProfit diverso da strategyProfit[1], ma, poichè questa costante sul profitto si riferisce alle singole barre che scorrono (come indica il manuale ProBacktest a pag 19: “strategyProfit[1] dà il profitto alla chiusura della barra precedente”), ricordando un pò la progressione di barIndex con le barre, è possibile in una strategia che inizi nel punto A e termini nel punto C, che ci siano tante barre, in differenti punti B, B1, B2 …, in cui strategyProfit cambi spesso senza che il trade sia ancora chiuso. Quindi il cambiamento di strategyProfit non indica necessariamente (chiedo sempre conferma) la chiusura di un trade.
Un ultimo punto: come in barIndex si fissa un punto con la costante tradeIndex, è possibile con strategyProfit fissare dei punti con la costante positionPerf, in modo sa scrivere qualcosa come: strategyProfit-positionPerf[1] = ….?
Grazie
01/02/2021 at 1:07 PM #155955STRATEGYPROFIT viene aggiornata SOLO ad operazione conclusa, mentre è in corso non varia, quindi se adesso è diversa dal valore che aveva la barra precedente è perché c’è stato un risultato <> 0 dato da un’operazione che si è appena chiusa.
Per sapere un eventuale situazione di guadagno/perdita in corso occorre utilizzare POSITIONPERF che è il moltiplicatore (la percentuale già divisa per 100, cioè 0.3% è 0.003, negativo se in perdita), quindi varia ogni candela. L’importo gradagnato/perso aggiornato alla candela corrente è dato da questa espressione:
1Profitto = positionperf*positionprice/pipsize*pipvalue01/02/2021 at 1:10 PM #155958Ho aggiornato il titolo perché l’argomento non riguardava più solo BARINDEX.
01/02/2021 at 1:16 PM #155959 -
AuthorPosts