Definizione di un punto cross

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #248991 quote
    demuia
    Participant
    New

    Salve, chiedo un aiuto per definire correttamente un punto chiave da utilizzare nel mio sistema. Di seguito un esempio:

    Ind1 = Supertrend[30,50]

    Punto L = Close CROSSES OVER Ind1
    Punto S = Close CROSSES UNDER Ind1

    c1 = (NOT ONMARKET AND Close > Ind1 AND Ind1<Punto L)
    IF c1 THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF

    // Condizioni per uscire da posizioni long
    c2 = (SHORTONMARKET AND Close < Ind2)
    IF c2 THEN
    EXITSHORT 1 CONTRACTS AT MARKET
    ENDIF

    c3 = (SHORTONMARKET AND Ind1>Punto L)
    IF c3 THEN
    EXITSHORT 1 CONTRACTS AT MARKET
    ENDIF

    Ovviamente lo script continua con la situazione opposta riferita al Punto S.

    Grazie in anticipo

    #248995 quote
    Iván González
    Moderator
    Master

    Ciao,

    Il problema principale è che stai assegnando a Punto L e Punto S un valore booleano (il risultato di crosses over / crosses under) e poi tenti di usare questi valori come livelli di prezzo nelle comparazioni (Ind1 < Punto L o Ind1 > Punto L), il che non ha senso: un booleano non è un prezzo.

    Per risolvere la situazione, bisogna separare due concetti:

    Segnale di incrocio (booleano): rilevare il momento in cui il prezzo incrocia l’indicatore.

    Livello di riferimento (numerico): memorizzare il valore di Ind1 nella barra in cui si è verificato l’incrocio per confrontarlo successivamente.

    Di seguito un esempio di come farlo in ProBuilder:

    // 1) Calcolo del Supertrend
    periodATR    = 20
    multiplier   = 3
    Ind1         = Supertrend[periodATR,multiplier]
    
    // 2) Rilevazione del segnale di incrocio
    puntoLsenal = close crosses over Ind1    // segnale vero nella barra in cui il prezzo incrocia al rialzo
    puntoSsenal = close crosses under Ind1   // segnale vero nella barra in cui il prezzo incrocia al ribasso
    
    // 3) Registrazione del valore di Ind1 al momento del segnale
    ONCE puntoLnivel = 0    // inizializza solo una volta
    ONCE puntoSnivel = 0
    
    IF puntoLsenal THEN
       puntoLnivel = Ind1   // salvo il livello di Ind1 al segnale long
    ENDIF
    
    IF puntoSsenal THEN
       puntoSnivel = Ind1   // salvo il livello di Ind1 al segnale short
    ENDIF
    
    // 4) Logica di entrata in vendita (short) usando puntoLnivel
    c1 = NOT onmarket AND close > Ind1 AND Ind1 <= puntoLnivel
    IF c1 THEN
       SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF
    
    // 5) Uscita dalla posizione short
    c2 = shortonmarket AND close crosses under Ind1   // uscita per incrocio a ribasso del prezzo
    c3 = shortonmarket AND Ind1 > puntoLnivel         // uscita se Ind1 supera il livello catturato
    
    IF c2 OR c3 THEN
       EXITSHORT AT MARKET
    ENDIF
    
    // La logica per “Punto S” (long) è speculare:
    // - usare puntoSnivel invece di puntoLnivel
    // - invertire crosses under / crosses over
    // - invertire le comparazioni
    
    // Visualizzazione su grafico
    graphonprice puntoLnivel
    graphonprice puntoSnivel
    graphonprice Ind1
    robertogozzi thanked this post
    #248998 quote
    demuia
    Participant
    New

    Grazie Ivan, non ci sarei mai riuscito da solo.
    Mi confermi che il PuntoL (e S) si aggiorna al successivo incrocio vero?

    #249000 quote
    Iván González
    Moderator
    Master

    Prego! Sì, si aggiornano con gli incroci. Puoi verificarlo con il comando graphonprice.

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

Definizione di un punto cross


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
demuia @demuia Participant
Summary

This topic contains 3 replies,
has 2 voices, and was last updated by Iván González
6 months, 3 weeks ago.

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