Posizioni cumulative attivate

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #188740 quote
    emanuele81
    Participant
    Senior

    Buongiorno avrei una domanda è possibile che se attivo le posizione cumulative si ha lo stop loss che il take profit non funzionino?

    Eventualmente Come posso scrivere un codice dove quelle posizioni cumulative attivate mi funzioni se lo stop loss che il profit ?

    Grazie

    #188741 quote
    robertogozzi
    Moderator
    Master

    Perché non funzionano?

    A me risulta di si, anche se vengono calcolati dal prezzo medio, in quanto sono entrambi unici per tutte le posizioni aperte, non singolarmente per ogni entrata.

    #188794 quote
    emanuele81
    Participant
    Senior

    Scusa Roberto, è possible attiavre posizioni cumulative sole se comprendono 2 giorni?

    cerco di spiegarmi meglio, se si creano ingressi nella stessa giornata le posizioni cumulative sono disattiavte se invece un’operazione si apre per esempio di lunedi e il martedi è ancora aperta a quel punto la posizione cumulativa si attiva, per una sola operazione.

    Non so se si può fare

    #188825 quote
    robertogozzi
    Moderator
    Master

    Generalmente si usa DEFPARAM CUMULATEORDERS=FALSE per essere sicuri di non aprire posizioni multiple indesiderate.
    Ma non è obbligatorio, se si scrive il codice con un pò di attenzione NON è comunque possibile aprire posizioni indesiderate. Diciamo che è sicuramente un grosso aiuto per chi inizia con la programmazione nel linguaggio ProRealTime e deve acquisire pratica con le istruzioni disponibili.

    Se si verifica, ogni volta, se siamo già a mercato o meno, ecco che quella riga non serve.

    Se si usa quella riga suddetta NON si possono aprire/aggiungere ulteriori posizioni se ce n’è una già aperta, indipendentemente che si provi ad aprirle lo stesso giorno o in giorni diversi.

    Basta NON scrivere la riga di cui sopra (oppure scriverla così: DEFPARAM CUMULATEORDERS=TRUE, ma viene assunta per difetto)  e si ha la libertà di aggiungere o NON aggiungere altre posizioni a piacimento.
    Per essere sicuri di NON aprire più di una posizione occorre scrivere:

    IF MieCondizioniLong AND Not OnMarket THEN
       BUY 1 Contract at Market
    ENDIF

    Se, invece, si vuole acquistare o aggiungere un’altra posizione, basta togliere AND NOT ONMARKET.

    Quanto a Lunedì o Martedì, non ho capito bene cosa tu intenda, una volta abilitate più posizioni, puoi aggiungerle quando vuoi, che sia lo stesso giorno o in giorni diversi.

    Se vuoi, al massimo, entrare con 3 posizioni basta che verifichi di non averle già aperte tutte e tre:

    IF MieCondizioniLong AND abs(CountOfPosition) < 3 THEN
       BUY 1 Contract at Market
    ENDIF

    CountOfPosition restituisce il numero di posizioni attualmente aperte, con un numero positivo se sono LONG, oppurte negativo se sono SHORT. Proprio per questo ho usato ABS(), in modo da avere sempre un valore positivo, tanto non possono esserci aperte contemporaneamente posizioni contrarie (se lo fai ottieni lo Stop & Reverse, viene chiusa quella in corso e ne viene aperte una opposta).

    #188846 quote
    emanuele81
    Participant
    Senior

    Grazie per la spiegazione Roberto ora ho un’idea su cosa fare

    #189314 quote
    emanuele81
    Participant
    Senior

    Ciao Roberto,

    È possibile sulle posizioni cumulative far sì che quando si apre la seconda posizione venga chiusa quella in corso?

    #189333 quote
    robertogozzi
    Moderator
    Master

    Si, scrivi così:

    IF MieCondizioniLong  THEN
       IF OnMarket THEN
          SELL      AT Market
          EXITSHORT AT Market
       ENDIF
       BUY 1 CONTRACT AT Market
    ENDIF
    IF MieCondizioniShort THEN
       IF OnMarket THEN
          SELL      AT Market
          EXITSHORT AT Market
       ENDIF
       SELLSHORT 1 CONTRACT AT Market
    ENDIF
    #189377 quote
    emanuele81
    Participant
    Senior

    Grazie Roberto,

    però qualcosa non funziona, praticamente mi chiude la posizione ma non  mi riapre la seguente, invece dovrebbe farlo.

    #189391 quote
    robertogozzi
    Moderator
    Master

    In effetti, questo funziona, però ogni posizione viene aperta dopo UNA barra (è il tempo che serve a ProOrder per sapere che non sei più a mercato, essendo vietato l’accumulo):

    DEFPARAM CumulateOrders = false
    SELL AT Market
    BUY  AT Market

    questo, invece, NON chiude nessuna posizione, in quanto, pur essendo l’accumulo abilitato, NON accumuli niente, in quanto chiudi e riapri immediatamente, quindi c’è una continuazione. ProOrder evidentemente lo verifica e lascia tutto invariato (perché chiudere una posizione e rientrare subito allo stesso prezzo nella stessa direzione? Servirebbe solo a pagare uno spread al broker):

    DEFPARAM CumulateOrders = true
    SELL AT Market
    BUY  AT Market
    #189400 quote
    emanuele81
    Participant
    Senior

    Grazie mille Roberto, provo a mandare la seconda

    #189974 quote
    emanuele81
    Participant
    Senior

    Ciao Roberto,

    con le posizioni cumulative attivate e con il take profit impostato, ho visto che non mi chiude le operazioni al raggiungimento del take profit, ma ne caso apra più operazioni mi fa una media tra le operazioni aperte, a me servirebbe invece che chiuda ogni operazione singolarmente, come si puo fare questa cosa. Grazie

    #189988 quote
    robertogozzi
    Moderator
    Master

    Non si può. Fa una media e non si può uscire parzialmente con ordini pendenti, perché IG non lo supporta, quindi funzionerebbe solo in backtest.

    #189993 quote
    emanuele81
    Participant
    Senior

    Grazie Roberto, certo che però è una bella fregatura

Viewing 13 posts - 1 through 13 (of 13 total)
  • You must be logged in to reply to this topic.

Posizioni cumulative attivate


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
emanuele81 @emanuele81 Participant
Summary

This topic contains 12 replies,
has 2 voices, and was last updated by emanuele81
4 years ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 02/24/2022
Status: Active
Attachments: No files
Logo Logo
Loading...