Ordini Pendenti – Free Trade

Viewing 15 posts - 1 through 15 (of 17 total)
  • Author
    Posts
  • #80518 quote
    Paolo Crovella
    Participant
    Average

    volevo chiedervi, se con Prorealtime si possono creare dei Form dove poter inserire:

    Prezzo di Entrata:
    Data ora di scadenza
    Take Profit1 in Pips
    Take Profit2 in Pips
    Stop Loss in Pips
    Numero di Lotti
    Breakeven in Pips

    Avviando, apre due ordini pendenti STOP uno con Take Profit1 e uno Take Profit2,
    Quando si arriva al take Profit1 il secondo ordine gli verrà spostato lo stop loss al pari dei pips del Take Profit1
    morale preso il Take Profit1 se va’ male il risultato è uguale a zero come perdita
    ulteriore Trailing stop portando a breakeven
    grazie mille
    Paolo

    #80523 quote
    robertogozzi
    Moderator
    Master

    Si può provare, il problema è che è tutto basato su ordini pendenti, sia gli orfini iniziali che li SL e i TP e non so se il sistema li accetta, si può provare.

    Gli ordini pendenti durano solo per UNA sola barra (quindi non c’è bisogno di cancellarli), dopodiché vanno reimmessi se servono ancora.

    Su quale strumento e TF vorresti operare?

    Puoi farmi un esempio, sia long che short, con numeri?

    #80528 quote
    Paolo Crovella
    Participant
    Average

    Sottostante EURUSD
    TimeFrame: 30 minuti

    Entrata Long
    Numero Lotti: 1
    Data Ora di Scadenza: 13/09/2018 17:30
    Prezzo Entrata Stop: 1.16350
    Stop Loss: 15 pips 1.16200
    Take Profit 1: 8 pips 1.16430
    Take Profit 2: 40 pips 1.16750
    Breakeven: 25 pips 1.16600

    alla chiusura del primo lotto prezzo 1.16430
    il secondo lotto viene spostato lo stop loss al prezzo: 1.16270
    ——————————————————————–
    Entrata Short
    Numero Lotti: 1
    Data Ora di Scadenza: 13/09/2018 14:00
    Prezzo Entrata Stop: 1.16930
    Stop Loss: 18 pips 1.17110
    Take Profit 1: 8 pips 1.16850
    Take Profit 2: 40 pips 1.16530
    Breakeven: 25 pips 1.16680

    alla chiusura del primo lotto prezzo 1.16850
    il secondo lotto viene spostato lo stop loss al prezzo: 1.17010

    EURUSD-30-min.jpg EURUSD-30-min.jpg
    #80531 quote
    robertogozzi
    Moderator
    Master

    Scusami, l’ho notato solo adesso. Per il momento NON è possibile chiudere posizioni parziali in automatico (dovrebbe esserlo entro pochi mesi).

    #80540 quote
    Paolo Crovella
    Participant
    Average

    Grazie Roberto
    ottima notizia

    ulteriori soluzioni:

    Potrebbe esser gestita aprendo  2 posizioni, su metatrade funziona così.

    oppure

    se fosse in grado gestirmi anche solo la seconda posizione take profit2 con trailing stop come descritto sarei ottimamente contento

    grazie mille
    Paolo

    #80582 quote
    robertogozzi
    Moderator
    Master

    Questo è il template che ho predisposto, adattalo a qualche tua strategia e provalo (io non l’ho testato):

    PrezzoEntrata  = xxxxx               //indicare il prezzo desiderato (può essere una costante tipo CLOSE, oppure un indicatore)
    GiornoScadenza = aaaammgg            //indicare il giorno di scadenza, nel formato AAAAMMGG
    OraScadenza    = hhmmss              //indicare l'ora di scadenza, nel formato HHMMSS
    Lotti          = xx                  //indicare il numero dei lotti (il numero assegnato quando viene lanciata la strategia è prevalente, se inferiore)
    Sl             = xx                  //numero di pips di Stop Loss
    Tp             = xx                  //numero di pips di Target Profit, può essere anche un moltiplicatore, es.: Tp = Sl * 1.5)
    BreakEven      = xx * pipsize        //numero di pips di profitto raggiunti i quali l'operazione viene portata in pareggio
    
    TradeON = (date <= GiornoScadenza)   //TradeON = 1       si può tradare
    IF date = GiornoScadenza THEN        //TradeON = 0   non si può tradare
       IF time > OraScadenza THEN
          TradeON = 0
       ENDIF
    ENDIF
    IF MieCondizioni AND close => PrezzoEntrata AND Not OnMarket AND TradeON THEN
       BUY/SELLSHORT Lotti CONTRACTS AT MARKET
       SET TARGET pPROFIT Tp
       SET STOP   pLOSS   Sl
    ENDIF
    IF Not OnMarket THEN
       PrezzoUscita = 0
    ELSIF LongOnMarket THEN              //BreakEven per i LONG
       IF (TRADEPRICE - close) >= Breakeven THEN
          PrezzoUscita = TRADEPRICE      //Breakeven
       ENDIF
    ELSE                                 //BreakEven per gli SHORT
       IF (close - TRADEPRICE) >= Breakeven THEN
          PrezzoUscita = TRADEPRICE      //Breakeven
       ENDIF
    ENDIF
    IF PrezzoUscita THEN
       IF LongOnMarket THEN
          SELL AT PrezzoUscita STOP      //Uscire in pareggio con ordine pendente
       ELSE
          EXITSHORT AT PrezzoUscita STOP //Uscire in pareggio con ordine pendente
       ENDIF
    ENDIF
    Paolo Crovella thanked this post
    #98668 quote
    Paolo Crovella
    Participant
    Average
    Ho Apportato qualche modifica
    PrezzoEntrata  = xxxxx               //indicare il prezzo desiderato (può essere una costante tipo CLOSE, oppure un indicatore)
    GiornoScadenza = aaaammgg            //indicare il giorno di scadenza, nel formato AAAAMMGG
    OraScadenza    = hhmmss              //indicare l’ora di scadenza, nel formato HHMMSS
    Lotti          = xx                  //indicare il numero dei lotti (il numero assegnato quando viene lanciata la strategia è prevalente, se inferiore)
    Sl             = xx                  //numero di pips di Stop Loss
    Tp             = xx                  //numero di pips di Target Profit, può essere anche un moltiplicatore, es.: Tp = Sl * 1.5)
    BreakEven      = xx * pipsize        //numero di pips di profitto raggiunti i quali l’operazione viene portata in pareggio
    TradeON = (date <= GiornoScadenza)   //TradeON = 1       si può tradare
    IF date = GiornoScadenza THEN        //TradeON = 0   non si può tradare
    IF time > OraScadenza THEN
    TradeON = 0
    ENDIF
    ENDIF
    IF  close >= PrezzoEntrata AND Not OnMarket AND TradeON THEN
    SELLSHORT Lotti CONTRACTS AT PrezzoEntrata STOP
    SET TARGET pPROFIT Tp
    SET STOP   pLOSS   Sl
    ELSE
       BUY Lotti CONTRACTS AT PrezzoEntrata STOP
    SET TARGET pPROFIT Tp
    SET STOP   pLOSS   Sl
    ENDIF
    IF Not OnMarket THEN
    PrezzoUscita = 0
    ELSIF LongOnMarket THEN              //BreakEven per i LONG
    IF (TRADEPRICE – close) >= Breakeven THEN
    PrezzoUscita = TRADEPRICE      //Breakeven
    ENDIF
    ELSE                                 //BreakEven per gli SHORT
    IF (close – TRADEPRICE) >= Breakeven THEN
    PrezzoUscita = TRADEPRICE      //Breakeven
    ENDIF
    ENDIF
    IF PrezzoUscita THEN
    IF LongOnMarket THEN
    SELL AT PrezzoUscita STOP      //Uscire in pareggio con ordine pendente
    ELSE
    EXITSHORT AT PrezzoUscita STOP //Uscire in pareggio con ordine pendente
    ENDIF
    ENDIF
    #98671 quote
    robertogozzi
    Moderator
    Master

    >> Per chiarezza dei messaggi sul Forum di Prorealcode, separate le parti del vostro codice usando il pulsante per l’inserimento del testo del codice. <<
    Grazie.

    #98673 quote
    Paolo Crovella
    Participant
    Average
    PrezzoEntrata  = xxxxx               //indicare il prezzo desiderato (può essere una costante tipo CLOSE, oppure un indicatore)
    GiornoScadenza = aaaammgg            //indicare il giorno di scadenza, nel formato AAAAMMGG
    OraScadenza    = hhmmss              //indicare l’ora di scadenza, nel formato HHMMSS
    Lotti          = xx                  //indicare il numero dei lotti (il numero assegnato quando viene lanciata la strategia è prevalente, se inferiore)
    Sl             = xx                  //numero di pips di Stop Loss
    Tp             = xx                  //numero di pips di Target Profit, può essere anche un moltiplicatore, es.: Tp = Sl * 1.5)
    BreakEven      = xx * pipsize        //numero di pips di profitto raggiunti i quali l’operazione viene portata in pareggio
    TradeON = (date <= GiornoScadenza)   //TradeON = 1       si può tradare
    IF date = GiornoScadenza THEN        //TradeON = 0   non si può tradare
    IF time > OraScadenza THEN
    TradeON = 0
    ENDIF
    ENDIF
    IF  close >= PrezzoEntrata AND Not OnMarket AND TradeON THEN
    SELLSHORT Lotti CONTRACTS AT PrezzoEntrata STOP
    SET TARGET pPROFIT Tp
    SET STOP   pLOSS   Sl
    ELSE
       BUY Lotti CONTRACTS AT PrezzoEntrata STOP
    SET TARGET pPROFIT Tp
    SET STOP   pLOSS   Sl
    ENDIF
    IF Not OnMarket THEN
    PrezzoUscita = 0
    ELSIF LongOnMarket THEN              //BreakEven per i LONG
    IF (TRADEPRICE – close) >= Breakeven THEN
    PrezzoUscita = TRADEPRICE      //Breakeven
    ENDIF
    ELSE                                 //BreakEven per gli SHORT
    IF (close – TRADEPRICE) >= Breakeven THEN
    PrezzoUscita = TRADEPRICE      //Breakeven
    ENDIF
    ENDIF
    IF PrezzoUscita THEN
    IF LongOnMarket THEN
    SELL AT PrezzoUscita STOP      //Uscire in pareggio con ordine pendente
    ELSE
    EXITSHORT AT PrezzoUscita STOP //Uscire in pareggio con ordine pendente
    ENDIF
    ENDIF
    #98675 quote
    robertogozzi
    Moderator
    Master

    La domanda qual’è?

    #98677 quote
    Paolo Crovella
    Participant
    Average

    Scusa ho pubblicato prima di inserire la domanda.
    la domanda è questa, OK ordine scade in una determinata ora e data, è possibile limitare ad una sola esecuzione.

    altrimenti dopo l’esecuzione in profitto o in perdita riparte immediatamente l’ordine, nella mia strategia non dovrebbe avvenire

    grazie mille

    #98684 quote
    robertogozzi
    Moderator
    Master

    Aggiungi all’inizio, diciamo come prima riga:

    ONCE Attivo = 1              //1=attivo    0=inattivo
    IF IntraDayBarIndex = 0 THEN
       Attivo = 1
    ENDIF

    Poi le linee tra 14 e 22 racchiudele in questo blocco IF…END IF:

    IF Attivo THEN
       .
       . // qui metti le righe 14-22
       .
       Attivo = 0
    ENDIF
    #99303 quote
    Paolo Crovella
    Participant
    Average

    Grazie mille il robot funziona benissimo, con alcune mie ulteriori modifiche.

    -Volevo fare una domanda, è possibile calcolare lo spread per poi usarlo sul mio robot?

    Buon Lavoro
    Paolo

    #99307 quote
    robertogozzi
    Moderator
    Master

    Non è possibile farlo in reale.

    Forse si può fare in backtest, devo guardare un attimo e ti so dire.

    #99321 quote
    robertogozzi
    Moderator
    Master

    Puoi lanciare questo in ProBackTest, sul TF 1 secondo, per vedere la differenza tra acquisto e vendita, però nel frattempo è passato 1 secondo, non credo faccia molta differenza:

    defparam cumulateorders=false
    a = tradeprice(1)
    b = tradeprice(2)
    c = a - b
    SELL AT MARKET
    BUY  AT MARKET
    graph a
    graph b
    graph c
    x-17.jpg x-17.jpg
Viewing 15 posts - 1 through 15 (of 17 total)
  • You must be logged in to reply to this topic.

Ordini Pendenti – Free Trade


ProOrder: Trading Automatico & Backtesting

New Reply
Author
Summary

This topic contains 16 replies,
has 2 voices, and was last updated by robertogozzi
6 years, 8 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 09/14/2018
Status: Active
Attachments: 3 files
Logo Logo
Loading...