Codice Prorealtime sistema trading

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #42763 quote
    Marco Ciceri
    Participant
    New

    Sono un neofita della piattaforma Prorealtime.

    Volevo chiedervi un aiuto per creare un codice che esegua questa operazione:

    Acquisto :

    Se chiusura inferiore ad banda bollinger allora compra apertura il giorno dopo;

    Vendi se :

    alla prima chiusura > prezzo di ingresso;

    vendi comunque dopo 30 giorni

    Grazie a chi mi puo’ aiutare.

    #42768 quote
    robertogozzi
    Moderator
    Master

    ProOrder apre ogni posizione SEMPRE all’apertura della barra successiva, per cui con grafici DAILY la cosa è semplice ed automatica.

    Ho scritto questo, provato brevemente su Eur/Usd con grafico DAILY:

    DEFPARAM CumulateOrders = False                   //Posizioni multiple disattivate
    // definizione la Banda di Bollinger
    BBavg  = average[20](close)                       //linea mediana delle BB a 20 periodi
    BollUp = BBavg + ((std[20](close)) * 2.0)         //Limite superiore BB con deviazione 2.0
    BollDn = BBavg - ((std[20](close)) * 2.0)         //Limite inferiore BB con deviazione 2.0
    // uscire dalle posizioni lunghe se superato (al rialzo) il prezzo d'entrata
    IF LongOnMarket AND close > EntryPrice THEN
       SELL AT MARKET                                 //uscire da poisioni LONG se prezzo > entrata
    ENDIF
    // uscire dalle posizioni corte se superato (al ribasso) il prezzo d'entrata
    IF ShortOnMarket AND close < EntryPrice THEN
       EXITSHORT AT MARKET                            //uscire da poisioni SHORT se prezzo < entrata
    ENDIF
    // uscire COMUNQUE dopo "n" giorni
    IF (BarIndex - TradeIndex) >= 30 THEN             //chiudere ogni posizione dopo 30 giorni (barre daily)
       SELL      AT MARKET
       EXITSHORT AT MARKET
    ENDIF
    //                           LONG
    IF close < BollDn THEN                            //Apri posizione se chiusura sotto la BB inferiore
       EntryPrice = close
       BUY 1 CONTRACT AT MARKET
    ENDIF
    //                           SHORT
    IF close > BollUp THEN                            //Apri posizione se chiusura sopra la BB superiore
       EntryPrice = close
       SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    //                 Take Profit & Stop Loss
    SET TARGET pPROFIT 30
    SET STOP   pLOSS   15

    Per funzionare devi, come ho detto, utilizzarlo con grafici DAILY, se vuoi farlo con grafici inferiori, la cosa si complica perché ProOrder non consente di operare su Timeframe diversi. Per cui, ad esempio, se vuoi usarlo con grafici ad 1 ora puoi verificare, con l’istruzione TIME, quando sei all’ultima barra della giornata. Tieni presente, tuttavia, che in tal caso i risultati di un indicatore sono falsati in quanto avresti condizioni basate su una BB applicata ad un’ora, non sul daily.

    Questo almeno fin quando arriverà la nuova versione, forse entro fine anno, che pare sarà slegata dai timeframe.

    #43105 quote
    Marco Ciceri
    Participant
    New

    Grazie per il codice. Sono in vacanza e non ho potuto provarlo. Appena rientro le faccio sapere come va. Grazie.

    #44110 quote
    Marco Ciceri
    Participant
    New

    Buongiorno,

    grazie per il codice. L’ho adattato alle mie esigenze e lo posto di seguito:

    DEFPARAM CumulateOrders = False //Posizioni multiple disattivate
    // definizione la Banda di Bollinger
    BBavg = average[10](close) //linea mediana delle BB a 20 periodi
    BollDn = BBavg - ((std[10](close)) * 1.5) //Limite inferiore BB con deviazione 2.0
    // uscire dalle posizioni lunghe se superato (al rialzo) il prezzo d'entrata
    IF LongOnMarket AND close > EntryPrice THEN
    SELL AT MARKET //uscire da poisioni LONG se prezzo > entrata
    ENDIF
    // uscire COMUNQUE dopo "n" giorni
    IF (BarIndex - TradeIndex) >= 30 THEN //chiudere ogni posizione dopo 30 giorni (barre daily)
    SELL AT MARKET
    ENDIF
    // LONG
    IF close < BollDn THEN //Apri posizione se chiusura sotto la BB inferiore
    EntryPrice = close
    BUY 10000 cash AT MARKET
    ENDIF
    // Take Profit & Stop Loss
    SET STOP $LOSS 500

    Ho visto che la vendita avviene all’apertura del giorno successivo al realizzarsi della condizione.

    Come si fa a chiudere la posizione il giorno stesso del verificarsi della condizione ( cioè chiudere alla chiusura della barra corrente se la chiusura è > al prezzo di ingresso ), anche lo stesso giorno ?

    Grazie a tutti per  l’aiuto.

    #44117 quote
    robertogozzi
    Moderator
    Master

    Ogni ordine, salvo gli ordini Limit (che vengono ripetuti ad ogni barra, cioè chiusi quando chiude la candela e riaperti subito all’apertura della nuova candela) viene SEMPRE eseguito all’apertura della barra successiva, quindi è come se fosse chiuso alla chiusura della barra corrente, tranne forse qualche millisecondo.

    NON è possibile, invece, eseguire qualunque cosa mentre la barra è in corso, questo almeno finché non sarà disponibile (forse entro fine anno) la nuova piattaforma slegata ai timeframe (detta anche multitimeframe).

    Nicolas thanked this post
    #44168 quote
    Nicolas
    Keymaster
    Master

    > Inserite il segno di spunta all’interno della casella sul vostro profilo, per aggiornare il vostro paese. <<
    >> 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 ragazzi.

    @roberto
    buon lavoro! come di solito 😉

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

Codice Prorealtime sistema trading


ProOrder: Trading Automatico & Backtesting

New Reply
Author
Summary

This topic contains 5 replies,
has 3 voices, and was last updated by Nicolas
8 years, 5 months ago.

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