Frazionamento in uscita

Forums ProRealTime forum Italiano Supporto ProOrder Frazionamento in uscita

Viewing 14 posts - 16 through 29 (of 29 total)
  • #172875

    TIMEOPERATE = TIME>075900 AND TIME<180000

    Come C1 e C2 ne sto provando alcuni ma puoi mettere ciò che vuoi.

    C1= close>ExponentialAverage[50](close) and close>ExponentialAverage[10](close)
    C2= close<ExponentialAverage[50](close) and close<ExponentialAverage[10](close)

     

    #172876

    Ah….. adesso mi sono accorto che hai usato TRADEPRICE (scritto anche TRADEPRICE(1)), che è l’ultimo prezzo tradato, che va bene quando apri uno o più contratti TUTTI insieme e li chiudi TUTTI insieme, altrimenti:

    • se, come in questo caso, ne apri 3 TUTTI insieme, ma poi li chiudi separatamente, devi salvare il prezzo d’entrata in una variabile (PREZZO in questo caso), perché alla prima chiusura TRADEPRICE prende il prezzo della chiusura e oper fare riferimento a quello di apertura dovresti scrivere TRADEPRICE(2), alla successiva chiusura scaleranno ancora tutti di una posizione ed il prezzo d’apertura sarà contenuto in TRADEPRICE(3), ecc…
    • se, invece ne apri più di uno, ma in TEMPI DIVERSI (usando anche DEFPARAM CumulateOrders=True all’inizio) e li chiudi INSIEME o SEPARATAMENTE, dovrai fare riferimento non più a TRADEPRICE, ma a POSITIONPRICE, che è la media dei vari prezzi d’entrata * il numero di lotti per ciascuina entrata.

    Utilizza GRAPH e GRAPHONPRICE per analizzare beme le variabili (te li ho aggiunti alla fine del codice):

     

    1 user thanked author for this post.
    #172879

    Roberto, stasera dopo le 18 tiro giù dal auto trading pro order il codice “vecchio” e metto in pista per domani questo “nuovo” da te suggerito. Non desidero cadere nell’equivoco dell’adulazione, ma confesso nutrire una forma di piacere nel confrontarmi con persone qualificate e preparate come te. Grazie ancora, seguiranno gli aggiornamenti in merito.

    1 user thanked author for this post.
    #172934

    Buongiorno, oggi il Dax ha fatto dei movimenti ampi con TF a 5 minuti e con l’ultimo codice messo a disposizione ecco come si comporta.
    Esempio di barra delle 9:25
    open 15.658,4
    min 15655.9
    max 15691,4
    close 15690,4

    Condizioni hanno innescato ordine di acquisto di 3 contratti a 15659 alle 9:25

    Gli stop loss sono stati caricati regolarmente, ma l’ordine con stop limit continua a non caricarsi per la stessa barra ed in quella successiva che è andata ancora più in alto è rimasto dentro con tutti i 3 contratti. Devo uscire manualmente ed in alcuni casi mi si pianta il robot.

    In definitiva ogni volta che entra con 3 contratti, solo in alcune condizioni e solo nella barra successiva riesce a piazzare l’ordine limit.

    A supporto, qui sotto allego la barra delle 9:25 e un immagine che mostra di come ogni volta entri con 3 contratti, l’ordine limit non risulta mai in essere; in alcune condizioni, l0rdine limit verrà inserito nelle barre successive in altre condizioni non scatta nessun ordine (limit, stop o at market).

    Grazie per l’attenzione.

    #172945

    Va tutto bene per quel che mi risulta.

    E’ entrato alle 9:30, ha piazzato gli ordini pendenti ma non ha raggiunto nessun TP per cui è uscito in SL alle 9:45.

     

    #172955

    Ma così non va bene. La logica sarebbe questa:
    Entra ad esempio a 16500.
    Piazza immediatamente lo stop loss per ogni contratto (questo lo fa)
    Piazza immediatamente la vendita di un contratto al raggiungimento del primo target. (questo non lo fa)

    Cosa sta accadendo ora?

    Piazza immediatamente lo stop loss per ogni contratto (questo lo fa)
    NON piazza immediatamente la vendita di un contratto al raggiungimento del primo target.
    Nella barra successiva ed in determinate condizioni piazza un ordine relativo primo contratto in uscita e quando non riesce fallisce la logica del robot.

    Grazie per l’attenzione

    #172959

    Piazza immediatamente la vendita di un contratto al raggiungimento del primo target. (questo non lo fa)“, perché a te non lo fa? A me lo fa.

    Se per piazzare l’ordine pendente intendi piazzarlo immediatamente quando entra a mercato devi dirglielo appositamente. Tu gli hai chiesto di metterli solo quando sono già a mercato determinate posizioni (3, 2 o 1) e questo NON può saperlo subito perché l’ordine potrebbe essere respinto o esguito parzialmente, ecc… quindi ha bisogno di una barra per sapere se (e con quante) posizioni è a mercato.

    Una soluzione può essere quella di usare più TF (se cerchi la parola MTF, Multi o Multiple Time Frame,  troverai un sacco di discussioni ed esempi, oltre a blog e articoli).

    Un’altra soluzione è quella di piazzare immediatamente gli ordini per tutti e 3 i casi (solo la prima volta, poi va bene così com’è). In questo modo:

    come vedi ho inserito 3 ordini pendenti, sia dopo BUY che dopo SELLSHORT. Questi li esegue solo la prima volta, poi usa gli altri. Ho dovuto usare CLOSE per il prezzo, in quanto alla chiusura della barra non si sa quale sarà il prezzo d’ingresso. Quindi alla prima barra successiva, se c’è stato un gap o slippage, PREZZO cambierà leggermente, quindi anche i livelli di un’eventuale uscita.
    Uno svantaggio di questa soluzione è che, in caso di uno spike, esce con 1 posizione appena il prezzo più vicino viene raggiunto, mentre tu vorresti che la prima uscita venisse fatta al livello più alto, puoi provare ad eliminare le righe (solo per la prima barra, nelle righe dopo subito successive a BUY e SELLSHORT) relative a TP2 e TP3, tanto restano per le barre successive alla prima con il codice già esistente in precedenza.
    Ho eliminato la A per le uscite, in quanto per uscire con tutte le restanti posizioni è sufficiente NON indicare il numero di contratti.

    1 user thanked author for this post.
    #172960

    Lo metto in onda subito. Bisogna capire se la piattaforma IG riesce ad accumulare 3 ordini limit alla volta. Avevo provato anch’io quasi la stessa cosa, infatti non avevo messo Prezzo=close 🙁

    Seguiranno esiti. Grazie

    #172967

    Si, io ne ho messi anche 20, non ci sono problemi (almeno sul backtest, in reale non ne ho mai usati più di 2-3).

     

    #172969

    Nel dubbio ecco ciò che mi piacerebbe accadere:
    Compra a 1650.
    Se raggiunto 1668 esce col primo e il secondo sta pronto ad uscire a 1680 ed il terzo sta pronto ad uscire a 1692. (magari nella stessa barra nel caso di uno spike con il terzo se ci arriva)
    Se raggiunto il secondo ed uscito con 1680 sta pronto ad uscire con 1692 (magari nella stessa barra nel caso di uno spike).

    Scusa in anticipo se non avevo specificato.

    #172976

    Tu gli ordini li hai messi all’inverso.

    La prima uscita deve farla a TP1, poi a TP2 ed infine a TP3.

     

    #172981

    Al momento pare parzialmente risolta così in caso di spyke:
    Ho messo solo le due parti al momento modificate.
    Penso di dargliela su… nel senso che spaccherò il codice in 3 codici distinti, ognuno entrerà con un take profit diverso e buonanotte…. Avesso funzionato avrei messo altre condizioni per impedire di mangiare il profitto realizzato da primo o secondo contratto.

    Nel frattempo sempre grazie.

     

     

    #172983

    Anche perchè il robot si interrompe di continuo ora. Va proprio ripensata la logica a questo punto.

    #172996

    Evidentemente si.

    Non può non funzionare, se la logica è corretta.

     

    1 user thanked author for this post.
Viewing 14 posts - 16 through 29 (of 29 total)

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