annuncio

Comprimi
Ancora nessun annuncio.

divisione tra variabili dà errore (divide per zero)

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

    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

    Commenta


      #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.

      Commenta


        #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

        Originariamente inviato da fran Visualizza il messaggio
        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

        Commenta


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

          Commenta


            #6
            Giusto! come scrive maurice.

            Prova a fare la divisione con la funzione
            codice:
            double NormalizeDouble(double value, int digits)
            codice:
            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

            Commenta


              #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.

              Commenta


                #8
                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

                Commenta


                  #9
                  Originariamente inviato da fran Visualizza il messaggio
                  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.

                  Commenta

                  Sto operando...
                  X