Aiuto brekout max della signal bar

Viewing 15 posts - 1 through 15 (of 43 total)
  • Author
    Posts
  • #71261 quote
    Geronima Ortiz
    Participant
    Average

    Salve ragazzi, è un pò di tempo che provo a scrivere un semplice sistema, ma sono ferma in un punto morto e dopo 1000 tentativi andati a vuoto ho deciso di chieder aiuto qui sperando che qualche anima buona riesca ad aiutarmi.

    In sostanza dopo aver verificato che MIO INDICATORE abbia incrociato al rialzo il valore -50

    vorrei che venga presa una posizione LONG solo quando avviene la ROTTURA DEL MAX DELLA BARRA CHE HA GENERATO IL SEGNALE

    se nel frattempo MIO INDICATORE non abbia vanificato la condizione iniziale e cioè sia ancora sopra il valore -50

    Quest’ultima condizione non so proprio come scriverla

    Cè qualcuno disposto ad aiutarmi?

    Un abbraccio Geronima

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate

    // Condizioni per entrare su posizioni long
    indicator1 = MIO INDICATORE [10](close)
    c1 = (indicator1 CROSSES OVER -50)
    c1a = (close > high   [  DELLA BARRA CHE HA GENERATO IL SEGNALE, SE C1 ANCORA VALIDO  ])

    IF c1[1] and c1a THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF

    #71264 quote
    Geronima Ortiz
    Participant
    Average

    in pratica quello che non riesco a scrivere è come fare a prender posizione sulla rottura del max della barra che ha generato il sengale c1, sempre che esso sia ancora valido, e cioè mio indicatore sia ancora sopra il -50

    ciao

    #71296 quote
    robertogozzi
    Moderator
    Master

    Prova questo (io non l’ho provato perché non ho l’indicatore)

    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    
    ONCE MiaBarra      = 0
    ONCE PrezzoEntrata = 999999
    
    // Condizioni per entrare su posizioni long
    indicator1 = 1//MIO INDICATORE [10](close)
    c1 = (indicator1 CROSSES OVER -50)
    IF c1 THEN
       MiaBarra      = BarIndex
       PrezzoEntrata = high
    ENDIF
    
    // Condizioni per an nullare il segnale precedente
    IF (indicator1 CROSSES UNDER -50) THEN
       PrezzoEntrata = 999999
    ENDIF
    
    // Entrare LONG a mercato (cioè dopo che il prezzo di chiusura ha superato il Massimo della barra del segnale)
    c1a = (close > PrezzoEntrata)
    IF c1[MiaBarra] and c1a and Not OnMarket THEN
       BUY 1 CONTRACT AT MARKET
    ENDIF
    
    //ALTERNATIVA:
    // entrare LONG al superamento del massimo della barra che ha gerato il segnale, con un ordine pendente
    //IF c1[MiaBarra] and Not OnMarket THEN
    //   BUY 1 CONTRACT AT PrezzoEntrata STOP
    //ENDIF

    Ho messo in fondo l’alternativa del codice per entrare con ordine pendente.

    #71301 quote
    Geronima Ortiz
    Participant
    Average

    Grazie Roberto,

    l’indicatore è Williams presente in prorealtime, ho usato la crazione semplificata per crearlo, la quale mi ha scritto questo sotto, poi ho cercato invano di modificarlo per fargli fare quello che ho scritto nel primo messaggio.

    nota le vendite non le ho messe ancora, per non incasinare il codice….ma una volta che sono riuscita ad ottenere ciò che volgio, le inserirò magari copiando le istruzione della parte long

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate

    // Condizioni per entrare su posizioni long
    indicator1 = Williams[10](close)
    c1 = (indicator1 CROSSES OVER -50)

    IF c1 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF

    // Condizioni per uscire da posizioni long
    indicator2 = Williams[10](close)
    c2 = (indicator2 CROSSES UNDER -50)

    IF c2 THEN
    SELL AT MARKET
    ENDIF

    ho provato il tuo codice però non mi plotta nulla…non capisco

    #71303 quote
    robertogozzi
    Moderator
    Master

    Il mio codice era solo uno schema, non può fare niente.

    Più tardi o domani lo adatterò come hai specificato tu.

    #71304 quote
    Geronima Ortiz
    Participant
    Average

    Ti ringrazio.

    A presto

    #71336 quote
    robertogozzi
    Moderator
    Master

    Fai delle prove, mi sembra vada bene

    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
     
    ONCE MiaBarra   = 0
    ONCE PrezzoLong = 999999
     
    // Condizioni per entrare su posizioni long
    indicator1 = Williams[10](close)
    c1 = (indicator1 CROSSES OVER -50)
    IF c1 THEN
       MiaBarra   = BarIndex
       PrezzoLong = high
    ENDIF
    
    // Condizioni per annullare il segnale precedente
    IF (indicator1 CROSSES UNDER -50) THEN
       PrezzoLong = 999999
    ENDIF
     
    // Entrare LONG a mercato (cioè dopo che il prezzo di chiusura ha superato il Massimo della barra del segnale)
    c1a = (close > PrezzoLong)
    
    IF c1[BarIndex - MiaBarra] and c1a and Not OnMarket THEN
       BUY 1 CONTRACT AT MARKET
    ENDIF
    
    SET STOP   pLOSS   10
    SET TARGET pPROFIT 20
    

    Può capitare che all’uscita, in profitto o perdita poco importa, se il segnale è sempre valido ED il prezzo è ancora sopra a quello di breakout, il sistema apre nuove operazioni. Non so se è quello che vuoi, fai delle prove e vediamo di aggiustarlo.

    Una volta che fa quello che desideri con i LONG passererai (o passseremo, se vuoi) anche agli SHORT.

    #71347 quote
    Geronima Ortiz
    Participant
    Average

    Roberto innanzi tutto ti ringrazio.

    Per capire se è quello che ho in mente e se funzione dovrei inserire anche l’uscita dal LONG. Uscta naturale e cioè quando si verificano le condizioni inverse , tralasciando x un momento stop loss e target che falsano le regole.

    Ho provato a inserire le regole x l’uscita adattando il tuo codice, ma non va…..te lo allego, mi correggi per favore gli errori fatti?

    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate

    ONCE MiaBarra = 0
    ONCE PrezzoLong = 999999
    ONCE PrezzoShort = 0

    // Condizioni per entrare su posizioni long
    indicator1 = Williams[10](close)
    c1 = (indicator1 CROSSES OVER -50)
    IF c1 THEN
    MiaBarra = BarIndex
    PrezzoLong = high
    ENDIF

    // Condizioni per annullare il segnale precedente
    IF (indicator1 CROSSES UNDER -50) THEN
    PrezzoLong = 999999
    ENDIF

    // Entrare LONG a mercato (cioè dopo che il prezzo di chiusura ha superato il Massimo della barra del segnale)
    c1a = (close > PrezzoLong)

    IF c1[BarIndex – MiaBarra] and c1a and Not OnMarket THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF

    // Condizioni per uscire da posizioni long
    indicator2 = Williams[10](close)
    c2 = (indicator2 CROSSES UNDER -50)
    IF c2 THEN
    MiaBarra = BarIndex
    PrezzoShort = low
    ENDIF

    // Condizioni per annullare il segnale precedente
    IF (indicator2 CROSSES OVER -50) THEN
    PrezzoShort = 0
    ENDIF

    //Chiudere LONG a mercato (cioè dopo che il prezzo di chiusura ha superato il Minimo della barra del segnale)
    c2a = (close < PrezzoShort)

    IF c2[BarIndex – MiaBarra] and c2a and Not OnMarket THEN
    SELL 1 CONTRACT AT MARKET
    ENDIF

    //SET STOP pLOSS 10
    //SET TARGET pPROFIT 20

    #71375 quote
    robertogozzi
    Moderator
    Master

    Per scrivere il codice , utilizza il pulsante <> “insert PRT code” in modo da rendere il codice più leggibile. Grazie.

    #71382 quote
    robertogozzi
    Moderator
    Master

    Eccolo, lo commento nel post successivo per potere indicare le linee

    DEFPARAM CumulateOrders = False         // Posizioni cumulate disattivate
    DEFPARAM PreLoadBars    = 0
    
    ONCE MiaBarra    = 0
    ONCE PrezzoLong  = 999999
    ONCE PrezzoShort = 0
    
    indicator1 = Williams[10](close)
    
    c1 = (indicator1 CROSSES OVER  -50)
    c2 = (indicator1 CROSSES UNDER -50)
    
    // Condizioni per entrare su posizioni long
    IF c1 THEN
       MiaBarra    = BarIndex
       PrezzoLong  = high
       PrezzoShort = 0
    ENDIF
    
    // Condizioni per annullare il segnale precedente
    IF c2 THEN
       MiaBarra    = BarIndex
       PrezzoShort = low
       PrezzoLong  = 999999
    ENDIF
    
    // Entrare LONG a mercato (cioè dopo che il prezzo di chiusura ha superato il Massimo della barra del segnale)
    c1a = (close > PrezzoLong)
    
    IF c1[BarIndex - MiaBarra] and c1a and Not OnMarket THEN
       BUY 1 CONTRACT AT MARKET
    ENDIF
    
    //Chiudere LONG a mercato (cioè dopo che il prezzo di chiusura ha superato il Minimo della barra del segnale)
    c2a = (close < PrezzoShort)
    
    IF c2[BarIndex - MiaBarra] and c2a and LongOnMarket THEN
       SELL 1 CONTRACT AT MARKET
    ENDIF
    #71385 quote
    robertogozzi
    Moderator
    Master
    • Il riferimento all’indicatore WILLIAM’s l’ho messo solo alla linea 8, tanto è sempre lo stesso ed è inutile utilizzare più variabili con nomi diversi per la stessaa cosa
    • Entrambe le condizioni C1 e C1, righe 10 e 11, le ho messe all’inizio per chiarezza, quello che conta è QUANDO le utilizzi
    • Alla riga 37 ho indicatro che deve chiudere con SELL un posizione LONG già aperta (usando LongOnMarket)

    Provalo, io ho fatto solo alcuni test sommari e fammi sapere.

    Buon fine settimana!

    #71439 quote
    Geronima Ortiz
    Participant
    Average

    grazie Roberto, lo provo in giornata max domani.

    Buona domenica

    Geroniam

    #71443 quote
    Geronima Ortiz
    Participant
    Average

    Roberto come faccio a dirgli di mettersi  SHORT in vece di chiudere la posizione long?

    #71448 quote
    robertogozzi
    Moderator
    Master

    Vuoi metterti SHORT e mantenere aperta anche la posizione LONG?

    #71517 quote
    Geronima Ortiz
    Participant
    Average

    no!

    semplicemente invece di fargli fare la semplice uscita dal long come è ora, vorrei mettermi anche short.

    In pratica vorrei che il sistema facesse long e short

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

Aiuto brekout max della signal bar


ProOrder: Trading Automatico & Backtesting

New Reply
Summary

This topic contains 42 replies,
has 2 voices, and was last updated by Geronima Ortiz
7 years, 8 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 05/24/2018
Status: Active
Attachments: 26 files
Logo Logo
Loading...