annuncio

Comprimi
Ancora nessun annuncio.

DATI STORICI per Metatrader4: fractal interpolation, scaricamento e importazione

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

  • DATI STORICI per Metatrader4: fractal interpolation, scaricamento e importazione

    Un thread riassuntivo sul funzionamento di Metatrader4 e sulla procedura per scaricare i dati storici e importarli dentro Metatrader4


    Fractal Interpolation


    In Metatrader4 il volume delle candele M1 non è il volume dei lotti scambiati dai trader all’interno della candela M1, ma soltanto il numero di tick reali forniti dal broker nel minuto della singola candela.
    Quando viene effettuato un backtest con Metatrader4 in modalità Ogni Tick, il motore di Metatrader4 (=chiamato Tester o Collaudatore) non usa i dati a tick reali del broker, perché non è previsto che la piattaforma li memorizzi.
    Metatrader4 memorizza ed usa soltanto i 4 valori OHLC della candela M1 (=Open, High, Close e Low) e
    quando viene realizzato un backtest/ottimizzazione in modalità Ogni Tick , la piattaforma crea un file temporaneo di dati storici (con estensione .FXT) contenente un numero di tick all’interno di ciascuna candela M1, pari al valore del volume di questa candela.
    Questi tick sono generati algoritmicamente (= inventati secondo una logica) e Metatrader4 utilizzerà questo file .FXT per effettuare una verifica di come si sarebbe comportato l’EA lavorando sui dati storici in modalità Ogni Tick.

    YX4hXl.png

    La fractal interpolation è il nome del metodo utilizzato dal Tester di Metatrader4 per generare algoritmicamente i tick all’interno delle barre ad 1 minuto, conoscendo soltanto i 4 valori OHLC.
    Guardando la figura seguente, Metatrader4 "si inventa" i tick che possono essersi verificati dentro ogni barra ad 1 minuto. Nel backtest possono quindi verificarsi situazioni ben diverse da quelle realmente accadute: ad esempio con i tick reali il massimo viene raggiunto prima del minimo, mentre nei tick generati da Metatrader viene colpito prima il minimo.

    21827723502_ca5c9162e9_b.jpg

    Quindi, il tester di Metatrader4 utilizzerà il volume delle barre M1 per elaborare i tick generati algoritmicamente all’interno di quella barra:
    - se le barre M1 hanno tutte volume = 1, ogni barra avrà soltanto 1 tick e il backtest passerà dalla Close di quella barra alla Close della barra successiva senza passare per il minimo ed il massimo di barra, che non verranno quindi mai elaborati nel backtest
    - se ogni barra M1 contiene volume = 2, la barra avrà soltanto 2 tick e passerà dalla Open di quella barra alla Close della stessa barra, senza passare per il minimo ed il massimo di barra;
    - affinché il Tester di Metatrader4 tocchi con la successione di tick almeno una volta i livelli di Open, Close, High e Low della barra è necessario che abbia un volume minimo di 4 tick.


    Osservazione: anche se le barre M1 vengono sempre disegnate correttamente sul grafico, con l’informazione dei valori Open High Low Close, il Tester di Metatrader4 in modalità Ogni Tick, utilizza il volume delle candele M1 per elaborare una nuova versione di dati storici su cui effettuare il test e se si usa un volume M1 = 1 o 2, l’informazione dell’High e del Low della candela M1 non verrà mai presa in considerazione dal Tester.


    La sequenza dei tick della candela M1, con i tick generati algoritmicamente da Metatrader4, dipende dalla tipologia della candela, rialzista o ribassista, seguendo il suo movimento “ideale”.
    Il Tester di Metatrader nei 4 tick,
    per una barra rialzista segue sempre questa sequenza: Open à Low à High à Close
    per una barra ribassista segue sempre questa sequenza : Open à High à Low à Close

    Ecco due esempi di evoluzione nella formazione della stessa barra M1 quando ha volume = 4 e quando ha volume = 20 (ottenuto con il Visual Tester cliccando in modalità Every Tick ripetutamente con il tasto F12)

    YX4hXl.png



    Poiché ogni timeframe successivo ad M1 utilizza le candele M1 per generare questi timeframe superiori,
    il volume delle candele degli altri timeframe è la somma del volume delle candele M1 che la formano.

    Se ad esempio abbiamo 5 candele M1 con volume rispettivamente di 15, 12, 20, 18, 11
    la candela M5 che le comprende avrà un volume pari alla somma: 15 + 12 + 20 + 18 + 11 = 76

    Per ogni barra di un timeframe superiore ad M1, l'evoluzione dei tick generati algoritmicamente, segue la sequenza dell'evoluzione dei tick nelle singole barre M1.
    Ad esempio una barra M15 ha una evoluzione in tick nella sua formazione che segue la sequenza di formazione delle 15 barre M1 che la formano.

    Quando viene eseguito un backtest/ottimizzazione, il Tester di Metatrader4
    - prima genera un file .FXT contenente i dati storici su cui lavorare
    - e poi su questo file realizza il backtest/ottimizzazione.

    I file .FXT vengono creati al momento dell'avvio del backtest/ottimizzazione dentro la cartella
    C:\Program Files\Metatrader4\tester\history\
    e contiene i dati storici su cui effettuare il backtest, per la coppia di valute e timeframe considerati, per il modello di esecuzione desiderato (=Every tick, Control points o Open price only) e per l'intervallo di tempo scelto.
    Ad esempio, per un backtest su EURUSD al timeframe H1
    EURUSD60_0.fxt contiene i dati storici formattati per la modalità "Every Tick" (= Ogni tick)
    EURUSD60_1.fxt contiene i dati storici formattati per la modalità "Control Points" (= Punti di controllo)
    EURUSD60_2.fxt contiene i dati storici formattati per la modalità "Open Prices Only" (= Solo prezzi di apertura)


    IMPORTANTE: quando il Tester di Metatrader4 deve realizzare un backtest/ottimizzazione, in modalità EveryTick, effettua i calcoli relativi al trading system, su ciascun tick generato algoritmicamente, perciò all’aumentare del numero di candele, aumenta esponenzialmente il numero di tick su cui il Tester deve andare a lavorare, con un aumento
    - delle dimensioni del file .FXT
    - del tempo tecnico di elaborazione del singolo backtest.

    Inoltre, Metatrader è in grado di leggere un file .FXT fino a 4 GB, dopodiché simula di continuare a fare il backtest, ma non effettua nessuna elaborazione.
    Ecco il perché se il Tester genera un file .FXT di dati storici di 6 GB ad esempio,
    il backtest dell’EA farà trade soltanto fino ad una certa data e poi non più: il Tester smette di elaborare i dati storici sui cui dovrebbe andare a lavorare il trading system, quando raggiunge la data corrispondente a 4 GB di dati storici dentro il file .FXT


    A parità di intervallo di tempo di un backtest, le dimensioni del file .FXT per un backtest EveryTick dipende dal valore del VOLUME che hanno le candele M1, perciò può accadere che

    - con soli 2 anni di dati storici si ottiene un file .FXT di 4 GB, quando il volume delle candele M1 è mediamente di 20;

    - se invece il volume delle candele M1 è basso, il minor numero di tick dentro le candele M1 permette di poter fare un backtest anche di 4 o più anni, perché il file .FXT si manterrà al di sotto dei 4 GB.
    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

  • #2
    Procedura scaricamento dati storici

    Per scaricare i dati storici dai server di Dukascopy (uno dei broker che offre gratuitamente dati storici semi professionali) si possono usare diversi software,

    uno di questi è Tick Downloader, gratuito.




    Collegarsi a http://www.strategyquant.com/tickdownloader/

    Scaricare il software ed installarlo.

    ( download diretto: http://www.strategyquant.com/tickdownloader/download )

    Dopo aver aperto il programma, nella scheda Dukascopy Tick Data sono elencati i simboli che il broker Dukascopy utilizza.

    Selezionare la coppia di valute o CFD da scaricare, nell’esempio EURUSD
    YX4hXl.png




    Cliccare su Change Download Range - selezionare l’intervallo di dati da scaricare – OKStart download
    YX4hXl.png




    Il tempo di scaricamento dei dati può impiegare diverse ore,
    al termine i dati vanno esportati in formato .CSV per poter essere importati dal Centro Storia (o History Center) di Metatrader4.
    YX4hXl.png



    Si clicca su Configure e si sceglie lo scostamento (=offset) dell’orario delle candele M1 rispetto all’orario di Greenwich GMT da esportare per fare i backtest con l’orario del proprio broker.

    Le due variabili da scegliere per decidere correttamente come esportare i dati sono:
    (1) l'orario UTC del broker su cui gira il server di Metatrader4;
    (2) il luogo dove il broker ha sede relativamente all'orario del server, per sapere se va considerata anche l'eventuale ora legale (ad esempio in Unione Europea).

    L’orario UTC (= Coordinated Universal Time) è il fuso orario di riferimento da cui sono calcolati tutti gli altri fusi orari del mondo; è derivato dal tempo medio di Greenwich (in inglese Greenwich Mean Time, GMT), con il quale coincide a meno di approssimazioni infinitesimali, quindi GMT = UTC.

    Ad esempio, per Activtrades, come si può leggere nelle FAQ - LIVE TRADING
    https://www.activtrades.it/index.aspx?page=faq
    l'orario impostato sulla piattaforma MetaTrader 4 e' il CET (l'orario vigente in Italia).
    quindi il setting dell'esportazione sarà come se il server del broker ActiveTrades fosse in Italia:
    TIMEZONE: UTC + 1 ORA LEGALE: SI

    L’UTC corretto si sceglie nel campo Change timezone
    che spesso valorizza automaticamente anche l’ora legale: Daylight savings: Yes





    OKExport data






    Al termine dell’esportazione, che può impiegare molto tempo, nella cartella
    C:\TickDataDownloader\tickdata
    troveremo diversi file, tra cui i seguenti
    YX4hXl.png



    A noi interessa soltanto il file EURUSD_M1_UTC+1_00.csv
    che contiene i dati storici del broker Dukascopy, relativi alle candele M1 con tempo GMT+1
    con i soli 4 valori che individuano una candela M1: Open, High, Low, Close

    Da notare le dimensioni “spropositatamente” grandi del file contenente i dati a tick, a dimostrazione di quanto aumenta il peso dell’informazione dei tick di ogni candela M1.

    IMPORTANTE: fare attenzione all’arco temporale dei dati storici M1 da esportare in un unico file .CSV: può accadere che Metatrader4 non riesca ad importare file .CSV troppo grandi.
    In questo caso è sufficiente dividere l’intervallo temporale in più parti, esportando con Tick Downloader più di un file .CSV, ad esempio 2 anni per volta, e importare in sequenza questi file dentro Metatrader4.
    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
      Importazione candele M1 in Metatrader4
      e generazione di tutti i timeframe



      IMPORTANTE: scaricare una piattaforma vergine da
      http://www.metatrader4.com/en/download



      aprire un conto DEMO e collegarsi al server del broker: questa operazione è necessaria al fine di memorizzare dentro Metatrader4 i nomi di tutte le coppie di valute.

      Per evitare che l'importazione dei dati storici vada in conflitto con i dati correnti che il server del broker invia continuamente alla piattaforma, scolleghiamo Metatrader4 da Internet, impostandogli un server proxy fittizio.

      Dal menu: Tools – Options – Server

      flag su Enable proxy server, click sul pulsante Proxy…
      YX4hXl.png



      Nella scheda proxy, alla voce Server scrivere una qualsiasi parola, come in figura, e premere OK.
      YX4hXl.png



      Quindi chiudere Metatrader4 e riaprirla: d’ora in poi la piattaforma cercerà inutilmente di collegarsi ad Internet passando per un proxy inesistente.

      Ora la piattaforma Metatrader 4 è pronta per importare i dati storici delle candele M1 scaricate da Dukascopy, tramite il Centro Storia (o History Center).


      ToolsHistory Center
      YX4hXl.png



      Si individua la coppia di valute su cui si vogliono importare i dati storici e si va nella sezione
      1 Minute (M1)

      ImportBrowse e si individua il file .CSV da importare
      nell’esempio il file EURUSD_M1_UTC+1_00.csv
      si attende che le colonne della schermata vengano riempite dai dati, come conferma della correttezza del formato del file
      infine, click sui pulsanti OK - Close
      YX4hXl.png



      IMPORTANTE: ora si chiude la piattaforma, si attende qualche secondo/minuto affinché il file importato venga memorizzato correttamente da Metatrader4; poi si riapre la piattaforma.


      Con la piattaforma aperta, si apre il grafico EURUSD M1
      e se i dati storici sono stati correttamente importati, si devono visualizzare in questo grafico.

      Per vedere tutte le candele M1 importate, potrebbe essere necessario aumentare il numero massimo di barre che un grafico di Metatrader4 deve visualizzare.
      Si va su Strumenti - Opzioni - scheda Grafici
      e si aumenta il valore di Numero massimo barre da 65000 che è il valore di default, ad un numero molto più alto, ad esempio 1000000





      Ora si esegue lo script che è presente di default come dotazione base, in TUTTE le piattaforme Metatrader4 :
      PeriodConverter.mq4

      Questo script permette di calcolare automaticamente tutti i timeframe di una coppia di valute o CFD, partendo dalle candele M1, imputando ad ogni esecuzione dello script il moltiplicatore adatto a costruire il timeframe successivo ad M1
      YX4hXl.png





      Ad esempio con Period multiplier factor = 5
      e cliccando su OK
      creeremo tutte le candele M5 a partire dalle candele M1, per tutto l’intervallo di tempo relativo alle candele M1 memorizzate dentro Metatrader4.

      Nella scheda Consiglieri/Experts si legge l'operato dello script.
      YX4hXl.png



      Dopo l’esecuzione dello script che ha consentito la creazione delle candele M5,
      si ripete l’esecuzione dello script per tutti gli altri timeframe, ogni volta aumentando il valore del parametro di input.

      Period multiplier factor = 5 --> candele M5
      Period multiplier factor = 15 --> candele M15
      Period multiplier factor = 30 --> candele M30
      Period multiplier factor = 60 --> candele H1
      Period multiplier factor = 240 --> candele H4
      Period multiplier factor = 1440 --> candele D1
      Period multiplier factor = 10080 --> candele W1
      Period multiplier factor = 43200 --> candele MN1

      Appena si riesegue nuovamente lo script comparirà un warning (messaggio di attenzione)
      YX4hXl.png


      Questo accade perché lo script PeriodConverter è stato scritto dagli sviluppatori della Metaquote, a "pene di gatto" : all'interno c'è una routine che conta le candele del grafico su cui viene eseguito lo script, e ad ogni pacchetto di Period multiplier factor candele, le raggruppa per formarne una sola.
      La routine però non ha un termine, rimane sempre in attesa di trovare nuove candele e quindi lo script rimane sempre latente in esecuzione nel grafico: ecco il perché del messaggio, ma lo script ha ormai terminato il suo ciclo di attività quando ha stampato nella scheda Consiglieri la scritta
      315118 record(s) written
      e quindi può essere fermato, consentendo la nuova esecuzione dello script.
      Si inserisce quindi il successivo valore di Period multiplier factor come in figura e nuovamente cliccando su OK, le candele M15 vengono costruite ogni 15 candele M1.
      YX4hXl.png



      Nella scheda Consiglieri/Experts si legge l'operato dello script.
      YX4hXl.png



      I dati storici vengono convertiti in file .HST relativi a tutti i timeframe generati, nella cartella history del server del broker
      hst.jpg




      IMPORTANTE: Dopo aver ripetuto l’esecuzione dello script per tutti i timeframe, si chiude la piattaforma, si attende qualche secondo/minuto affinché i dati delle candele di tutti i timeframe vengano memorizzati correttamente; poi si riapre la piattaforma.


      Riaprendo Metatrader4 e provando cambiare timeframe del grafico su M5, M15, ecc., si osserveranno le candele del timeframe selezionato, su tutto l’intervallo temporale dei dati M1 importati.


      Per poter fare un backtest/ottimizzazione, usando i dati storici caricati dentro Metatrader4, potrebbe esser necessario connettere la piattaforma ad Internet, levando il flag sul server proxy, affinché Metatrader4 possa recuperare e tenere in memoria le informazioni extra che gli servono per eseguire un backtest (STOPLEVEL, MIN_LOT, LOTSTEP ...).
      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


      • #4
        interessanto umberto questo che hai scritto, volevo chiederti se i dati si possono importare anche sulla mt5? grazie per una risposta

        Commenta


        • #5
          Originariamente inviato da astribale Visualizza il messaggio
          interessanto umberto questo che hai scritto, volevo chiederti se i dati si possono importare anche sulla mt5? grazie per una risposta
          penso di no, da quel che ho letto Mt5 è blindata sui dati storici, puoi usare soltanto i dati del broker a cui sei collegato e questa è una delle tante concause dell'insuccesso di Mt5;
          io comunque non ho alcuna esperienza di Mt5, né ho intenzione di studiarla.

          La procedura che ho descritto è collaudata per Metatader4
          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


          • #6
            Grazie umberto per le tue ottime spiegazioni!
            Molto utile .

            Commenta


            • #7
              Grazie, visto che sei ferrato in materia mi piacerebbe togliermi alcuni dubbi.
              Utilizzando la modalità prezzi di apertura TF 5 minuti utilizza solo i prezzi di apertura M5, con punti controllo sempre TF M5 utilizza i prezzi di apertura M1 questo penso sia giusto.
              Se invece sono su TF M1 con prezzi di apertura prende i prezzi dell'apertura ma se utilizzo punti di controllo con TF m1 cosa utilizza?
              Per i test al tick mi viene da pensare che è quasi inutile avere delle candele da M1 con un volume superiore a 4.
              Grazie ancora.

              Commenta


              • #8
                Il metodo Control points (Punti di controllo) fa un backtest sui dati storici usando i 4 valori Open, High, Low e Close (=OHLC) del timeframe immediatamente inferiore a quello su cui stai facendo girare il backtest,

                come spiegato nell'help della piattaforma (terminal.exe), o sul sito della Metaquotes
                Control Points (the nearest less timeframe) Method of modeling control points is intended for crude estimate of Expert Advisors trading within a bar. To use this method, historical data of the nearest less timeframe must be available. The really existing OHLC prices of the less timeframe appear as control points.


                Quindi se ad esempio fai un backtest su H1 usando la voce del Tester (o Collaudatore) Control points (Punti di controllo) farai girare il tuo EA elaborandolo sui 4 valori OHLC del timeframe M30.

                Se invece fai un backtest su M1 in modalità Control points (Punti di controllo) non avendo un timeframe inferiore, farai girare il tuo EA elaborandolo sui tick che formano M1, essendo ogni tick una informazione di OHLC esattamente come lo sono le candele stesse: perciò Punti di controllo in M1 corrisponde a Ogni tick di M1.

                Di seguito la prova di un backtest con M1 nelle tre modalità, che dimostra come sia per il profitto che per tutte le altre grandezze di sintesi, backtest M1 Punti di controllo = backtest M1 Ogni tick.

                La qualità di un backtest M1 in modalità Every tick (Ogni tick) è sempre 25%, qualsiasi sia lo stato dei dati storici precaricati, è un valore calcolato da un algoritmo interno di Metatrader 4
                e il fatto che sia diverso dal 90% della qualità di un qualsiasi backtest in Every tick (Ogni tick) di altro timeframe diverso da M1, non ha alcuna importanza.

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

                Commenta


                • #9
                  Originariamente inviato da PieTra Visualizza il messaggio
                  Per i test al tick mi viene da pensare che è quasi inutile avere delle candele da M1 con un volume superiore a 4.
                  Se hai un EA che fa scalping e fai un backtest su candele M1 con volume = 4 il movimento del tuo EA viene testato soltanto sulle 4 grandezze della candela M1, OHLC, perciò se hai candele M1 sufficientemente grandi, ti perdi l'elaborazione del tuo EA all'interno della candela M1, nella sua formazione: se l'EA lavora su piccoli movimenti di mercato, backtestarlo sulle sole 4 grandezze di M1 non è sufficiente.
                  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


                  • #10
                    Ciao Umberto grazie per il 3D mi serviva proprio perché ormai arrugginito non facevo più back test da anni luce.

                    Saluti MAx

                    Commenta


                    • #11
                      Umberto grazie per la precisione e l'ottima guida. Sto esportando proprio ora i dati. Ho installato anche una piattaforma nuova vergine direttamente dal sito di metaquotes e ho scelto come broker per l'apertura del conto demo FXPRO per la ragione che non ha la candela della domenica e inoltre per il motivo che il conto demo non scade mai.

                      Ora devo scegliere all'interno all'interno della schermata export data del software tickdownloader il tipo di time per l'esportazione.
                      L'orario server di FXPRO è un'ora avanti rispetto all'italia quindi il formato di esportazione sarà UTC+2. Ora la domanda è: quali dei tanti UTC+ 2 scegliere?
                      Nella foto ce ne sono una sfilza.
                      lmmagino di dover scegliere Beirut che h​a la stessa ora di Cipro (sede del broker) ?

                      https://gyazo.com/511c22eb6276274dbc1a5d21243ab103





                      Ultima modifica di fuzzytrade; 26-09-15, 21:26.

                      Commenta


                      • #12
                        Originariamente inviato da fuzzytrade Visualizza il messaggio
                        L'orario server di FXPRO è un'ora avanti rispetto all'italia quindi il formato di esportazione sarà UTC+2. Ora la domanda è: quali dei tanti UTC+ 2 scegliere?
                        Nella foto ce ne sono una sfilza.
                        lmmagino di dover scegliere Beirut che h​a la stessa ora di Cipro (sede del broker) ?
                        La ragione per cui Tick Downloader ti presenta più volte lo stesso UTC+2 associato a diverse città, è per aiutarti a trovare l'orario dello stato dove risiede il server, per facilitarti la ricerca se non sai se lo stato ha o no l'ora legale.
                        Se sai che il server del broker risiede in uno stato che gestisce nell'anno l'ora legale, sceglierai un qualsiasi UTC+2 che ti permetta di selezionare Daylight savings: Yes
                        se sai che il server del broker non gestisce l'ora legale, sceglierai un qualsiasi UTC+2 che ti permetta di selezionare Daylight savings: No

                        Cipro ha l'ora legale

                        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


                        • #13
                          Originariamente inviato da umbertosm Visualizza il messaggio

                          sceglierai un qualsiasi UTC+2 che ti permetta di selezionare Daylight savings: No

                          Perfetto, grazie Umberto.
                          Ho importato i dati e seguito la procedura attentamente e minuziosamente. Per non appesantire troppo il file ho importato il 2014 e 2015. Con period converter ho creato poi tutti i timeframe superiori al minuto.

                          I grafici vengono creati correttamente a partire dal 1 gennaio 2014 su tutti i timeframe.

                          Ora ho un problemino.

                          Ho fatto girare un expert in backtest che mi funziona perfettamente sul backtest in altre piattaforme mt4, ma non su questa in cui ho importato i dati da ducaskopy.

                          Il problema è che non apre ordini e mi resistuisce nel diario il seguente messaggio: errori.PNG





                          Girando per il web ho trovato questa risposta:

                          L'errore 131 è uno degli errori più frequenti che si incontrano quando si testano gli expert advisor di metatrader.

                          Nella documentazione ufficiale di metatrader troviamo questa definizione:
                          Error 131 - ERR_INVALID_TRADE_VOLUME: Invalid trade volume, error in the volume granularity. All attempts to trade must be stopped, and the program logic must be changed.

                          Questo significa che l'ea sta cercando di piazzare a mercato un ordine con un volume non valido, nella chiamata alla orderSend stiamo quindi passando un valore non corretto al terzo parametro:

                          Nel backtest Il volume di ingresso per i trade è settato su 2% del capitale pari a 1000 euro.

                          Negli imput del backtest ho inserito spread pari a 20 (che dovrebbe coincidere a 2 pips se non erro). Ho provato anche a mettere solo "2", ma il problema si presenta lo stesso. imput.PNG
                          Ultima modifica di fuzzytrade; 27-09-15, 13:55.

                          Commenta


                          • #14
                            Grazie Umberto! Ottima spiegazione,dettagliata e precisa! Una cosa ... qualcuno ha provato ad importare storici diversi da valute sulla metatrader? Ad esempio indici azionari, materie prime etc ... a me sta dando un po' di problemini. Con valute tutto ok, con CFD su indici, futures, etc credo ci siano problemi di diversa natura. Postero' i problemi che riscontro se non riesco a risolverli.

                            Commenta


                            • #15
                              Originariamente inviato da fuzzytrade Visualizza il messaggio
                              Error 131 - ERR_INVALID_TRADE_VOLUME: Invalid trade volume, error in the volume granularity. All attempts to trade must be stopped, and the program logic must be changed.

                              Questo significa che l'ea sta cercando di piazzare a mercato un ordine con un volume non valido, nella chiamata alla orderSend stiamo quindi passando un valore non corretto al terzo parametro:
                              Si, quando il tuo EA calcola l'esposizione del trade lo fa in percentuale sul conto corrente, evidentemente esce fuori una dimensione in MICROLOTTI.

                              Questo vuol semplicemente dire che il server della piattaforma su cui hai i dati storici (che ora è scollegata da Internet), quando l'hai collegata per la prima volta, ha informato la Metatrader4 che il broker consente come minima esposizione dei trade i MINILOTTI e non i microlotti ed ora la tua piattaforma di test permette come esposizione minima soltanto i MINILOTTI.

                              Siccome nel tuo caso, calcoli l'esposizione come percentuale del conto, per risolvere visto che stai facendo un backtest, ti basta aumentare il conto iniziale, quindi non 1000, ma 10.000, quindi 10 volte più grande.
                              Così facendo il tuo EA aprirà non più microlotti, come 2% del conto di 1000, ma minilotti, come 2% del conto di 10.000
                              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

                              Sto operando...
                              X