Strategia con più entrate nella stessa direzione

Forums ProRealTime forum Italiano Supporto ProOrder Strategia con più entrate nella stessa direzione

Viewing 15 posts - 1 through 15 (of 27 total)
  • #157500

    Buongiorno, volevo chiedere alcune  cose:

    1) E’ corretto scrivere, nel modo sotto riportato, le condizioni di entrata di una strategia che va a mercato con due diverse tipologie di segnali di acquisto e di vendita?

    Esempio: cLong1 – cLong2 e cShort1 – cShort2, in modo da:

    a) avere a mercato una sola tipologia di long o short alla volta (se entra cLong1 non deve entrare cLong 2 e viceversa, se entra cShort 1 non deve entrare cShort 2 e viceversa)

    b) far si che sia possibile uno stop and reverse solo tra cLong1 e cShort1

    2) E’ possibile marcare nel grafico se il Ts entra con cLong1 o cLong2? (ossia mettere una semplice scritta-etichetta accanto alle freccie di acquisto-vendita)

    3) E’ possibile in qualche modo marcare con un segno qualunque tutti punti in cui un Ts entra a mercato anche se è già entrato?

    Mi spiego meglio: Prt indica con una freccia un entrata long. Se prima che il trade sia chiuso il Ts sarebbe entrato altre volte, ma non entra in quanto già a mercato, è possibile visualizzare queste altre entrate potenziali in modo da analizzare in modo approfondito i segnali a livello visivo (oltre che statistico con il backtesting)?

    Grazie

    #157503

    Per favore usa sempre il pulsante “Insert PRT code” quando inserisci il codice nei tuoi post per facilitare la lettura degli altri.

    Grazie 🙂

     

    #157509

    1    Si, quante condizioni desideri

    1a  Si, basta che metti DEFPARAM CumulateOrders = TRUE all’inizio ed ogni tentativo d’entrata successivo al primo verrà ignorato

    1b  Si, basta che non usi la condizione OnMarket e se esegui BUY chiude prima ogni Short  esistente (e viceversa per SELLSHORT), anche perché non possono esserci posizioni contrapposte aperte (hedging)

    2   No, solo gli indicatori supportano comandi grafici

    3   (vedi risposta sopra)

    Nel backtesting puoi usare GRAPH per vedere quello che vuoi, devi cambiare un pò la logica d’entrata per fare in modo di vedere quando la condizione è vera ma non viene eseguita perché già a mercato:

     

    #157517

    Non ho capito bene la risposte 1b:

    1b) se non metto onMarket come fa il Ts a distinguere cLong1 o cLong2? non sarebbe in questo caso abilitato lo stop and reverse anche da cShort1 a cLong2? (cosa che invece deve essere possibile solo da cShort1 a cLong1 e viceversa)

    Per semplicità mi potresti riscrivere soltanto le due condizioni di entrata sopra riportate, dato per scontato che uso DEFPARAM CumulateOrders = TRUE (anche se  vorrei precisare che il Ts usa 1 contratto alla volta e non posizioni cumulate)

    Grazie

    #157522

    Pert distinguerle puoi mettere IF NOT LongOnMarket (per i LONG) e IF NOT ShortOnMarket (per gli SHORT).

    Cosa devo scriverti, quali condizioni?

     

    #157666

    Mi puoi spiegare in questo codice cosa cambia da Defparam cumulate Orders = false  a Defparam cumulate Orders = true (vorrei eseguire una operazione alla volta, se entra cLong, non deve entrare fino alla chiusura di questo trade (in take profit, stop loss, trailing) né cLong2, né cShort2, ma soltanto se capita uno stop and reverse cShort (opposto chiaramente per lo short: se entra cShort, si può uscire, a parte i criteri di gestione, solo con cLong). Grazie

     

     

     

    #157668

    Defparam cumulate Orders = false impedisce di accumulare posizioni nella stessa direzione, mentre Defparam cumulate Orders = true permette   di accumulare posizioni nella stessa direzione.

    Il tuo esempio sopra NON fa Stop & Reverse, questo si (solo quando si verificano cLong2 o cShort2):

    DEFPARAM CumulateOrders = FALSE impedisce, da solo, di NON accumulare posizioni nella stessa direzione, quindi non ci sarebbe bisogno di aggiungere la condizione AND Not OnMarket,però è meglio metterla perché, se all’intendo dell’IF…ENDIF non c’è solo BUY o SELLSHORT, ma cnche altre istruzioni, ad esempio il calcolo dello SL,  queste verrebbero comunque eseguiote anche se nessuna posizione viene aggiunta. Per essere certi che IF…ENDIF non venga eseguito occorre quindi usare AND Not OnMarket.

    L’uso di AND Not OnMarket, però t’impedisce di fare lo Stop & Reverse. Lo Stop & Reverse si fa semplicemente aprendo un’operazione contraria. Quindi, sostituendo AND Not OnMarket, con AND Not LongOnMarket per i LONG e AND Not ShortOnMarket per gli SHORT, si fa in modo di eseguire l’IF…ENDIF solo per fare lo Stop & Reverse e non per accumulare. In questo caso usare, all’inizio, DEFPARAM CumulateOrders = FALSE, oppure DEFPARAM CumulateOrders = TRUE oppure ometterlo del tutto, è indifferente, in quanto con lo Stop & Reverse enrtra solo se in posizione contraria, quindi rimane aperta sempre e solo una posizione.

     

     

    #157669

    Ti stavo per scrivere questom mentre mi hai risposto:

    Finora ho notato questo: i risultati sono diversi da defparam cumulate orders true o false, inoltre mi prende lo stop and reverse (al di là di defparam), soltanto se alle righe 2 ed 11, scrivo al posto di onMarket, rispettivamente longOnMarket e shortOnMarket (ma anche qui con risultati diversi a seconda se defparam cumulate orders è true o false). Quindi userò longOnMarket e shortOnmarket in attesa del chiarimento su true o false in cumulate orders.

    Aggiungo dopo aver letto la tua risposta: perchè allora ho risultati diversi (utilizzando alle righe 2 ed 11 longOnmarket e shortOnMarket risualtati diversi a seconda defparam, mi puoi dare una spiegazione? GRAZIE

    #157673

    Utilizzando per avere necessariamente

     

    lo stop and reverse la formula  riportata, in attesa della tua risposta sul perchè ho comunque risultati differenti con defparam cumulate orders false o true, ti posso dire (dalle prove fatte) che cancellare completamente la riga con defparam porta agli stessi risultati di avere defparam = TRUE

    #157691

    I risultati sono diversi con TRUE e FALSE  perché se è TRUE le condizioni cLong e cShort consentono di accumulare posizioni, non essendoci la verifica se già a mercato.

    #157694

    Quindi mi sembra di capire che devo usare per forza, correggimi se sbaglio, defparam = False, dato che NON voglio accumulare posizioni. In ogni caso mi potresti anche spiegare questo comportamento del TS (uguale nel caso di  true o false), ossia perchè ci sono 3 posizioni e poi 1 ?

    #157705

    La prima sembrerebbe uno Stop & Reverse, cioè viene chiuso lo Short si apre un Long che però viene chiuso sulla stessa candela, il secondo è un’entrata Long.

    Però dovrei verificarlo bene con il codice usato e sullo stesso strumento e TF.

     

    #157708

    Grazie intanto per l’interesse. Controllerò tutto questo, tuttavia non mi sembra che possa accadere tutto questo. In ogni caso devo prima risolvere il problema di base di come, usando defparam = false (unica soluzione dato che non voglio cumulare contratti) non riesco ad usare lo stop and reverse solo sulla condizione cLong e cShort. Da questo punto di vista devo dire che PRT è veramente macchinoso! Non posso usare alla riga 2 ed 11 onMarket perchè non fa stop and reverse, come intuivo longOnmarket e shortOnMarket non funzionano…. MI SEMBTA IMPOSSIBILE che con un software come prt non si riesca a fare una cosa così banale che faccio senza problemi su un altro software (di cui non ha senso fare il nome), ma che sulla carta “dovrebbe” essere peggio. Se hai delle idee ti ringrazio.

    #157724

    Questo ti fa Stop & Reverse solo su cShort e cLong:

     

    #157728

    Lo ho provato, ma, come si vede nell’allegato, non prende, come dovrebbe, l’entrata long della freccia blu grande seguente alle 3 op su una barra (allegato precedente), quindi ancora non fa quello che dovrebbe.

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

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