Mantenere ed eliminare ordine pendente stop o limit

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #53244 quote
    maximus78
    Participant
    Senior

    Buonasera a tutti, mi servirebbe una mano per impostare questi comandi:

    1. mantenere un ordine pendente per un numero definito di barre in quanto ho notato che probacktest tiene in memoria l’ordine solo per la barra successiva alla condizione impostata;
    2. eliminare un ordine pendente se un’altra condizione si verifica prima che l’ordine venga preso, esempio:
    if not longomarket and C1, C2, C3 then
    
    buy 1 shares at high[1] stop
    
    set stop loss X
    
    set target profit Y

    Dovrei adesso impostare il n° di barre che tenga in memoria l’ordine stop (per esempio per 50 barre) ed impostare che al verificarsi di una successiva condizione C4, se non ancora a mercato, l’ordine pendente e stop loss/target vengano eliminati.

    grazie mille in anticipo!

    Massimo

    #53248 quote
    robertogozzi
    Moderator
    Master
    Non devi fare niente, fa tutto ProOrder in automatico. L’ordine viene cancellato ad ogni barra e viene di nuovo piazzato se le condizioni persistono.
    #53254 quote
    maximus78
    Participant
    Senior

    Ciao Roberto, no infatti lo so questo…ma è quando le condizioni non sussistono più,  poni il caso che:

    c1=low[2]>low[1]

    c2=low[0]>low[1]

    c3=low[0]>low[2]

    e metto un ordine pendente sell stop su low[1] che è il più basso del pattern.

    La candela successiva a low[0] va sotto low [0] ma non tocca l’ordine pendente, ed anche le due successive…..a questo punto le condizioni di entrata non sussistono più perchè non c’è più il pattern, ma io voglio che l’ordine pendente rimanga li ad aspettare per altre 10 candele, come faccio?? Invece, l’ordine rimane solo per la candela successiva al pattern e poi si cancella (nel backtest segna così)….

    Ci sarà un modo per mantenere l’ordine attivo una volta impostato….

     

     

    #53275 quote
    robertogozzi
    Moderator
    Master

    Si, settare una variabile quando il pattern si verifica e resettarlo quando l’ordine entra a mercato, oppure dopo n candele. Esempio:

       .
       .
    ONCE MioPattern = 0                  //inizializzare la variabile che indica la barra dove si è formato il Pattern
       .
       .
    IF OnMarket THEN
       MioPattern = 0                    //resettare la variabile al valore iniziale, se a mercato
    ENDIF
    IF MioPattern THEN
       IF (BarIndex - MioPattern) > 10 THEN
          MioPattern = 0                 //resettare la variabile al valore iniziale dopo n candele
       ENDIF
    ENDIF
       .
       .
    c1=low[2]>low[1]
    c2=low[0]>low[1]
    c3=low[0]>low[2]
    
    IF c1 AND c2 AND c3 then
       MioPattern = BarIndex             //salvare il numero della barra dove il pattern si è formato
       SellPrice  = low[1]               //salvare il prezzo di entata a mercato
    ENDIF
    
    IF MioPattern THEN
       SELL 1 CONTRACTS AT SellPrice STOP
    ENDIF

    Dove ho messo i punti tu puoi mettere qualunque altro codice aggiuntivo che t’interessi mettere.

    #53517 quote
    maximus78
    Participant
    Senior

    Grazie Roberto….sempre disponibilissimo!!

    sai anche come si può fare ad eliminare un ordine pendente impostato (anche stop loss e take profit connessi) oltre al fatto delle 10 barre, se sopraggiunge una determinata condizione?

    Con il caso di prima…. se il prezzo supera un massimo senza raggiungere sellprice? Per esempio:

    c4=Highest[100](high)

     

    #53523 quote
    robertogozzi
    Moderator
    Master

    Ogni ordine pendente viene CANCELLATO alla chiusura della candela e solo se le condizioni permangono e tu gli dici di reimmeterlo, ProOrder lo reimmette. Per cui se si verificano certe condizioni è sufficiente che tu non REIMMETTA l’ordine.

    Nell’esempio sopra, se le condizioni c1, c2 e c3 si verificano, o se si erano verificate in precedenza, la strategia reimmette l’ordine alla riga 26. Se vuoi impostare delle condizioni che NON facciano reimmettere l’ordine pendente, basta che (sulla base di condizioni di tua scelta) resetti a ZERO la variabile MioPattern prima della riga 26.

    Con il tuo esmpio

    c4=Highest[100](high)

    cosa intendevi fare? Hai settato una variabile al massimo più alto delle ultimne 100 barre ed a che ti serve?

    Rileggendo attentamente l’esempio di cui sopra, perché hai chiesto di inserire un ordine SELL STOP? Sell si usa per uscire da posizioni LONG già aperte. Se intendi aprire una posizione SHORT occorre scrivere SELLSHORT.

    #53535 quote
    maximus78
    Participant
    Senior

    E’ solo un esempio quello sopra….voglio capire il concetto, anche il comando sell è in realtà sellshort come dici tu, scusa non mi sono reso conto…..

    quello che intendo è se imposto un ordine pendente ma il prezzo si allontana troppo dall’ordine stesso e va nella direzione opposta e l’ordine rimane attivo, nell’esempio sopra il prezzo invece che scendere e verso low [1] e vendere,

    mettiamo il caso che sale e si forma un highest[100](high)….che è ben più in alto rispetto alla posizione corrente del prezzo…ti inserisco un allegato che è più chiaro

     

    #53539 quote
    robertogozzi
    Moderator
    Master

    Ho capito meglio.

    Ad ogni modo, come ti ho detto, alla chiusura della candela corrente l’ordine viene cancellato, per cui basta che elimini le condizioni che lo possonano fare reimmettere.

    Nel tuo esempio puoi fare, alla riga 19 o 24 (meglio la 24):

    c4 = Highest[100](high)
    IF c4 THEN
       MioPattern = 0
    ENDIF

    e l’ordine, alla riga 26, non sarà più reimmesso in quanto la condizione trigger non è più verificata.

    #53675 quote
    maximus78
    Participant
    Senior

    Chiarissimo, grazie Roberto!

    #53687 quote
    robertogozzi
    Moderator
    Master

    Scusami, ma l’esempio di cui sopra è errato (messo com’è è SEMPRE vero), va sostituito con:

    c4 = Highest[100](high)
    IF close > c4 THEN
       MioPattern = 0
    ENDIF

     

    Nicolas thanked this post
    #53787 quote
    maximus78
    Participant
    Senior

    Si infatti, grazie Roberto

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

Mantenere ed eliminare ordine pendente stop o limit


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
maximus78 @maximus78 Participant
Summary

This topic contains 10 replies,
has 2 voices, and was last updated by maximus78
8 years, 2 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 11/19/2017
Status: Active
Attachments: 1 files
Logo Logo
Loading...