Announcement

Collapse
No announcement yet.

StrategyQuant e i software di programmazione genetica di trading system

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

    #61
    Dico la mia sul confronto di affidabilità tra StrategyQuant e Metatrader4.

    Metatrader4 è gratuito, ma solo perché centinaia di broker pagano la società Metaquotes per la licenza di uso di Metatrader4.
    Il numero di sviluppatori che lavorano su Mt4 è elevatissimo, i miglioramenti e la risoluzione di bug è pressoché continua nei mesi.
    La piattaforma è intuitiva ed è in continuo miglioramento e vale il successo mondiale di uso nel mondo del forex.

    Io conosco a menadito Metatrader4, perché quando testo i miei EA, passo ore ed ore in modalità Visual testing, con F12 avanzo tick by tick, stampando a video ogni valore che mi interessa, e verifico sempre che Metatrader4 non ha pressoché alcun bug: ogni volta che ho creduto che Mt4 avesse un bug, ho poi invece scoperto che era tutto corretto nei calcoli e che ero io che sbagliavo qualcosa.
    Il mio giudizio sull'affidabilità di Metatrader4 è di 9 su una scala da 1 a 10.

    StrategyQuant è un software sviluppato da Mark Fric e pochi altri suoi colleghi: è un ottimo progetto, ma pieno zeppo di bug e fondamentalmente con tantissimi segreti di logiche interne che soltanto le ripetute domande e risposte sul suo forum, aiutano a comprendere in parte.

    Alcuni esempi:

    1) Sapevate che la funzione di fitness non viene calcolata nello stesso modo per due strategy se una delle due ha meno di 150 trades?
    Potete leggere qui l'incongruenza a cui ha risposto Marck Fric:
    "there is a special penalty applied to fitness for strategies that produce very small number of trades (less than 150 trades). So if the strategy has less than 150 trades its fitness is decreased by a proportionate penalty"
    Perché non scriverlo nel manuale d'uso? boh...

    2) Sapevate che l'Average Trade di SQ NON è il valore medio dei trade, come invece è consuetudine?
    La misura corretta è invece l'Expectancy, come potete leggere qui

    3) Sapevate che il Win/Loss ratio di SQ NON è l'average trade / average loss come è consuetudine,
    ma è il rapporto tra numero di trade vincenti / numero di trade perdenti ?
    su Adaptrade Builder : Win/Loss Ratio = Ratio of the average win to the absolute value of the average loss
    su StrategyQuant : Win/Loss Ratio = numero di trade vincenti / numero di trade perdenti
    Perché questa differente terminologia? Libertà di un genio sviluppatore, ma è causa di confusione quando si usa SQ... non è scritto sul manuale, perché? boh...

    4) Sapevate che il Tick simulation di SQ è molto più sempliciotto del sofisticato fractal interpolation di Metatrader4 ?
    Se in Metatrader4 la modalità in Every tick è una interpolazione come dettagliavo qui,
    su StrategyQuant è soltanto l'esecuzione dei 4 valori delle candele M1, Open, Low, High e Close, 4 soli valori, che corrisponde all'uso su Metatrader4 di candele M1 con volume = 4.
    La spiegazione di questa approssimazione di SQ non è spiegata da nessuna parte, ma ne sono venuto a conoscenza grazie ad un utente che lo scrive sul forum qui
    I asked Mark this many months ago, Tick Simulation in SQ uses the M1 bar data and presents 4 ticks per bar, the open price, the high and the low and then finally the close price. So 4 ticks per M1 bar. I'm not sure if the high is used before the low or the low before the high. Usually the approach is to use the high first if the bar closes lower, and the low first if the bar closes higher.
    Tra l'altro l'esecuzione elevatissima dei backtest in Tick simulation su SQ è dovuta proprio al bassissimo uso di tick al'nterno delle candele M1.

    Questi esempi per motivare il mio giudizio su StrategyQuant in termini di affidabilità: 6 su una scala da 1 a 10.

    In pratica i 1.000$ di costo di StrategyQuant valgono il software, ma Metatrader4 è notevolmente superiore, se dovessi fare un confronto economico, valuterei Metatrader4 come un software da 30.000$ come potenzialità ed affidabilità.

    StrategyQuant però permette di creare strategie con il suo algoritmo di programmazione genetica: questo passa il convento ed io opererò in casi di incongruenze tra equity line di SQ rispetto a Mt4 come consiglia Paolo: l'eventuale incongruenza di risultato tra StrategyQuant e Metatrader4 la considero come il non aver superato un test di robustezza.

    Ricordiamoci che Metatrader4 è la piattaforma su cui si farà trading, su cui ci metteremo i soldi, mentre StrategyQuant è soltanto il mondo virtuale di costruzione delle strategie, con tutte le potenzialità stratosferiche di trovare trading system profittevoli, ma che avranno un minimo di validità soltanto se anche Metatrader4 lo confermerà.

    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


      #62
      Paolo, che saluto ha ben esposto i problemi che si verificano con gli ordini pendenti in fase di BT fra SQ e MT4 soprattutto con gli SL/TP stretti.
      Mi ricordo che questo disastro si presentava all'inizio con alcuni del gruppo che lavoravano su strategie di scalping con time frame troppo bassi ( Quelli sotto i 30 minuti ).

      Come spiegava qualcuno , il tick data e' un'arma a doppio taglio.
      Magari, i tick che avete voi sono del Broker pinco , che attenzione non sono gli stessi tick registrati ad esempio con il Broker pallino .
      Inoltre, come ha evidenziato Maurice, personalmente preferisco dare la preferenza al motore di backtest a SQ rispetto al calcolo di interpolazione della MT4.

      In futuro i BT tick by tick di SQ sono sicuramente da provare per una comparazione sulla Tradestation che ancora non conosco , visto che sono a testare ancora i risultati con la MT4

      Umberto, in un tuo messaggio nel vecchio gruppo di Skype, ricordo che anche tu non amavi tanto i BT a tick proprio per questi motivi ...
      Anche se concordo con te al 100% che la MT4 e' eccellente come piattaforma.

      Comunque, ho avuto queste risposte da uno del gruppo in piu' occasioni ...
      1) Tutto dipende da che dati stai usando:
      2) In caso di dubbio faccio un po' di test di robustezza con diversi slippage , spread , etc e dopo valuto di scartare o meno.
      Insomma, ci vuole ragionamento si valuta di volta in volta.
      3) Con i giusti Settings gia' 1 minute precisione va molto bene.
      4) Ricorda che la WFM fatta con tick data va in panne, e' un bug del software che sara' risolto nella versione 4
      5) Alla mia domanda se anche le Simple ottimizzazioni sempre a 1 minute.
      Risposta : Sì, tutto a 1 minute, solo il progresso di generazioni lo faccio con Select Timeframe che e' quello piu' lungo.
      Insomma, dati ben impostati nella ricerca di strategie da Timeframe orari e superiori con SL/TP larghi a 1 minute precision vanno piu' che bene senza , complicarsi la vita cercando di far combaciare due motori di BT diversi per costruzione con SL/TP stretti, in Timeframe troppo bassi dove un'altissima precisione e' obbligatoriamente, richiesta.
      Last edited by Cray; 20-03-2016, 01:56.

      Comment


        #63
        Umberto, riguardo i diversi calcoli implementati da Mark e CO in SQ e' un bel mistero che hai sollevato nel tuo brillantissimo lavoro di ricerca .
        Purtroppo, chi poteva dare una risposta a questo problema si e' limitato a dire che tutte le funzioni del codice sorgente, funzionavano, perfettamente a parte qualche piccolo bug senza grossi problemi : Se sta leggendo come credo, un Suo intervento eliminerebbe questi dubbi ... Una soluzione e' la selezione delle strategie sulla ricerca della fitness con valori piu' attendibili .

        Forse, Mark con i suoi programmatori ha dovuto risolvere dei problemi insormontabili con questo programma scritto in Java che rimane sicuramente per me un autentico capolavoro .

        Forse, la versione 4 di SQ sara' corretta e migliorata .

        Forse ... Mah!!!

        Va bene anche così, conoscendo alcuni limiti di questo, portentoso software

        Buona Domenica
        Last edited by Cray; 20-03-2016, 16:17.

        Comment


          #64
          Umberto,
          concordo con te che è MT che si usa per fare trading e.. "tanto di cappello" è dovuto
          Venendo da indimenticabili (!) esperienze fatte sin dagli anni 90 con tradestation e plug-in vari (dati da Tenfore tramite un plugin e operatività su sim nazionale tramite emulatore di tastiera/mouse..) non posso che onorare la stabilità di MT4
          Nel decennio successivo chiunque abbia provato i bridge di Sella, IWbank ed altri - peraltro molto più evoluti - sa cosa intendo.. un vero incubo, alla faccia della VPS con MT4 !
          Senza per questo non rimpiangere la flessibilità e la potenza di Ts, sia ben chiaro.
          Comunque questo abbiamo.. e non è poco davvero !
          Detto questo il tick by tick di MT4 resta - a mio avviso - da evitare in quanto assolutamente fuorviante, così come più in generale la programmazione di sistemi "tickbytick" anzichè "OncePerBar"
          Sarà una mia fissa, senza dubbio, ma evitare simulazioni inventate mi fa stare più tranquillo
          E' ovvio che non c'è paragone possibile tra l'esercito di programmatori che sviluppa e fissa MT4 e i ragazzi di SQ ; ma è interessante la divergenza di interessi:
          - MT4 è sviluppato per i broker (non per noi, di grazia che ci danno un supporto di programmazione)
          - SQ è sviluppato per i trader e tenta di rendere disponibili tecniche e strumenti che in altri contesti sono già disponibili (comprese ovviamentre le piattaforme degli istituzionali)
          questa diversità di target mi è sufficente per dare credito a Mark & C , tanto da farmi acquistare la licenza sfruttando uno sconto extra come loro cliente storico per altro software, licenza e programma che ho installato ma non ancora usato per evidenti problemi di tempo.
          Chiedo scusa se al momento la mia collaborazione è meno che nulla, per carico di lavoro extra.. ma arriverò anche io
          Non c'era intento polemico ne tantomeno intendevo diminuire il tuo interessantissimo e pressochè esclusivo apporto, che continuo a seguire con interesse.
          Grazie ancora Umberto per il tuo impegno, e buona domenica

          Comment


            #65
            Per chiarire come la vedo in base alla mia esperienza...
            Modalita everytick, punti di controllo, open bar sia in SQ che in MT4 hanno tutte ragion d'essere ...ma dipende come e per cosa si utilizzano.... Cioè
            1) dipende dal tipo di Ea o strategia che si sta ricercando o ottimizzando
            2) dipende in che fase ci troviamo cioè se siamo in ricerca genetica, ritest, ottimizzazione genetica ecc...
            3) dipende dalla tecnica di ottimizzazione che si utilizza

            Ecco quindi che, ( faccio degli esempi..):

            - Fare una ricerca genetica al tick con SQ o anche un ampia ottimizzazione genetica con MT4 non e' consigliata in quanto richiederebbe troppo tempo proprio perché si è' in una fase di ricerca iniziale...tuttavia garantisco che potrebbe essere indispensabile se abbiamo fra le mani uno scalping puro da 2/5 pip ...
            - analizzare la corrispondenza fra mt4 e SQ con le sole barre di apertura non ha molto senso ... soprattutto per chi come me ritiene che questa corrispondenza sia un ulteriore segno di robustezza...siamo in una fase di ritest finale dove a mio avviso 4 tick interpolati totalmente inventati non mi possono stravolgere un setting che sto cercando di dichiarare in tutti i modi robusto, non overfittato e profittevole....se 4 movimenti all'interno di una candela da un minuto mi sfasano un grafico di 4 anni significa che la strategia non funziona e se funziona a breve non funzionerà'...
            - Capire a pieno come lavora un Ea senza usare la modalità' visuale e' totalmente approssimativo...poco conta che in BT tu abbia utilizzato tick o i prezzi d'apertura...
            Ecc...

            Comment


              #66
              scusate volevo fare un po' di esempi e se ne potrebbero fare un centinaio ma sto' in aereoporto e mi si e' scaricato l'ipad...:-) :-) vabbe' il concetto si capisce... un saluto a tutti gli " amici di Sq"... :-)

              Comment


                #67
                Originally posted by umbertosm View Post

                Qui c'è un bell'articolo recente di Daniel Fernandez a riguardo

                Trading and the GPU: The super power that almost no one uses

                I processori grafici sono costruiti per funzionare con logiche diverse da quelle delle CPU e quindi per riuscire ad usare efficientemente le GPU, dovrà essere riscritto da zero il codice sorgente dei software che le utilizzeranno.

                The GPU technology was created to be very efficient at things like vector and matrix operations but this makes them very inefficient in terms of other things like conditional operations and random memory access operations. Introducing things like double loops and random access patterns is hell for the GPU. Say you want to evaluate a system where you want to use a moving average with a period of 20, doing a constant recalculation of an average using the past 20 bars is very bad for the GPU and if you do this you’re bound to have code that is just as slow as the code on your CPU.
                Già dalle prime prove di costruzione di strategie con SQ, ci si rende conto che la potenza di calcolo (per l'utilizzo di più blocchi possibili) è un fattore importate per tirare fuori strategie reditizie.
                Stavo pensando all'utilizzo di un supercomputer con sistema operativo appositamente modificato linux, per far girare il nostro SQ sviluppato in java.

                http://news.vodafone.it/2012/09/13/i...ti-con-i-lego/

                https://www.southampton.ac.uk/~sjc/r...ox_Jun2013.pdf

                Comment


                  #68
                  @Sergiot: Con la versione 4 di SQ ci sara' la possibilita' di unire piu' pc per sfruttare la potenza di calcolo in una GRID.

                  Prova ad immaginare questa possibilita' in un gruppo di ricerca unendo i propri pc ...

                  Comment


                    #69
                    Analisi della correlazione tra due o più strategy


                    Abbiamo ottenuto due strategy che ci soddisfano e vogliamo vedere come performano insieme e se sono correlate o meno.

                    Siamo nella scheda Retest strategies - Test strategies, selezioniamo le strategy e clicchiamo su Create portfolio
                    .
                    Selezionando la nuova riga Porfolio1 apriamo la scheda Results - Equity chart
                    .




                    Quanto più le due strategy sono scorrelate tanto più la equity line somma delle due strategy prese singolarmente è statisticamente robusta:

                    - se le due strategie realizzano trade buy e sell guadagnando e perdendo negli stessi intervalli di tempo e con la stessa sequenza di profit o loss, allora indipendentemente dalla diversità della logica che sta dietro a ciascun trading system, le due strategy risultano correlate.
                    La conseguenza pratica è che se il mercato si trova in una fase in cui una delle due strategy sta subendo un drawdown, è molto probabile che anche l'altra strategy stia perdendo, determinando un aumento del drawdown dello stesso conto su cui entrambe le strategy stanno operando;

                    - se invece le due strategie realizzano trade in finestre temporali diverse, e se i rispettivi profit/loss dei trade non sono correlati in maniera né diretta, né inversa, risulterà molto più probabile che il drawdown del portafoglio delle due strategy sarà minore del drawdown di ciascuna strategy presa singolarmente: quando una strategy si trova in un periodo di drawdown, è probabile che l'altra strategy stia invece guadagnando, riducendo il drawdown del portafoglio delle due strategie.


                    Per analizzare la correlazione tra le due strategy si apre la sezione Portfolio Analysis
                    .




                    La strategia Porfolio1 ha un numero di trade, 482, che è la somma dei trade In Sample e dei trade Out Of Sample delle due strategie componenti, 4.11 e 1.3
                    quindi 482 = (180 + 70) + (166 + 66)


                    -----------------------------


                    Nella sezione Portfolio symbols correlation - based on daily equity
                    viene calcolato l'indice di correlazione di Pearson del profit/loss della somma dei trade chiusi ogni giorno tra le due strategy.

                    Date due strategie, str1 e str2,

                    - per ogni giorno, StrategyQuant fa la somma del profit/Loss di tutti i trade CHIUSI dalla str1 e la somma del profit/Loss di tutti i trade CHIUSI dalla str2
                    Profit/Loss - a sum of profit or loss for all the trades closed at a given period, for example day
                    - poi per ogni giorno, SQ considera come variabili su cui calcolare la correlazione
                    • le somme giornaliere di str1
                    • le somme giornaliere di str2
                    Nell'esempio in figura, l'indice di correlazione delle somme di profit/loss giornaliero delle due strategy 4.11 e 1.3 è di -0.08 : le due strategie sono statisticamente scorrelate!



                    Da Wikipedia:


                    -----------------------------


                    Nella sezione Portfolio symbols - number of overlapping trades

                    gli overlapping trades sono il numero di trade aperti contemporaneamente dalle due strategy.

                    Sul suo forum lo stesso Mark spiega cosa intende: Overlapping means that the trades overlapped, it means that at least for a while both trades were opened at the same time.

                    Due trades sovrapposti anche per 1 solo minuto sono entrambi considerati in overlapping; uno stesso trade di str1 può essere in overlapping anche con due o più trades di str2.



                    ...per me, questa informazione serve a poco, ma è sempre qualcosa.


                    -----------------------------


                    L'analisi della correlazione che StrategyQuant permette di fare è una versione semplificata di quella più potente offerta da un altro software di Mark Fric, il QuantAnalyzer.
                    Una spiegazione di quanto può essere approfondita la correlazione con il QuantAnalyzer è dettagliata in questo articolo del forum di SQ: Portfolio correlation explained
                    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


                      #70
                      Ho voluto provare il Test precision: Trade on Bar Open (fastest)

                      perché NON permette l'uso dei trade PENDENTI (STOP e LIMIT) eliminando quindi uno dei fattori di un'eventuale differenza di performance tra SQ e Mt4.

                      Questo tipo di Test precision inserisce i trade e mantiene in memoria i pip di stoploss e takeprofit , ma testa il loro raggiungimento soltanto ad avvio della barra, NON all'interno della barra come tutte le altre modalità di Test precision.

                      Perciò, se ad esempio il takeprofit è di 28 pip e all'avvio di una delle barre successive all'apertura del trade, l'expert advisor verifica che il takeprofit è stato raggiunto e superato perché il mercato si è spostato di 50 pip oltre il prezzo di apertura del trade, questo trade verrà chiuso al valore corrente di mercato, quindi il takeprofit del trade chiuso sarà pari a 50 pip e non a 28 pip come imposto nei parametri del trading system.
                      Analogo discorso per lo stoploss, se il valore imposto è ad esempio di 35 pip e ad apertura di una barra viene verificato che il mercato si è spostato dal prezzo di apertura del trade di 60 pip, il trade verrà chiuso e lo stoploss del trade sarà di 60 pip e non di 35 pip.

                      Questo è il modo di operare del Trade on Bar Open (fastest): è una modalità che talvolta uso anche io sugli EA che costruisco, specie quando voglio usare l'EA su timeframe bassi, sotto i 30 minuti.
                      .




                      Quando si usa il Test precision: Trade on Bar Open (fastest) nei Building Blocks non si possono selezionare i due tipi di ordine Stop e Limit, che quindi vanno deflaggati.
                      .




                      Se invece ci lasciano flaggati, quando si avvia la Genetic Evolution, compare un messaggio di errore
                      .



                      ---------------------------

                      Ho fatto partire una evoluzione genetica su timeframe M15 con Test precision: Trade on Bar Open (fastest) per 1 anno, lasciando 2 mesi di dati storici successivi per estendere il backtest in fase di Retest strategies.

                      In sintesi, SQ fa la ricerca di strategie
                      - sui dati In Sample da gennaio a settembre 2015 (suddiviso in IS Training e IS Validation)
                      - poi calcola la performance sui dati Out Of Sample da ottobre a dicembre 2015

                      Tra tutte le strategy nel Databank, selezionate con i setting personalizzati dei Ranking Options (Custom conditions - Dismiss strategies where e Funzione di fitness),
                      scelgo quelle che mi soddisfano e vado a ritestarle su un range di dati ampliato, sempre nella stessa modalità Test precision: Trade on Bar Open (fastest).

                      In Retest strategies faccio in modo che il retest avvenga
                      - sui dati In Sample da gennaio a dicembre 2015 : corrisponde ai dati IS + OOS della fase di Build strategies
                      - sui dati successivi OOS di due mesi da gennaio a inizio marzo 2016 : completamente sconosciuti rispetto alla fase di Build strategies
                      .1



                      Dopo il retest terrò soltanto quelle strategy che performano anche da gennaio a inizio marzo: come primo filtro, sono strategie che dimostrano di performare bene anche nel futuro successivo ai dati storici su cui sono state ottimizzate.

                      Naturalmente manca ancora da fare il test di robustezza, la walk forward matrix, l'eventuale Improve strategies, ecc., che vedremo successivamente.


                      Tra le varie strategy che mi soddisfano ne scelgo una, in figura si vede come guadagna anche sui dati OOS da gennaio a inizio marzo 2016
                      .




                      -------------------

                      Qualsiasi equity line di SQ NON vale ancora nulla, se non è verificata da Metatrader4:
                      il backtest con Metatrader4 della strategy esportata da SQ in metaquote language 4, realizzato sugli stessi dati storici usati con SQ, per me è l'unico faro di affidabilità delle strategy ottenute con SQ.

                      Ho fatto delle prove per cercare strategie su timeframe M5, ho ottenuto alcune strategy con 1000 trade ed equityline in affascinante salita a 45 gradi; ho esportato la strategy in .mq4 e backtestandola su Metatrader4 ho ottenuto 0 trade sugli stessi identici dati: in pratica su Mt4 NON si verificava mai il segnale del trade, il codice era corretto, ma la verifica in Visual tester su Mt4 non generava mai un trade per mancanza di condizioni, che non si verificavano mai.

                      StrategyQuant probabilmente usa un algoritmo di backtesting che in alcuni casi
                      - o NON riesce a esportare correttamente la .str in codice per Metatrader4
                      - o per estensioni di candele di pochi pip sballa clamorosamente il calcolo delle variabili/indicatori

                      Nonostante le equity line ottenute con SQ siano replicabili su Tradestation, questa piattaforma è nota
                      - per la semplicità e bassa potenzialità del codice sorgente,
                      - per il rischio di repaint (aprire trade in backtest quando le condizioni del trade si verificano dopo che il trade è stato aperto),
                      - per backtest che a volte non corrisponde alla verità del live trading.

                      In sintesi, come concludeva pragmaticamente Paolo, se una equity line di SQ non è replicabile su Metatrader4, la strategy va eliminata...
                      ed aggiungo che per me quella strategy NON vale nulla, è un bluff, SQ sbaglia clamorosamente.


                      -------------------


                      Proseguiamo l'esempio ed esportiamo la strategy in .mq4

                      Poiché abbiamo usato il Test precision: Trade on Bar Open (fastest), nella scheda Result - Source code
                      esportiamo la strategy in Mt4 Special EA - trade On Bar Open (.MQ4)

                      Da notare in figura il diverso codice sorgente che si ottiene lasciando deselezionato o selezionando Put values to parameters :
                      - deselezionandolo, i valori numerici delle variabili vengono inseriti direttamente dentro gli indicatori che ne fanno uso; questo NON permette di poter ottimizzare l'expert advisor con il Tester di Metatrader4;
                      - invece selezionandolo, nell'esempio si vede come la ENTRY RULES dei trade LONG abbia le variabili delle Bollinger Bands inseriti come parametri di tipo extern e quindi ottimizzabili con il tester di Metatrader4.
                      .



                      Dopo aver salvato il file .mq4 (che ho chiamato come la strategy e con estensione _OB per ricordarmi che è stato trovata su SQ ad Open Bar) e compilato con il Metaeditor,
                      lo si testa su Metatrader4 indifferentemente in Every tick o in Oper Prices only: se la equity è sufficientemente simile a quella ottenuta su SQ, la strategy è valida e può essere considerata per successivi test, altrimenti va scartata senza pietà :18.evilgrin_80_anim
                      .
                      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


                        #71
                        StrategyQuant genera condizioni a cui uno difficilmente penserebbe, ad esempio all'uso di due Bollinger Bands che si intersecano io non ci avevo mai pensato. :06.surprised_80_ani
                        .



                        Per vedere a colpo d'occhio qual è il setting degli eventuali indicatori inseriti nella strategy,
                        come in figura, faccio partire il Visual Tester e dopo qualche decina di candele lo fermo: Metatrader4 disegna gli indicatori usati sul grafico.
                        .
                        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


                          #72
                          Vediamo la scheda Improve Strategies

                          Supponiamo di aver trovato in Build strategies una strategy che vogliamo testare e migliorare.

                          La portiamo in Retest strategies
                          - estendiamo i dati su cui fare il retest: dal 28 novembre 2015 al 25 marzo 2016
                          - affiniamo il Test precision ad 1 Minute data (slow)
                          .



                          e se otteniamo una equity line che performa bene anche sui nuovi dati Out of Sample, possiamo procedere ad un Improve della strategy
                          .




                          Siamo ancora su Retest strategies: salviamo la strategy
                          .




                          ------------------------

                          IMPORTANTE: se si vuole usare StrategyQuant per creare trading system da far girare su Metatrader4,
                          prima di cercare di migliorare le condizioni di entrata ed uscita della strategy al fine di migliorarne la equity line, il mio consiglio è di esportare PRIMA la strategy in metaquote language 4, provarla su Metatrader e SOLTANTO DOPO, SE PERFORMA BENE SUL TESTER DI METATRADER4 ha senso continuare a considerare questa strategy.

                          C'è sempre il rischio che si tratti di una strategy fasulla, che va bene su StrategyQuant ma che è inutilizzabile su Metatrader4.
                          Per me, una strategy che non va bene su Metatrader4 è un bluff e va cancellata: è inutile perder tempo a migliorare qualcosa che non è utilizzabile su Metatrader4.

                          ------------------------


                          Ci spostiamo su Improve strateges e in alto con il pulsante Load carichiamo la strategy appena salvata.
                          .




                          Se andiamo nella sezione Result - Source code - Pseudo Code, possiamo leggere quali sono le condizioni di entrata e di uscita del trading system
                          .




                          Ritroviamo queste condizioni nella scheda Settings - Parts to Improve: queste sono le parti della strategy che possono essere migliorate

                          Per la strategy dell'esempio, abbiamo
                          - una condizione fissa per le regole di entrata,
                          - una condizione fissa per il tipo di ordine
                          - tante condizioni diverse per chiudere il trade: queste condizioni possono essere visualizzate cliccando le freccette evidenziate in figura
                          .



                          Si possono modificare
                          - in maniera simmetrica o asimmetrica le condizioni di entrata ed uscita per trade LONG o SHORT
                          - le Entry Rules
                          - gli Order Types
                          - le Exit Rules


                          con nuove condizioni costruite in maniera casuale (random) in modalità:
                          add or replace: le nuove condizioni trovate vengono aggiunte o vanno a sostituire le condizioni originarie
                          replace: le nuove condizioni trovate vanno forzatamente a sostituire le condizioni originarie
                          add: le nuove condizioni trovate vengono forzatamente aggiunte alle condizioni originarie
                          .




                          Flaggando una o più delle tre voci Entry Rules, Order Types e Exit Rules, a seconda di cosa si vuole provare a migliorare
                          .



                          facciamo in modo che Strategy Quant generi randomicamente nuove condizioni,
                          prendendole dal setting preimpostato precedentemente nelle Build strategies, ma modificabile a piacere,
                          delle sezioni Strategy Options, Building Blocks, Ranking Options
                          .




                          Ora, facendo partire la ricerca delle nuove condizioni con Progress - Start,
                          .




                          Strategy Quant aggiunge nella sezione Improved strategies il backtest delle nuove strategy generate,
                          per un numero totale di nuove strategy impostato nella scheda Ranking Options
                          .





                          Se clicchiamo nella lista delle Improved strategies sulla riga Original strategy e leggiamo lo Pseudo code, troviamo le condizioni originarie
                          .





                          Se invece clicchiamo sulla riga di qualsiasi altra strategy, leggiamo le nuove condizioni generate randomicamente
                          .



                          .





                          .

                          Se questa
                          sdsdsdasdasd
                          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


                            #73
                            Ottimizziamo una strategia, a fine di individuare parametri migliori rispetto a quelli trovati da StrategyQuant.


                            Siamo nella scheda Retest strategies ed abbiamo una equity che vogliamo migliorare.
                            .




                            La salviamo e poi aprendo la scheda Optimizer, la carichiamo con il pulsante Load come in figura.
                            .





                            Per prima cosa verifichiamo di avere nella scheda Optimizer - Settings - Data

                            gli stessi setting sui dati storici della scheda Retest strategies - Settings - Data
                            .





                            Quando i dati sono sincronizzati, andiamo nella scheda Settings - Parameters : queste sono le variabili che possono essere ottimizzate.

                            C'è una lunghissima "sbrodolata" di variabili: quali scegliere?
                            .




                            Io faccio così: vado prima nella scheda Results - Source code - Pseudo Code
                            e leggo i parametri principali della strategia, quelli relativi alle condizioni di entrata e di uscita, e scelgo di ottimizzare alcuni di questi.

                            Nel caso dell'esempio, scelgo di ottimizzare le variabili relative al ParabolicSAR ed i pip di stoploss e takeprofit.
                            .




                            Le variabili si ottimizzano come su Metatrader, con il valore di Start, di Stop e di Step.

                            Ad esempio, i pip di takeprofit e stoploss li modifico a mano
                            .




                            mentre le variabili dell'indicatore decido di ottimizzarle variando i valori del 50%
                            .






                            Dopo aver settato le variabili da ottimizzare, possono scegliere di fare

                            - una ottimizzazione completa, Brute Force: tutte le possibili combinazioni delle variabili verranno backtestate

                            - una ottimizzazione ridotta sfruttando la Genetic Optimization, con la funzione di fitness riportata nella sezione Strategy Selection Criteria.
                            .





                            Quando il tutto è stato settato, si fa partire l'ottimizzazione
                            e nella sezione Optimization results vengono riportati i backtest delle strategie con le diverse combinazioni delle variabili oggetto di ottimizzazione.
                            .




                            Selezionando una riga, ed aprendo il grafico si osserva la equity in blu della strategy ottenuta con i nuovi parametri

                            mentre la equity in grigio è la strategy con i valori dei parametri originari.
                            .





                            I nuovi valori dei parametri si leggono
                            - nella colonna Optimization Parameters nella lista degli Optimization results,
                            - ed anche nel Source code - Pseudo Code della nuova strategy ottimizzata
                            .


                            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


                              #74
                              Ciao a tutti, mi chiamo Luca, piacere di conoscervi e contentissimo di avere trovato questo ottimo forum !
                              Un grande ringraziamento a Umberto, che sta facendo un lavoro fantastico con le sue guide su Strategy Quant.

                              Ho da qualche giorno scaricato la versione trial che sto testando.

                              Nella sezione "pre-sales questions" del forum di SQ c'e' un topic dove si parla di generare strategie che siano contemporaneamente valide su piu' di un simbolo.
                              Dato che avevo già' letto la guida di Mark dove veniva spiegato il procedimento, ho provato anche io.

                              Effettivamente, come riportato, le strategie che vengono generate ( con il metodo genetico ) contengono ordini solo per il simbolo principale.

                              Sul forum si dice che e' un probabile bug ... qualcuno ha esperienza in merito ?

                              Tra pochi giorni il trial mi scade e non so cosa fare ... il software e' interessantissimo, ma il prezzo e' piuttosto alto ... adesso poi che ho anche questo dubbio del bug su una funzione cosi' interessante come costruire strategie su piu' simboli contemporaneamente ...


                              Ringrazio tutti per l'aiuto, e spero di potere far parte un giorno del gruppo !

                              Luca.

                              Comment


                                #75
                                StrategyQuant ha due potenti strumenti per verificare la robustezza di una strategia, la Walk-Forward Optimization e la Walk-Forward Matrix,

                                che si basano sulla teoria della Walk Forward Analysis

                                un metodo che verifica se il MODELLO di ottimizzazione scelto è vincente nel lungo periodo, cioè se la scelta dei parametri da ottimizzare periodicamente, unita al range dei valori oggetto di ottimizzazione, è in grado di ottenere guadagni costanti nel tempo.


                                Dopo aver scelto una strategia che si ritiene profittevole, vogliamo verificarne la robustezza sul range di dati storici a disposizione e se è possibile migliorarne la performance.

                                Nella sezione Optimizer, si carica la strategia con il pulsante Load e si sceglie nella finestra Optimization Settings la voce Walk-Forward Optimization
                                .



                                Cliccando due volte sulla riga contenente i parametri di sintesi della strategy si apre automaticamente la sezione Results e visualizziamo la equity
                                .



                                Conoscendo la teoria della WFA, il nostro scopo è di verificare se è possibile individuare delle finestre temporali sui dati storici, su cui ottimizzare periodicamente la strategy al fine di avere una performance sui dati successivi Out Of Sample che sia profittevole ed eventualmente anche superiore al risultato ottenuto con la singola ottimizzazione In Sample e successiva verifica Out Of Sample.

                                Scegliamo arbitrariamente di individuare 6 finestre temporali sui dati storici seguite ciascuna da dati Out Of Sample che siano, di volta in volta, il 20% della dimensione dei dati In Sample che li precedono.
                                .



                                Ora dobbiamo individuare i parametri della strategy che vogliamo siano oggetto di ottimizzazione periodica:

                                andiamo nella sezione Results - Source Code - Pseudo Code ed individuiamo, arbitrariamente, le variabili che ci interessano
                                .




                                Infine nella sezione Settings - Parameters, come già descritto al post precedente, settiamo i valori di Start Stop e Step e l'Optimization method.
                                .




                                Ora verifichiamo che i dati storici su cui deve lavorare la WFA sia gli stessi di quelli usati nel Retest strategies, condizione fondamentale per poter fare un raffronto di performance tra
                                - la singola ottimizzazione sui dati In Sample e successiva verifica sui dati Out Of Sample, della strategy originaria
                                e
                                - le 6 ottimizzazioni In Sample seguite ciascuna dalla propria porzione di dati storici Out Of Sample
                                .





                                Facciamo partire la Walk-Forward Optimization
                                .





                                ed al termine nei Walk-Forward results troviamo
                                - la strategia originale
                                - e la performance del ciclo di Walk Forward Optimization, da cui si evince che il Net Profit è numericamente superiore a quello ottenuto con la Original strategy.
                                .




                                Cliccando due volte sulla riga della Walk Forward Optimization, nella scheda Results possiamo vedere l'andamento della sua equity line in colore Blu,
                                rispetto al colore grigio della strategy originale.

                                Si vede chiaramente che c'è uno dei tanti bug di StrategyQuant: la equity line della Original strategy non è plottata correttamente come dovrebbe: nell'esempio invece di terminare a marzo del 2016 (come invece termina correttamente la equity line della Walk Forward Otpimization), finisce nel 2015, come se la linea si fosse "ritirata su se stessa".

                                Infine, sotto al grafico sono evidenziati i Walk Forwards periods: ciascuna linea orizzontale verde rappresenta la singola finestra di dati In Sample,
                                seguita dalla finestra di dati Out Of Sample, la linea di colore rosso.

                                .


                                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