POSITIONPERF
POSITIONPERF restituisce la performance percentuale di una posizione aperta o chiusa in ProBacktest e ProOrder. PositionPerf(0) legge l'operazione attualmente aperta.
Sintassi
PositionPerf(N)Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
N | intero | 0 | Indice di posizione. 0 legge la posizione attualmente aperta. Un valore maggiore di 0 legge l'N-esima posizione chiusa più recente, quindi 1 è l'ultima operazione chiusa. |
Come funziona
POSITIONPERF misura l'andamento di una singola posizione, espresso come rapporto tra il suo guadagno o perdita e il suo costo. Un valore di 0.05 corrisponde a un guadagno del 5 percento e -0.02 a una perdita del 2 percento, quindi moltiplica per 100 quando serve una cifra percentuale da visualizzare.
L'argomento indice seleziona quale posizione valutare. Con N = 0, o con l'argomento omesso, la funzione riporta la performance corrente della posizione attualmente aperta. Con N > 0 scorre a ritroso le operazioni chiuse, PositionPerf(1) essendo l'uscita più recente, PositionPerf(2) quella precedente, e così via. Questo lo rende il mattone naturale per logiche operazione per operazione come le serie di perdite o i filtri di performance.
Il calcolo è lordo. Le commissioni di brokeraggio, gli spread modellati come costi e il finanziamento non vengono dedotti, quindi i risultati netti reali sono inferiori ai valori grezzi. Per il risultato cumulativo in denaro dell'intera strategia, usa invece STRATEGYPROFIT; POSITIONPERF descrive sempre una posizione alla volta.
Esempi
Esempio 1, leggere l'ultima operazione chiusa (ProBacktest)
// Gain-to-cost ratio of the most recently closed position
positionPerformance = PositionPerf(1)
GRAPH positionPerformance * 100 AS "Last trade performance in percent"Recupera la performance dell'ultima operazione completata e la traccia come percentuale. Questo è l'esempio di riferimento della documentazione originale con l'aggiunta di una riga di visualizzazione.
Esempio 2, uscita di emergenza sul drawdown dell'operazione aperta (ProOrder)
// Close a long when the open position loses more than 2 percent
IF longonmarket AND positionperf(0) < -0.02 THEN
SELL AT MARKET
ENDIFLa posizione aperta viene monitorata bar per bar e abbandonata quando la sua performance corrente scende sotto -0.02, un'uscita di sicurezza basata sulla percentuale che funziona indipendentemente da qualsiasi stop basato sui punti.
Esempio 3, ridurre la size dopo due operazioni perdenti consecutive (ProOrder)
// Halve exposure after two losing trades in a row
baseSize = 4
IF positionperf(1) < 0 AND positionperf(2) < 0 THEN
tradeSize = max(1, baseSize / 2)
ELSE
tradeSize = baseSize
ENDIF
IF NOT onmarket AND close CROSSES OVER average[50](close) THEN
BUY tradeSize CONTRACTS AT MARKET
ENDIFLe due operazioni chiuse più recenti vengono esaminate prima di ogni ingresso. Dopo due perdite consecutive la strategia opera a metà size finché un'operazione non chiude in positivo.
Errori e insidie comuni
- Rapporto, non percentuale. La funzione restituisce un rapporto, quindi un guadagno del 3 percento si legge come 0.03. Confrontarlo con numeri interi come
positionperf(0) > 3non si attiva quasi mai. Moltiplica per 100 solo per la visualizzazione. - Al lordo dei costi. Le spese e le commissioni sono escluse, quindi un'operazione che risulta leggermente positiva può essere una perdita netta in reale. Le soglie vicine allo zero sono le più interessate.
- Nessuna posizione aperta. Senza nulla a mercato, la lettura dell'indice 0 non ha senso per la logica decisionale. Proteggi le letture di
positionperf(0)conONMARKET,LONGONMARKET, oSHORTONMARKET. - Ambito per singola posizione. POSITIONPERF non aggrega mai. Sommare i risultati a livello di conto iterando sugli indici è fragile; STRATEGYPROFIT fornisce già la cifra cumulativa in denaro.
Istruzioni correlate
STRATEGYPROFIT, profitto realizzato cumulativo della strategia in denaro.POSITIONPRICE, il prezzo medio di ingresso della posizione aperta.TRADEPRICE, il prezzo di ingresso dei singoli ordini.TRADEINDEX, l'indice di bar in cui un ordine è stato eseguito.COUNTOFPOSITION, la dimensione con segno della posizione aperta.ONMARKET, vero mentre una qualsiasi posizione è aperta.LONGONMARKET, vero mentre una posizione long è aperta.SELL, chiude una posizione long.