Announcement

Collapse
No announcement yet.

divisione tra variabili dà errore (divide per zero)

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

    divisione tra variabili dà errore (divide per zero)

    Buongiorno trader, vi è mai capitato che dividendo due variabili con virgola, mql4 dia errore (divide per zero)? Ed è ancora più stupefacente che se cambio il divisore con il dividendo la cosa funziona. Ho cercato su internet e in effetti il problema è stato segnalato e per alcuni anche risolto, ma non per me. Mi spiego meglio: tramite chiamata a funzione (double) ottengo una variabile di ritorno che è double e la posso evidenziare ( alert etc.), è giusta. La seconda variabile, sempre double la ottengo da una candela, misurandone il volume (apertura meno chiusura) e quindi è double anche quella. Se sommo, addiziono e sottraggo queste due variabili, funziona. Se divido la seconda per la prima, ottengo zero, cioè errore. Se divido la prima per la seconda va bene. E' un rompicapo.
    Chiedo se qualcuno si è imbattuto nello stesso problema. Grazie

    #2
    gli errori di divisione per zero che riscontro e sono correttamente sempre dovuti al fatto che per qualche ragione la variabile divisore è in quel momento = 0.

    per capire come mai ottieni l'errore, dovresti visualizzare con Print o Comment() il valore delle due variabili che dividi, un attimo prima che poi le dividi.
    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


      #3
      Ma è proprio quello che ho fatto! l'ho anche scritto sopra... "
      e la posso evidenziare ( alert etc.), è giusta". Così come è corretta la double derivante dalla differenza di un Open e Close di una barra. Del resto è incomprensibile anche il fatto che la divisione funzioni in un senso (barra diviso storico) e non funzioni con la divisione storico/barra.

      Comment


        #4
        puoi far vedere le righe il codice e far vedere quali sono i valori delle variabili che dividendo danno errore ?
        in 10 anni mai riscontrato errori di divisione tra double con divisione per zero che il divisore non fosse effettivamente zero

        Originally posted by fran View Post
        Ho cercato su internet e in effetti il problema è stato segnalato e per alcuni anche risolto, ma non per me.
        puoi postare i link così da capire meglio?
        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


          #5
          Filtralo a prescindere.. se è un errore random legato alla precisione del double..
          ..
          if(divisore > 0) quoziente=dividendo/divisore;
          ..

          Comment


            #6
            Giusto! come scrive maurice.

            Prova a fare la divisione con la funzione
            Code:
            double NormalizeDouble(double value, int digits)
            Code:
            NormalizeDouble(dividendo,5) / NormalizeDouble(divisore,5)
            se divisore è !=0 con NormalizeDouble(divisore,5) non dovresti avere errori di zero divide

            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


              #7
              Vi ringrazio delle soluzioni e del vostro tempo. Un consiglio, agli amici che ci leggono. Quando l'incomprensibile si materializza davanti ai vostri occhi e perdete le vostre ore in situazioni che sono contro ogni ragione... provate a spegnere il computer e a riavviarlo. Il miracolo è servito. Io ogni tanto lo dimentico. Scusate.

              Comment


                #8
                :03.bigsmile_80_anim :03.bigsmile_80_anim meglio così !
                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
                  Originally posted by fran View Post
                  Buongiorno trader, vi è mai capitato che dividendo due variabili con virgola, mql4 dia errore (divide per zero)? Ed è ancora più stupefacente che se cambio il divisore con il dividendo la cosa funziona. Ho cercato su internet e in effetti il problema è stato segnalato e per alcuni anche risolto, ma non per me. Mi spiego meglio: tramite chiamata a funzione (double) ottengo una variabile di ritorno che è double e la posso evidenziare ( alert etc.), è giusta. La seconda variabile, sempre double la ottengo da una candela, misurandone il volume (apertura meno chiusura) e quindi è double anche quella. Se sommo, addiziono e sottraggo queste due variabili, funziona. Se divido la seconda per la prima, ottengo zero, cioè errore. Se divido la prima per la seconda va bene. E' un rompicapo.
                  Chiedo se qualcuno si è imbattuto nello stesso problema. Grazie
                  deduco tu abbia risolto, ora.

                  Comment

                  Working...
                  X