Announcement

Collapse
No announcement yet.

trend envelopes

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    trend envelopes

    ciao,
    per un expert che sto testando vorrei utilizzare come supporto l'indicatore Trend Envelopes. dato che lavoro con EA Generator utilizzo i buffers in una istruzione i >Custom; questo indicatore al buffer 0 e 1 da' i valori rispettivamente UP e Down , quelli che devo utilizzare. Succede però che quando uno dei due buffer non è attivo mi restituisce un numeraccio tipo 2147483647.000 , è vero che potrei sempre dire al mio sistema : quando il valore dei buffer è inferiore a detto numero significa che ho un segnale Up o DN, ma mi sembra meno elegante che lavorare con gli zero.
    Quindi la domanda è : si può modificare l'indicatore facendo comparire il valore zero invece del sopra detto numeraccio ?

    trend Envelopes.mq4

    #2
    Quel numero corrisponde al "vuoto".
    Teoricamente lo 0 è un valore che può essere disegnato su un grafico, quindi vuoto può essere più giusto da usare.
    La costante per indicare il vuoto in MQL4 è EMPTY_VALUE.

    Se tu vuoi che il vuoto venga settato con un valore diverso dalla costante EMPTY_VALUE (o il numero 2147483647) devi utilizzare la funzione SetIndexEmptyValue() dove inizializzi i buffer.
    Tieni presente però che nel codice dovrai poi sostituire tutti gli EMPTY_VALUE con uno 0.

    Ovviamente io non conosco il programma che stai utilizzando, ma può utilizzare le costanti?:14.wondering_80_ani
    Skype: cadddami

    Comment


      #3
      Grazie, adesso ci provo.
      Comunque solo per curiosità il numero 214 .... che corrisponde al vuoto è utilizzabile per confronti relativi ? es . quando si realizza che ad esso subentri un numero reale per es un prezzo , oppure una freccia con indicazione di prezzo , in questo caso di termini relativi posso scrivere la condizione che il prezzo(X) è > di 2147483647, in quanto quest'ultimo rappresenta il vuoto oppure sarebbe corretto scrivere che il prezzo (X) è inferiore a 2147483647 , quindi a un numero ?? Tieni conto che io utilizzo EA generator che quindi fa molto uso di condizioni if per indicare quando un indicatore cambia di stato, perciò si utilizzano i valori che assumono i suoi buffer , ecco perchè mi serve avere un vuoto gestibile come un numero .

      Comment


        #4
        Come detto prima, non conosco il programma con cui stai generando gli EA.:23.itwasntme_80_ani

        Personalmente io non userei né il maggiore né il minore, ma semplicemente il diverso.
        Quindi non >< bensì !=.

        Se il buffer per i buy è diverso da vuoto (2147483647) significa che sta dando un segnale (viceversa per i sell).:01.smile_80_anim_gi
        Skype: cadddami

        Comment


          #5
          Originally posted by gianca53 View Post
          Comunque solo per curiosità il numero 214 .... che corrisponde al vuoto è utilizzabile per confronti relativi ?
          No, quel numero enorme è il limite massimo di un numero intero gestibile da Metatrader4.
          Non si può usarlo per i confronti con minore o maggiore.

          Damiano ti ha dato il consiglio migliore.

          Se condividessi il tuo codice sorgente, si potrebbe trovare una soluzione più personalizzata al tuo caso.
          La vita non è un giro di prova, cogli l’attimo..
          Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

          Comment


            #6
            Ok raccolgo volentieri l'invito iniziando dalla breve premessa di ciò che vorrei mettere in pratica ovvero di utilizzare l'indicatore MT4 stop reverse con Trend Envelope a sostegno / conferma . In pratica la difficoltà che io trovo con EA generator è di avere dei segnali da me gestibili , quindi NON Empty value ma numeri effettivi che si possano utilizzare con >o < .

            La logica dovrebbe essere questa: quando MT4 level reverse dà una freccia di allarme ( Buy-sell), se confortato da trend envelope , l'EA deve attivare l'emissione di un ordine .
            Poi, come come da esempio mq4 allegato, lo stesso ordine dovrebbe essere chiuso con lo stesso indicatore- fase inversa . Allego quindi i due indicatori, lo schema di EA generator che mi ha dato come risultato il file mql .
            Una sola richiesta : il mio obiettivo NON è che mi confezioniate un file mql , ma capire come modificare i due indicatori al fine di avere i segnali (numeri) gestibili con EA gen. Ho fatto delle prove secondo le indicazione di caddami , ma non sono giunto a nulla , probabilmente ho sbagliato da qualche parte . Questo tentativo lo trovate come TrendEnvelope 2 : resta a zero sempre .

            Indi + Ea.rar
            Attached Files

            Comment


              #7
              ciao,
              nell'eseguire sul grafico l'indicatore, nella scheda Expert / Consiglieri
              leggo l'errore array out of range in 'Trend Envelopes 2.mq4' [107,11]
              che corrisponde al buffer smax[i]

              Se nell'indicatore commenti la riga
              #property strict
              in
              // #property strict
              l'errore si risolve e l'indicatore si disegna sul grafico
              La vita non è un giro di prova, cogli l’attimo..
              Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

              Comment


                #8
                Nell'indicatore Trend Envelopes 2.mq4 che allego

                faccio stampare nella scheda Expert / Consiglieri il valore dei due array UpBuffer e DnBuffer sulla barra corrente [0], come vedi nelle due figure.

                Se forzi il valore di un elemento dell'array al valore 0 quando è EMPTY_VALUE, l'indicatore ti disegna il valore zero ed hai la situazione errata in figura.

                empty2.jpg



                E' necessario quindi lasciare il valore dell'array Up o Dn ad EMPTY_VALUE

                Il confronto che puoi fare per confrontare il valore degli array è

                if (UpBuffer[0] == EMPTY_VALUE)

                oppure

                if (DnBuffer[0] == EMPTY_VALUE)

                empty1.jpg







                Attached Files
                La vita non è un giro di prova, cogli l’attimo..
                Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                Comment


                  #9
                  Grazie , alla fine, dopo verifiche su verifiche sono tornato alla prima idea : entrare a mercato quando l'indicatore Mt4_ stop_level_ reverse-2 ( vedi post 6 )mi dà l'indicazione con la freccia UP/Dn di trend reverse. Però tanto per cambiare sono impazzito su un mio test ( vedi ea_ test allegato ) che su Alpari demo mi da' " invalid integer number as parameter 2 for 'iCustom' function ",. mentre su un'altra demo - Foxpro -non riporta nessun errore nei consiglieri.
                  Qualcuno riesce a spiegarmi il perchè ? i settaggi delle due MT4 sono gli stessi, tra l'altro Alpari è molto lenta e si impalla spesso .

                  Algo prova Mt4_reverse_2_B.mq4

                  lo scopo del test è di verificare cosa succede alla formazione della freccia , quindi se posso utilizzare la forma proposta da Caddami per avere il (tanto) richiesto segnale di ingresso .
                  Attached Files
                  Last edited by gianca53; 19-11-2015, 14:01.

                  Comment


                    #10
                    La freccia dell'indicatore attiva i buffer 2 e 3 ma non mi passa il segnale , nel senso che non si accende l'alert associato.

                    Comment


                      #11
                      Rettifica e aggiornamento : il segnale non passa perchè avevo inserito un blocco "Once new bar " quindi se la freccia di inversione si attivava a metà barra il sistema non lo vedeva; una volta rimossa questa istruzione e aver ripristinato ad ogni tick, tutto sembra funzionare bene .
                      Grazie Caddami e Umberto.

                      Comment


                        #12
                        Altro problema collaterale : ora che sono riuscito a ottenere il segnale ( non so come si dica in termine mql, io dico semplicemente che passa dal blocco di programma , quindi =on ,se non passa =off, penso sia l'equivalente concettuale di 0 e 1) mi sorge il problema di memorizzare questo OK, perchè la freccia dell'indicatore si ripristina a EMPTY_VALUE al termine della barra medesima.Quindi dovrei trovare modo di memorizzare il segnale ON per almeno un'altra barra, il mio obiettivo quindi è di aprire un ordine solo alla barra successiva e non a ogni tick.
                        In pratica lavorare coi tick ma aprire gli ordini sulle barre. Idee ? suggerimenti ?

                        Comment


                          #13
                          Salve Gianca. Per quest'ultimo problema potresti orientarti così: setti una variabile static nell'incipit del programma e dividi nell'OnTick() due fasi: quella in cui 'passa' comunque ad ogni tick ed eventualmente ti 'accende' la variabile e una successiva che 'sente' se è una nuova barra. In quest'ultima metti un check che ti legge la variabile statica e fa quello che vuoi fare:

                          Comment


                            #14
                            Se ho capito bene tu mi consigli di creare un " flag" associato alla barra in cui "passa" da usare come riferimento x la barra successiva. E fin qui anche con EA Generator ci potrei riuscire, ma la difficoltà che comunque devo superare è di mantenere questo flag congelato per almeno un'altra barra anche quando il suo segnale di origine è diventato Empty_value. E questo non so come farlo nè se sia possibile .

                            Comment

                            Working...
                            X