Announcement

Collapse
No announcement yet.

DATI STORICI per Metatrader4: fractal interpolation, scaricamento e importazione

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

    #16
    Grazie Umberto,ma mi da ancora lo stesso problema.

    Il conto aperto con fxpro è di 5000.

    Ho fatto che impostargli la medesima cifra nel backtest (5000) ma mi restituisce il medesimo errore e non apre nessun trade. Idem se inizio il backtest con un capitale 10 volte superiore cioè 50.000 .
    Ho provato anche a disabilitare il MM in % nei parametri esterni del backtest impostando una size fissa, e ancora sempre errore 131. Sia che imposti microlotti, che minilotti, che lotti.
    Last edited by fuzzytrade; 27-09-2015, 19:54.

    Comment


      #17
      bisogna arrotondare ad una sola cifra decimale,
      se ti esce fuori un'esposizione di 0,21 non va bene, ma deve essere 0,2 senza ulteriori decimali al secondo posto dopo la virgola.

      quindi se fai la percentuale del conto, poi devi arrotondare questa esposizione ad 1 sola cifra decimale

      va usata la funzione NormalizeDouble() Rounding floating point number to a specified accuracy.

      PHP Code:
      double  NormalizeDouble(
         
      double  value,      // normalized number
         
      int     digits      // number of digits after decimal point
         
      ); 

      per sicurezza stampa con una Print() l'esposizione del trade che vuoi aprire e che ti dà errore

      Qui c'è un dettaglo di altre prove che puoi fare stampando a video alcune informazioni
      http://metatrader-forex-trading.blog...error-131.html
      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


        #18
        Ok, provo. Grazie Umberto.

        Comment


          #19
          ad esempio

          se fai uno script e scrivi queste 4 righe

          PHP Code:
          void OnStart()
            {
             
          double esposizioneTrade 0.21;
             Print(
          "esposizioneTrade = "+DoubleToString(esposizioneTrade,2));
             
          esposizioneTrade NormalizeDouble(esposizioneTrade,1);
             Print(
          "esposizioneTrade = "+DoubleToString(esposizioneTrade,2));
            } 

          e lo esegui sul grafico, nella scheda Experts/Consiglieri, leggerai

          esposizioneTrade = 0.21

          esposizioneTrade = 0.20

          prima di inviare il trade, se hai errore 131, è necessario che il volume dell'esposizione sia normalizzato ad una sola cifra decimale

          Code:
          esposizioneTrade = NormalizeDouble(esposizioneTrade,1);
          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


            #20
            Ciao a tutti,
            io ora mi ritrovo con i dati che all'interno della fascia di cambio ora legale per le prime settimane di marzo e la prima di novembre sono sfalsati di un'ora, per il resto è OK, credo che sia successo perchè dove risiede il server del mio broker New York l'ora legale la cambiano la prima domenica di marzo e non l'ultima come in Italia, come risolvere il problema?
            Grazie per l'aiuto.

            Comment


              #21
              se il server del broker è a NewYork, quando configuri l'offset dei dati da esportare con Tick Data Downloader
              devi scegliere UTC-5 come in figura

              L'ora legale che viene settata è quella degli USA che ha date di inizio e termine, diverse da quelle adottate in Europa.

              NewYork_UTCmeno5.png


              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


                #22
                ma così poi non mi ritrovo con i dati sfalsati di 5 ore?

                Comment


                  #23
                  Maverick, hai scritto che il server del tuo broker è a New York, quindi tu stai facendo trading con l'orario di New York.

                  Se non è così, il tuo broker non risiede a NY come credi.

                  Il server del broker che tu vuoi usare in reale che orario ha?

                  Bisogna scaricare l'orario del server del broker, se poi il tuo broker usa un orario europeo e applica l'ora legale statunitense, allora sta facendo qualcosa di non standard per cui non esiste soluzione, se non attendere che la discrepanza delle ore legali termini.

                  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


                    #24
                    Ciao Umberto,
                    il Broker è ICMARKETS, l'orario della mt4 è attualmente un'ora in più a noi, non so altro, sul loro sito mi è sembrato di capire che i server sono a New York, ed ho verificato in circa 3 anni che che opero con loro che cambiano l'ora legale secondo new york.

                    Comment


                      #25
                      e allora non c'è soluzione :23.itwasntme_80_ani

                      esporti i dati UTC+2 con ora legale, e per le settimane di discrepanza tra i dati storici di Dukacopy e quelli tuoi, non puoi farci nulla, Dukascopy o Tick Data Download applica ai dati storici l'ora legale della fascia oraria UTC+2 che è quella europea
                      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


                        #26
                        Buongiorno e grazie per la disponibilità e i suggerimenti.

                        Comment


                          #27
                          ciao umberto ho seguito la tua guida, ma ho un problemino....quando salvo tutte le barre m1 dal 2003 nessun problema...chiudo riapro e riapro piatta vado e controllo a grafico e si ferma al 29 luglio, rientro nel centro storia e mi son rimaste solo le barre da luglio ad adesso....di che problema si tratta ? grazie mille

                          Comment


                            #28
                            Originally posted by massimo492 View Post
                            chiudo riapro e riapro piatta vado e controllo a grafico e si ferma al 29 luglio, rientro nel centro storia e mi son rimaste solo le barre da luglio ad adesso....di che problema si tratta ? grazie mille
                            Ho avuto il tuo stesso problema. Importavo i dati, chiudevo la piattaforma, aprivo e partiva da luglio.

                            Poi ho riletto il passaggio dove Umberto dice di aspettare qualche secondo, una volta che si è chiusa la piattaforma. Per essere sicuro ho aspettato un paio di minuti perchè le manciate di secondi non bastavano. Ho rilanciato la piattaforma e ho risolto cosi.

                            Comment


                              #29
                              Originally posted by umbertosm View Post

                              prima di inviare il trade, se hai errore 131, è necessario che il volume dell'esposizione sia normalizzato ad una sola cifra decimale

                              Code:
                              esposizioneTrade = NormalizeDouble(esposizioneTrade,1);

                              Ho normalizzato Umberto, ma niente non apre nessun ordine. MI restituisce sempre errore 131.

                              Comment


                                #30
                                si Davide :28.nerd_80_anim_gif purtroppo ho appena verificato che Metatrader4 è cambiato ancora,

                                ho verificato che se alla Metatrader4 scollegata dal broker eseguo questo script

                                PHP Code:
                                void OnStart()
                                  {
                                   Print(
                                "MODE_LOTSIZE = ",MarketInfo(Symbol(), MODE_LOTSIZE));
                                   Print(
                                "MODE_MINLOT = ",MarketInfo(Symbol(), MODE_MINLOT));
                                   Print(
                                "MODE_LOTSTEP = ",MarketInfo(Symbol(), MODE_LOTSTEP));
                                   Print(
                                "MODE_MAXLOT = ",MarketInfo(Symbol(), MODE_MAXLOT));
                                  } 

                                ottengo i dati in figura:



                                Dove si osserva MODE_MINLOT = 0.0
                                In pratica dentro Metatrader4 non rimangono memorizzate alcune variabili, come il MINLOT
                                e quindi quando il backtest invia un ordine di trade sui dati storici, Metatrader4 non ha l'informazione di quale sia il lotto minimo... e ti dà l'errore 131

                                Prima non era così, anche con i dati storici scollegati si facevano i backtest senza problemi.

                                Allora per risolvere ho fatto così:

                                Leva il flag al finto proxy server e collegati al conto demo



                                sei collegato quando compare il doppio istogramma colorato



                                Siccome sei collegato al server del broker, vengono caricati dentro Metatrader4 i nuovi dati M1 correnti,
                                e sto notando che i dati storici M1 del broker NON vanno a sovrascrivere i dati storici di Dukascopy, ma vengono semplicemente aggiunti a quelli precaricati.

                                Ora riesegui lo script sul grafico M1 e dovrebbe darti correttamente i valori di MIN_LOT e delle altre variabili NON più forzatamente a zero:
                                nel mio caso MINLOT = 0.01




                                Ora che sei in questa situazione puoi rieseguire il backtest, settando opportunamente lo spread: ora spero non dovresti più avere l'errore 131




                                Dopo aver fatto il backtest, rimanendo collegato al server del broker,

                                per sicurezza prima di chiudere Metatrader4 rimetti il flag sul finto server proxy




                                Ho notato che richiudendo la Metatrader4 e riaprendola i dati storici caricati sono sempre quelli, non vengono sovrascritti dal fatto che ti sei collegato al server del broker.

                                Come da figura seguente, mi ero fatto una copia dei dati storici precaricati dentro la cartella stessa history di Metatrader4 che uso per i backtest
                                e come si vede i dati M1 EURUSD correnti (EURUSD1.hst) sono leggermente aumentati
                                rispetto a quelli precaricati (EURUSD.1_dal.3lug2011.al17set2015.hst),
                                perché i nuovi dati M1 del server del broker sono andati ad aggiungersi a quelli precaricati, senza cancellarli.





                                La nuova regola è quindi di fare i backtest collegati al server del broker, altrimenti Metatrader4 non sa qual è la dimensione dell'esposizione dei trade e dà errore 131.



                                Attendiamo la tua conferma Davide
                                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

                                Working...
                                X