DIFFERENZA TRA MEDIE MOBILI

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #158122 quote
    antvaudo
    Participant
    Junior

    Buongiorno,

    potreste aiutarmi a codificare in probacktest i seguenti indicatori (allego immagine)?

    Indicatore “SMA20-SMA50”:

    SMA20 = average[20,0](close)

    SMA50 = average[50,0](close)

    DIFFERENZA = SMA20 – SMA50

    RETURN DIFFERENZA,0

    Indicatore “EMA20-EMA50”:

    EMA20 = average[20,1](close)

    EMA50 = average[50,1](close)

    DIFFERENZA = EMA20 – EMA50

    RETURN DIFFERENZA,0

    Come evidenziato dall’immagine allegata vorrei:

    entrare Short quando entrambi gli indicatori sono rossi (27 luglio 2020)

    uscire Short quando entrambi gli indicatori sono verdi (5 novembre 2020) .

    entrare Long quando entrambi gli indicatori sono verdi (nell’immagine allegata entra long il 5 nov 2020)

    uscire Long quando entrambi gli indicatori sono rossi (nell’immagine allegata esce long il 14 dic 2020).

    Potreste aiutarmi a comprendere la logica utilizzata dal programma per il cambio di colore da rosso a verde di uno dei 2 indicatori?

    Grazie.

    Allegato.png Allegato.png
    #158134 quote
    robertogozzi
    Moderator
    Master

    Per favore usa il forum appropriato, come ben indicato in giallo qui sotto.

    Per le strategie è ProOrder quello corretto.

    Grazie 🙂

    L’ho spostato io.

    #158137 quote
    robertogozzi
    Moderator
    Master

    Una media è verde quando adesso è > rispetto alla candela precedente, altrimenti è rossa.

    Appena posso ti creo la strategia.

    #158188 quote
    antvaudo
    Participant
    Junior

    Grazie Roberto

    #158258 quote
    robertogozzi
    Moderator
    Master

    Scusami, la mia indicazione di VERDE/ROSSO era per una media.

    Qui è una differenza di medie, quindi il colore è VERDE quando la media veloce (20 periodi) è maggiore di quella lenta (a 50 periodi), altrimenti è ROSSA.

    Ecco la strategia:

    DEFPARAM CumulateOrders = false
    Sma20 = average[20,0](close)
    Sma50 = average[50,0](close)
    Ema20 = average[20,1](close)
    Ema50 = average[50,1](close)
    Verde = ((Sma20 - Sma50) > 0) AND ((Ema20 - Ema50) > 0)
    Rosso = ((Sma20 - Sma50) < 0) AND ((Ema20 - Ema50) < 0)
    IF Verde AND Not LongOnMarket THEN
       BUY 1 Contract AT Market
    ENDIF
    IF Rosso AND Not ShortOnMarket THEN
       SELLSHORT 1 Contract AT Market
    ENDIF
    #158950 quote
    antvaudo
    Participant
    Junior

    Buonasera Roberto,

    grazie per la disponibilità. Tuttavia il programma non esegue le condizioni di entrata e uscita che ho individuato manualmente sul grafico allegato. Per esempio lunedi 04/02/2019 vorrei entrare short all’apertura dopo che entrambi gli indicatori siano diventati negativi (rossi) alla chiusura di venerdi 01/02/2019; chiudere la posizione short in data 13/02/2019 dopo che entrambi gli indicatori siano diventati positivi (verdi) alla chiusura della giornata precedente. Come puoi rilevare dal grafico, il colore degli indicatori passa da verde a rosso anche se continua a essere al di sopra della linea dello zero e viceversa… forse “l’anomalia” è proprio qui… Il programma invece  entra long quando entrambi gli indicatori sono positivi (nello screeshot ho evidenziato i valori 0,00028 e 0,01426) – superiori alla linea dello zero,  short quando entrambi gli indicatori sono negativi – inferiori alla linea dello zero.

    Allegato1.png Allegato1.png
    #158986 quote
    robertogozzi
    Moderator
    Master

    Cosa vuyoi che sia VERDE o ROSSO, ciascuna media o la DIFFERENZA tra le medie?

    #159046 quote
    antvaudo
    Participant
    Junior

    Buondì Roberto,

    ho risolto in questo modo, impostando il programma in modo entrare LONG all’apertura del giorno seguente se (EMA20-EMA50) “differenza tra le medie esponenziali alla chiusura barra in corso” sia > (EMA20-EMA50)[1] “differenza tra le medie esponenziali alla chiusura barra giorno precedente     che (SMA20-SMA50) “differenza tra le medie semplici alla chiusura barra in corso” sia > (SMA20-SMA50)[1] “differenza tra le medie semplici alla chiusura barra giorno precedente. Condizioni inverse per stop and reverse.

    Leggevo che per poter richiamare un mio indicatore avrei potuto utilizzare la funzione CALL ma non ne sono venuto a capo.

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    
    EMA20 = Exponentialaverage[20](Close)
    EMA50 = Exponentialaverage[50](Close)
    SMA20 = average[20](Close)
    SMA50 = average[50](Close)
    
    // Condizioni per entrare su posizioni long
    indicator1 = (EMA20-EMA50)
    indicator2 = (EMA20-EMA50)[1]
    c1 = (indicator1 > indicator2)
    indicator3 = (SMA20 – SMA50)
    indicator4 = (SMA20 – SMA50)[1]
    c2 = (indicator3 > indicator4)
    
    IF c1 AND c2 THEN
    BUY 1 SHARES AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni long
    c3 = (indicator1 < indicator2)
    c4 = (indicator3 < indicator4)
    
    IF c3 AND c4 THEN
    SELL AT MARKET
    ENDIF
    // Condizioni per entrare su posizioni short (sono cdz identiche all’uscita long)
    c5 = (indicator1 < indicator2)
    c6 = (indicator3 < indicator4)
    
    IF c5 AND c6 THEN
    SELLSHORT 1 SHARES AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni short
    c7 = (indicator1 > indicator2)
    c8 = (indicator3 > indicator4)
    
    IF c7 AND c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    #159068 quote
    robertogozzi
    Moderator
    Master

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

    Grazie 🙂

    Per richiamare gli indicatori personalizzati si usa CALL, che è spiegata qui https://www.prorealcode.com/documentation/call/. In pratica prima dell’uguale si indicano tutti i parametri che l’indicatore restituisce con RETURN (se qualcuno non interessa occorre scrivere IGNORED e tra parentesi quadre occorre scrivere i valori su cui l’indicatore deve fare i propri calcoli (numero di periodi, ecc…).

    Ad ogni modo se t’interessa chiedere qualcosa sugli indicatori apri un novo argomento nel forum di supporto ProBuilder.

    antvaudo thanked this post
    #159160 quote
    antvaudo
    Participant
    Junior

    Grazie mille Roberto!  Buona domenica

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

DIFFERENZA TRA MEDIE MOBILI


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
antvaudo @antvaudo Participant
Summary

This topic contains 9 replies,
has 2 voices, and was last updated by antvaudo
5 years ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 01/17/2021
Status: Active
Attachments: 2 files
Logo Logo
Loading...