Possibile Bug proOrder

Forums ProRealTime forum Italiano Supporto ProOrder Possibile Bug proOrder

Viewing 15 posts - 1 through 15 (of 37 total)
  • #162923

    Ciao Roberto ho notato due cose molto strane (bug?) in un TS.

    1)Ti è mai capitato che un TS non entra a mercato, mentre dalle condizioni inserite nei Graph dovrebbe entrare? (ho creato ad hoc un TS semplificato con sole 2 condizioni e tolto tutto il resto: short, condizioni temporali…., quindi sono solo 2 graph)

    2)Smontando tutte le condizioni una ad una ho notato un altra cosa ancora più strana: se in questo TS tolgo una condizione di quelle di uscita allora entra! Ti è mai capitato che una condizione di uscita entra in conflitto e NON far entrare un TS? (se è così è sicuramente un bug)

     

     

     

    #162931

    Ho capito. Un Ts long non entra long se ha le condizioni per entrare long, ma contemporaneamente sono presenti delle condizioni che lo farebbero uscire subito.

    Pensavo che in una situazione del genere il TS entrava ed usciva subito,  non che non entrava per niente se sono presenti contemporaneamente condizioni di entrata ed uscita (condizioni di uscita molto particolari chiaramente altrimenti sarebbe una contraddizione logica). 

    Questo spiega anche la presenza dei Graph senza segnale di acquisto in quanto il Graph segnala solo le condizioni di acquisto senza considerare il resto.

    #162932

    Per potere dare una risposta e verificare se è un bug o un tuo errore occorre il coduice cmpleto e funzionante, oltre a sapere su quale strumento e TF l’hai usato e data ed ora della candela dove non ha (apparentemente) funzionato come desuiderato.

    1)  A me è capitato quando ho settato orari di personalizzati (sul DAX), togliendo i fine settimana. Durante la candela del fine settimana si verificava un incrocio (che io non vedevo sul grafico, avendo eliminato, solo visivamente, quei dati) ed entrava a mercato. Anch’io ho subito pensato ad un bug, invece ero io che avevo cambiato gli orari o impedito che i dati venissero visualizzati. Ce n’è voluto di tempo e solo grazie a Nicolas sono riuscito a capire il problema.

    2)  Si, può succedere se la condizione di uscita è subito dopo quella d’entrata e non verifica se sei già a mercato, ad esempio, questa uscita fa si che non avvenga neppure l’entrata (si annullano a vicenda se entrambe le condizioni sono vere):

    questa, invece, funziona:

    perché verifica che sia già a mercato, informazione per la quale serve una barra di tempo affinché sia conosciuta.

     

     

    #162933

    Bene, ho visto che hai risolto (stavo scrivendo).

     

    1 user thanked author for this post.
    #162934

    Ho controllato e semplicemente accadeva quello che hai scritto nel punto 2: “(si annullano a vicenda se entrambe le condizioni sono vere)”.

    Nel mio caso la questione era abbastanza complicata in quanto le condizioni di entry ed Exit erano ben separate.

    Semplificando al massimo il mio caso: il Ts entra long con: “close crosses over media”, ma una delle condizioni di uscita era che: “close < determinato livello” che nel 99% dei casi è sotto tale cross.

    Poi pensavo erroneamente che il TS sarebbe entrato ed uscito e non che annullava l’operazione.

    Grazie per il chiarimento

    #163818

    Mi collego a questo topic per chiarire due punti:

    • c’è un modo per far durare più di una barra un ordine stop/limite?
    • c’e un modo per far si che un ordine stop/limite non scavalchi l’annullamento di un operazione? (per il verificarsi di essere entrambe vere le condizioni di entrata ed uscita?)

    Un esempio (vd immagine): il TS base, sopra il grafico, che ha come entrata :

    If cShortEntry  THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF

    non entra giustamente a mercato in quanto, come si vede dal GRAPH arancione, sono vere entrambe le condizioni di entrata ed uscita. Il graph è questo:

    graph (cShortEntry and c1SellExit) coloured (237, 168, 105)

    se invece nello stesso TS utilizzo per entrare un ordine limite (nell’immagine TS in alto con le frecce viola):

    If cShortEntry THEN
    SELLSHORT 1 CONTRACTS AT low stop
    ENDIF

    il TS entra a mercato al minimo della barra, come da condizione, MA scavalcando la contraddittorietà delle condizioni di entrata-uscita.

    #163823

    Ho controllato che la differenza tra il prezzo a mercato ed il prezzo limite non è mai abbastanza grande da annullare la condizione di contraddittorietà (c1SellExit), quindi potrebbe anche essere un malfunzionamento. Cosa ne pensi? (In ogni casa mi interessa evitare l’entrata con ordine limite se possibile)

    #163824

    La durata è una barra e non si può cambiare (sul Daily dura un giorno, su 1 secondo dura 1 secondo). Per farlo durare più di una basta basta reinserirlo ad ogni barra, finché le tue condizioni lo richiedono.

    Dalle immagini non vedo niente, solo delle barre e frecce, ma non ho idea del perché ci siano o perché tu ce le abbia messe. Probabilmente sono le tue condizioni, che non conosco.

    Un Ordine pendente, una volta piazzato, entra a quel livello di prezzo indipendentemente da qualunque altra condizione. Termina la sia validità alla fine della barra e non c’è altro da fare- Se, nel corso della barra, certe condizioni si annullano…. lui non può saperlo e puoi solo sperare che non entri.

    Addirittura gli ordini pendenti, se non stai attento a come li metti, possono accumulare posizioni anche se hai messo DEFPARAM CumulateOrders = FALSE, ad esempio se metti un ordine BUY LIMIT ed uno BUY STOP possono entrare entrambi, perché una volta piazzati la gestione passa al broker, ProOrder ne riprende il controllo alla chiusura della barra, a cose ormai fatte!

     

    #163826

    Ok, quindi ecco perchè entra: “Un Ordine pendente, una volta piazzato, entra a quel livello di prezzo indipendentemente da qualunque altra condizione”

    Grazie per le info sul pericolo degli ordini pendenti, non lo conoscevo.

    Per reinserire ad ogni barra l’ordine pendente in automatico, come devo modificare il codice di entrata? Grazie

    If cShortEntry THEN
    SELLSHORT 1 CONTRACTS AT low stop
    ENDIF

    #163835

    Esatto, se vuoi puoi aggiungere AND Not OnMarket alla condizione d’entrata. E, nel caso fosse contemporaneamente VERA anche c1SellExit, puoi anche aggiungere AND Not c1SellExit:

     

    #163837

    Perfetto grazie. Ti chiedo un ultima cosa sugli ordini pendenti. Questa volta  stop loss di un Ts automatico (operazione reale). Ieri mi è scattato uno stop loss automatico (set stop %loss 0.6) con proOrder, mentre in proBackTest non è scattato.

    Ho scoperto che la causa è stata  un slippage sul CFD Nasdaq di 1.2 tick!, Il prezzo di entrata long di proBackTest è stato: 12827.9, quello di proOrder: 12829.1 – se metto nel proBackTest lo stop a 0.59% scatta!)

    A parte il caso sfortunato ma istruttivo (ecco perchè lo riporto), ho anche visto che l’ordine stop è stato eseguito a 12751.2, mentre come si vede nella foto, il minimo della barra è stato superiore: 12751.4

    Ti chiedo: questa uscita STOP sotto il minimo della barra, penso dovuto ancora a  slippage di uscita e mancanza di liquidità dei CFD, può accadere con un ordine stop garantito?

    (PS mi puoi anche indicare uno snippet code per inserire lo slippage?)  Ciao e grazie

    #163845

    Lo stop garantito è garantito che sia quello effettivo, indipendentemente da slippage o gap.

    In che senso vuoi inserire lo slippage? Fammi un esempio.

     

    #163846

    Pensavo semplicemente ad una condizione da definire all’inizio del codice, in cui si determinano i pips da aggiungere alle condizioni di entrata/uscita.

    Es. buy 1 contract at market + slippage

    Non penso sia complicato da costruire, se però c’erano dei codici già pronti era meglio

    #163867

    Lo Slippage non è fisso, può essere 0.5 pips, 1, 5 o 20 pips! Dipende dal momento, se per caso la tua strategia fa un entrata tra le 14:30 e le 14:40 di un venerdì in cui ci sono i dati Usa NFP…. si può arrivare davvero a 20 pips!

    La tua idea, più che allo slipèpèage può essere usata per la distanza minima dal prezzo corrente richiesta per molti strumenti quando devi piazzare ordini pendenti. Un esempio è questo codice che ho fatto per il trailing stop, dove, alle righe 82 e 103, verifico la distanza dal prezzo in modo da entrare a Mercato, Limit o Stop https://www.prorealcode.com/topic/breakeeven-trailing-profit/page/3/#post-158898.

     

    #164195

    Ciao Roberto, ho visto il tuo codice sulla distanza minima che potrebbe essere usato al posto dello slippage.

    Ti volevo chiedere un altra cosa: c’è un modo qualsiasi per escludere il pericolo di entrare più volte sulla stessa barra con un ordine limite? (se l’ordine non viene preso in quella barra e viene cancellato  non importa)

    Vorrei sostituire l’entrata a mercato con qualcosa come:

     

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

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