Announcement

Collapse
No announcement yet.

Indicatore custom che si modifica da solo

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

    Indicatore custom che si modifica da solo

    Ciao a tutti,
    ho da poco creato un indicatore che funziona benissimo...capita spesso però che dopo un po i precedenti valori me li cambia!
    Dopo che mi ha cambiato i valori e faccio "aggiorna", sulla Metatrader stessa, ritorna ai valori corretti...perchè mi succede questo?
    Esiste un modo per far aggiornare i dati direttamente tramite codice mql in modo tale da inserirlo nell'indicatore direttamente?

    P.S. premetto che l'indicatore "dovrebbe" essere correttamente codificato....ha solo un vettore....insomma molto semplice.....

    #2
    Fa repaint.
    Non capisco perchè torni a valori originali dopo il refresh.
    Ma potrebbe anche capitare, se il ciclo delle barre e qualche ciclo secondario che calcola dei valori, non sono scritti correttamente.
    E' da vedere il codice.
    https://tradingduepuntozero.com

    Comment


      #3
      Esiste un modo per fargli fare "aggiorna" tramite codice mql inserito direttamente nell'indicatore?
      Ho visto che esiste la funzione RefreshRates()....può andar bene?

      Comment


        #4
        Dall'impossibilità di risolvere con la funzione RefreshRates().....quali sono le cose importanti da tenere in considerazione nel codice per evitare/sistemare il repaint?

        Comment


          #5
          un indicatore codificato correttamente fa l'"aggiorna" ad ogni tick che arriva
          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
            Si, fa l'aggiorna alla barra zero....ma perchè mi deve ritoccare le precedenti e facendo aggiorna manualmente ritorna tutto a posto?
            Visto che il problema si presenta SOLO all'inizio della nuova barra (NON IN TUTTE LE BARRE COMUNQUE) può essere legato a qualche bug della MT?

            Comment


              #7
              tutto è legato al codice, qualsiasi comportamento strano dipende dal fatto che è codificato male
              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
                AGGIORNAMENTO:

                Ciao a tutti, ho smanettato un po e sono quasi riuscito a capire dove sta il problema....praticamente ho capito che il problema esiste solo quando adopero il classico ciclo for nella forma....

                for (int i=0; i<limit; i++)

                dove limit dovrebbe essere uguale a 1 perchè è la differenza tra le barre caricate sul grafico (Bars) meno le barre caricate dall'indicatore - 1 (IndicatorCounted() - 1).....

                praticamente se lascio lo stesso ciclo for ma al posto di limit che è il risultato di quello scritto pocanzi e lo metto uguale a 1 l'indicatore ovvio che non mi caricherà la storia delle barre precedenti ma quanto meno non mi fa il REPAINT!

                Perchè?
                Cosa devo sistemare sul ciclo for classico?

                Comment


                  #9
                  Raga, ho risolto, il problema stava proprio nel ciclo for, ringrazio Damiano per avermi indirizzato tramite consigli a soluzione.

                  Comment


                    #10
                    Visto che mi è stato chiesto, il mio consiglio senza vedere il codice è semplicemente stato quello di invertire il ciclo.:01.smile_80_anim_gi
                    Con invertire il ciclo intendo che questo:
                    Code:
                    for(int i=0;i<limit;i++) {}
                    Che esegue i calcoli dalla candela più recente alla più vecchia, venga invece trasformato in:
                    Code:
                    for(int i=limit;i>=0;i--) {}
                    Che esegue i calcoli dalla candela più vecchia a quella più recente.
                    A mio parere, quest'ultimo è il modo migliore di far calcolare dei valori ad un indicatore, non perché quell'altro sia sbagliato ma semplicemente perché con il primo caso è più facile incorrere in problemi.:27.mmm_80_anim_gif:
                    Skype: cadddami

                    Comment

                    Working...
                    X