Dettagli sull'ultima operazione eseguita

Forums ProRealTime forum Italiano Supporto ProOrder Dettagli sull'ultima operazione eseguita

Viewing 10 posts - 1 through 10 (of 10 total)
  • #124069

    salve a tutti, sto cercando di creare un sistema che consideri la quantità di lotti investiti nell’ultima operazione, e se questa è stata chiusa in profitto o perdita, al fine di determinare la quantità di lotti da utilizzare per aprire una nuova posizione. Non riesco a trovare nessun comando che mi restituisca questi parametri dell’ultima operazione conclusa.
    Qualcuno sa dirmi se sia possibile? grazie mille

    #124074

    Puoi usare COUNTOFPOSITION https://www.prorealcode.com/documentation/countofposition/

    ci sono anche COUNTOFLONGSHARES e COUNTOFSHORTSHARES.

    #124951

    grazie mille Roberto!! e scusa per la risposta tardiva, proverò ad utilizzare il comando COUNTOFPOSITION

    #125355

    scusami Roberto, ma non riesco a capire come utilizzare il codice. Nella pagina di esempio il codice viene usato per aggiungere un ordine ad una posizione short già aperta se il prezzo scende di 10 punti.

    Non riesco a capire come fare a verificare se l’ultima posizione è stata chiusa in profitto o perdita, e in base a questo comprare il doppio dei lotti se è stata chiusa in perdita, oppure comprare 1 solo lotto se è stata chiusa in profitto.

    scusami ancora, ma con le variabili ancora non ce la faccio

    grazie mille

    #125362

    COUNTOFPOSITION serve a sapere quante posizioni hai aperto, per sapere se l’ultima operazione si è chiusa in profitto, o meno, devi usare STRATEGYPROFIT, che viene aggiornato ad ogni chiusura di posizione.

    Se STRATEGYPROFIT > STRATEGYPROFIT[1] vuol dire che hai avuto un profitto.

    #125437

    grazie mille Roberto il codice che riesco ad elaborare è questo, ma non apre nessuna posizione, non capisco l’errore che sicuramente commetto

     

    #125463
    1. DEFPARAM PRELOAD ha un default di 2000 che è generalmente sufficiente per caricare indicatori (a meno che non abbiano un numero di periodi maggiori di 2000!), però non serve molto diminuirli. A volte veiene per fare qualcosa di particolare, ma è preferibile non metterlo, oppure mettere il valore massimo che è 10000.
    2. la verifica di STRATEGYPROFIT va comunque fatta al di fuori di un blocco IF…ENDIF, perché deve farla SEMPRE, altrimenti se la fa solo quando le tue condizioni sono vere è raro che entrambi i valori, quello attuale e quello della candela precedente, siano diversi.
    3. devi usare MAX per la SIZE, non MIN(), altrimenti è unutile che tu raddoppi, ti prenderebbe sempre il minore, quindi 1. Ma inizialmente è 0 e prende sempre 0.
    4. POSITIONSIZE devi moltiplicarlo per SIZE, non per se stesso, altrimenti è zero inizialmente e resta sempre zero (ad ogni modo moltiplicarlo per due mi pare esagerato, generalmente si somma 1 al valore precedente)
    5. a POSITIONSIZE (o a SIZE nella mia modifica), nella moltiplicazione, non occorre mettere [1], in quanto ad ogni nuova candela tutte le variabili vengono mantenute nel valore precedente, quindi basta solo cambiare il valore attuale.
    6. dovresti prevedere anche una diminuzione di POSITIONSIZE quando c’è una perdita, altrimenti arrivi ad un numero altissimo!
    7. anche [0] con CLOSE ecc… non è necessario, va indicato un valore solo se > 0 (cioè per le candele precedenti a quella corrente). Forse te lo ha messo automaticamente la creazione assistita, quindi va bene così.
    8. per entrare a mercato, Long o Short che sia, secondo me è opportuno aggiungere alle tue condizioni AND NOT ONMARKET, altrimenti te ne accumula un’esagerazione.

    Eccolo modificato:

     

     

    1 user thanked author for this post.
    #125477

    Grazie ancora Roberto, adesso funziona tutto, unica cosa le posizioni diventano giganti perchè dovrebbe incrementare la posizione solo quando il trade precedente è stato chiuso in perdita, mentre quando il trade precedente è chiuso con profitto dovrebbe aprire una posizione minima con 1 solo lotto. In sostanza l’idea è quella di raddoppiare la posizione per annullare la perdita e ritornare sempre almeno in pareggio, mentre quando i trade vanno in profit la posizione rimane sempre minima.

    #125483

    Ok, allora le righe 2-4 sostituiscile con queste:

     

    1 user thanked author for this post.
    #125517

    if STRATEGYPROFIT < STRATEGYPROFIT[1] then    positionsize = size * 2 ELSIF STRATEGYPROFIT > STRATEGYPROFIT[1] then    positionsize = 1 ENDIF

    Perfetto!! grazie mille Roberto, adesso mi è chiaro

Viewing 10 posts - 1 through 10 (of 10 total)

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