Trascrizione della sessione di codifica del 26/10/2021

La prima sessione di codifica è stata un esperimento riuscito, grazie a EmanuelE, beetrader, clonex per le vostre domande e la chat.

Continueremo con le sessioni di codifica
sarà bisettimanale, sempre a metà e fine mese.

La prossima sessione di codifica si terrà il 18 novembre alle 14:00 ora CET, ovvero alle 13:00 ora di Londra, alle 8:00 ora di New York, alle 5:00 ora di San Francisco, alle 0:00 ora di Sydney.

Tutte le persone che hanno riempito il Modulo di interesse per la sessione di codifica saranno avvisati di ogni prossima sessione (fino a quando non si cancelleranno dalla mailing list della sessione), se volete ricevere un invito, compilate il modulo modulo qui.

Trascrizione della sessione di codifica - non è una corrispondenza 100%, ma è filtrata e raggruppata in base al tema della domanda per una migliore lettura.

 

Chiamata di programmi esterni - Python, #F - da SQ

Beetrader
(2) Come posso aggiungere uno script esterno come F# o uno script Python come parte del progetto personalizzato? (3) Esiste un modo per collegare SQX e un database come mysql o Microsoft SQL utilizzando JDBC?

EmmanuelE
Bee, questa è una domanda interessante. Su Internet sono disponibili alcuni bridge .Net-java. Sarebbe interessante vedere come includere una dll in SQX.
Sto usando la libreria ML.Net, vorrei sapere se è possibile implementare la libreria ML.Net in SQX tramite un bridge .net-java

Marchio
Ciao Emmanuel - chiamare .NET da Java - onestamente non ho ancora provato, ho sperimentato con Python. Dovrebbe essere molto simile.
L'articolo di esempio su Python di SQ è pubblicato qui: https://strategyquant.com/doc/programming-for-sq/calling-python-from-sq-java-introduction/
Il secondo esempio, con l'uso di ProcessBuilder, può essere usato per richiamare qualsiasi script o programma esterno. Non è specifico di SQ, gli snippet di SQ sono scritti in Java, quindi si possono cercare esempi Java per richiamare .NET o qualsiasi altra cosa.
Se avete bisogno di un ponte e di aggiungere una libreria JAR personalizzata a SQ, c'è un articolo al riguardo: https://strategyquant.com/doc/programming-for-sq/using-custom-jar-libraries/

EmmanuelE
infatti, è come qualsiasi linguaggio, basta inserire all'inizio "import xx.yy", credo che si possa importare qualsiasi dll, come qualsiasi programma java
Sarebbe interessante condividere dati, oggetti (segnali, indicatori) direttamente da un software di trading a SQX.
Python può essere utile, sto usando ML .NET, è molto simile. e c'è un sacco di miglioramento in ML .NET
Lavoro molto con le reti neurali

Marco (SQ)
Non sono sicuro che sia così semplice. In genere, è possibile chiamare metodi personalizzati da JAR Java o librerie Python o .NET personalizzate in snippet SQ, ma è necessario sapere cosa si sta facendo. Non è così facile creare un indicatore personalizzato che verrà calcolato in altro codice: è tecnicamente possibile, ma potrebbe essere molto lento.
per quanto riguarda l'uso delle reti neurali, dipende da cosa si vuole fare esattamente con SQ e NN. Forse, se mi descrivete meglio cosa volete fare esattamente, posso pensare a come farlo.

EmmanuelE
Ho trovato un ponte tra NET Java : https://www.javonet.com/about/what-is-javonet/

Marco (SQ)
Sì, ci sono modi per chiamare .NET da Java, questo non è un problema. Il "problema" è come collegare la propria libreria a SQ, dipende da cosa si vuole fare esattamente

 

Sviluppo di un nuovo test Monte Carlo

Beetrader
(1) Come posso estendere SQX in modo da poter implementare un diverso test di permutazione Monte Carlo oltre ai due già presenti. Sto pensando di implementare il test di permutazione di Tim Masters?

Marchio
Non conosco gli algoritmi esatti dei suoi test di permutazione - sta facendo delle permutazioni dei trade risultanti o qualcos'altro?
In ogni caso, potete dare un'occhiata a come sono implementati gli attuali test MC: il codice sorgente di ogni test è disponibile.
Se mi descrivi meglio cosa vuoi fare posso darti qualche suggerimento
Sarò in grado di aiutarvi al meglio in questa sessione dal vivo se mi darete una descrizione migliore di ciò che volete fare esattamente - nel caso del test MC la descrizione dell'algoritmo da implementare. Oppure, se avete già iniziato, il codice snippet che avete finora e il problema che avete incontrato.
Posso dare solo risposte generali a domande generali.
Ma cercherò di esaminare il test di permutazione di Tim Masters se il mio tempo me lo permette e lo pubblicherò nella trascrizione di questa chat.

Beetrader
Permuta le serie temporali prima di inserirle nell'algoritmo. Utilizza i logaritmi per trovare le differenze, ad esempio, dei prezzi di chiusura, li randomizza e ricrea le serie temporali.

EmmanuelE
Vedo che possiamo sviluppare indicatori, segnali, colonne della banca dati. Possiamo accedere al commercio per implementare un nuovo tipo di test? Possiamo aggiungere un nuovo controllo incrociato?
Il controllo incrociato Monte Carlo è disponibile? Come esempio?

Marco (SQ)
è possibile estendere molto più di questo. Sì, è possibile creare facilmente un nuovo metodo Monte Carlo, di cui esiste già un esempio nella nostra base di codice: https://strategyquant.com/codebase-category/mc-retest/
in questo modo è possibile aggiungere un nuovo metodo di simulazione per MC.
Inoltre, il codice sorgente completo di tutti i test Monte Carlo esistenti è disponibile nel Code Editor di SQ.

EmmanuelE
Eccellente !!!!!!!!!!!!!!!!! Stavo cercando queste informazioni!!!

Marco (SQ)
È inoltre possibile accedere alle operazioni della strategia o anche a un gruppo di strategie per eseguire la propria analisi, utilizzando lo snippet CustomAnalysis come parte del flusso di lavoro del progetto personalizzato, ad esempio: https://strategyquant.com/doc/programming-for-sq/example-per-strategy-custom-analysis/
L'analisi personalizzata può essere eseguita dopo che il costruttore o il retester hanno terminato, può eseguire la propria analisi e (ad esempio) eliminare le strategie che non superano la convalida. Oppure utilizzare JDBC per connettersi al database e caricarvi qualcosa.

EmmanuelE
questo è impressionante !!!!!!
Possiamo fare molto !!!!

Marco (SQ)
Sì, ci sono molte cose che SQ può fare che non sono ancora ben documentate, stiamo cercando di migliorarle.

EmmanuelE
Questo offre una grande flessibilità !!!!!
Esiste un codice per creare un portafoglio?
Esiste un codice per il test Walk Forward?

Clonex
Sì, è possibile lavorare con WFO. Aggiungeremo gli esempi il prima possibile, nella prima metà di novembre.

EmmanuelE
Sarebbe utile vedere come le strategie vengono selezionate da una corsa all'altra.
Vorrei creare un portafoglio con i risultati degli scambi WF

Marco (SQ)
Intende un portafoglio di azioni WF?

EmmanuelE

Marco (SQ)
dovrebbe essere possibile. La cosa più semplice è farlo in uno snippet di analisi personalizzato, ne farò un esempio

Esempio di creazione di un portafoglio dai risultati del WF: Per banca dati snippet di analisi personalizzata.

Collegamento tra SQ e database

beetrader
(3) Esiste un modo per collegare SQX e un database come mysql o Microsoft SQL utilizzando JDBC?

Marco (SQ)
In linea di massima sì, ma con quale collegamento esattamente? Si vogliono caricare i dati per il backtest dal DB o memorizzare i risultati della strategia nel DB?

Beetrader
Voglio memorizzare i risultati nel database in modo da poter eseguire successivamente confronti con l'azione dal vivo. Attualmente lo faccio manualmente in QA.

Marco (SQ)
Vuoi farlo in SQ? È possibile utilizzando lo snippet di analisi personalizzata, ma cosa vuoi memorizzare esattamente nel database? I risultati della strategia o le operazioni?

Beetrader
idealmente voglio memorizzare tutto nel database. So che posso memorizzare l'xml della strategia, nel qual caso devo solo creare un task personalizzato per leggere l'xml e salvare ciò che voglio nel database?

Marco (SQ)
Sì, e potete memorizzare tutto il resto allo stesso modo. È possibile accedere alle metriche (profitto netto, # degli scambi, ecc.) e all'elenco completo degli scambi per ogni strategia nella banca dati.
guardate l'esempio di analisi personalizzata qui: https://strategyquant.com/doc/programming-for-sq/example-per-strategy-custom-analysis/
può essere richiamato per ogni strategia nella banca dati. Quindi basta prendere le cose da ResultsGroup e salvarle

La strategia con tutti i suoi dati è memorizzata nell'oggetto ResultsGroup: https://strategyquant.com/doc/programming-for-sq/working-with-resultsgroup/
L'analisi personalizzata può essere eseguita al termine del Builder o del Retester, oppure come parte di un progetto personalizzato. Può eseguire la propria analisi e (ad esempio) eliminare le strategie che non superano la convalida. Oppure utilizzare JDBC per connettersi al database e caricarvi qualcosa.
Anche in questo caso, gli Snippet di SQ sono in puro Java, quindi è possibile aggiungere semplicemente del codice per connettersi al database tramite JDBC e salvarvi ciò che si desidera.

 

QuantAnalyzer - Simulazione di Martingala MM

Beetrader
come posso creare un money management martingala in Quant Analyser. Ho cercato di seguire il codice esistente ma non ho trovato un modo per fare riferimento alle operazioni precedenti.

Marco (SQ)
hai ragione, non è possibile fare riferimento alle operazioni precedenti in MM, devo pensarci - se è possibile in qualche modo. Posterò una risposta migliore e forse qualche esempio nella trascrizione della chat.

EmmanuelE
Anche io ho lo stesso, voglio creare un altro money management con un modo diverso di acquistare/vendite/hedge.

EmmanuelE
Ho bisogno anche di fare riferimento a scambi precedenti, per aprire scambi multipli

Beetrader
Ho inviato alcuni esempi di come possiamo iniziare a migliorare la documentazione. Se si dispone di un modo per inviare esempi agli utenti, è possibile controllarli e rivederli prima di pubblicarli nella documentazione dell'API.

Questa risposta è ancora in fase di elaborazione e sarà pubblicata nei prossimi giorni.

 

Aggiornare la configurazione del costruttore in corsa

Beetrader
SQ nei progetti personalizzati c'è un modo per aggiornare il task del costruttore con l'output di uno script precedente, ad esempio pythong, che calcola ad esempio gli intervalli che voglio usare come stop loss e take profit.

Marco (SQ)
dovrebbe essere possibile, ma sarà piuttosto complicato. Devo vedere come si fa, cercherò di fare un esempio.

Questa risposta è ancora in fase di elaborazione e sarà pubblicata nei prossimi giorni.

Abbonarsi
Notificami
2 Commenti
Il più vecchio
Più recente I più votati
Feedback in linea
Visualizza tutti i commenti
Hemmo
17. 11. 2021 9:36

Alcune informazioni recenti sui test di permutazione fornite da Timothy Masters possono essere ascoltate nel podcast Better System Trader al seguente indirizzo:
https://www.youtube.com/watch?v=1RKz9v_0WDo&t=3191s

Emmanuel
20. 11. 2021 1:26 pm

Grazie Mark, questa sessione è stata davvero utile

Continua a leggere