Trascrizione della chat di codifica del 18/11/2021

Grazie ancora a tutti i partecipanti all'ultima chat di codifica.

La prossima sessione di codifica si terrà il 25 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.

 

 

beetrader
è possibile modificare la codifica dei colori nella matrice di correlazione, i numeri negativi estremi sono visualizzati in verde. Vorrei che i numeri positivi avessero la stessa tonalità di colore quando i negativi si allontanano dallo zero. C'è un modo per farlo nel codice?

Marco - SQ
Credo che al momento non sia possibile modificare i colori, sono codificati in modo fisso.
In linea di principio è possibile personalizzare tutto, compresi i colori della tabella della matrice di correlazione, ma non possiamo configurare ogni singolo elemento del programma. Dubito che molti altri utenti possano trarre vantaggio da questa funzione, quindi per noi ha una priorità minima. Dobbiamo concentrarci su cose più importanti e di maggiore impatto.

 

 

beetrader
Voglio implementare un database per salvare i risultati xml, sono previsti cambiamenti nei prossimi mesi o posso salvarli tranquillamente con le specifiche attuali?

Marco - SQ
no, XML non dovrebbe cambiare. Può essere esteso (nuovi tag o attributi), ma non dovrebbe influenzare il codice che lo elabora.

 

 

beetrader
È possibile avere una fonte di dati sui prezzi diversa da quelle elencate nel gestore dei dati, ad esempio posso consumare i prezzi da un mongodb o da un db sql?

Marco - SQ
La soluzione più semplice per ora sarebbe quella di esportare i prezzi dal DB in un formato CSV, per poi importare facilmente qualsiasi formato CSV in SQ.

 

 

sebasfiorent 
Sto cercando di capire come implementare un FormulaBlock per implementare un importo fisso in (USD/EUR, cioè la valuta del conto) per TakeProfit.

Marco - SQ
dovrebbe essere una formula del pacchetto SQ.Formulas.SLPT. Ma a dire il vero non abbiamo provato a estendere questa parte all'esterno, ci sono alcune dipendenze che potrebbero creare un problema: è possibile creare una nuova formula in SQ, ma è necessario aggiungere anche la sua "traduzione" in MT4/5 MQL e/o TS EasyLanguage per farla funzionare nel codice finale generato per queste piattaforme.

 

 

beetrader
domanda aperta: Ci sono alcuni indicatori di John Ehlers in SQX, gli altri indicatori basati sull'elaborazione del segnale sono difficili o impossibili da implementare in SQX?

Marco - SQ
è possibile implementarli, ma non c'è stato il tempo di farlo. Ci sono migliaia di possibili indicatori che potrebbero essere implementati in SQ, noi abbiamo scelto quelli che preferiamo. Ogni tanto ne aggiungiamo qualcuno

clonex
Questo non dovrebbe essere un problema

Non è così difficile. Inviatemi qui gli indicatori di Ehlers che intendete implementare.
Ho qualcosa in lavorazione Autocorrelazione, qualcosa è stato fatto (Reflex) ma ci sono molte possibilità.

beetrader
Ok, grazie, possiamo implementarne alcuni. Forse quello che volevo sapere è una lista di inconvenienti a cui fare attenzione. Ad esempio, se si sa che qualcosa non funziona quando si cerca di implementarlo, allora è utile che gli sviluppatori/estensori di SQX power lo sappiano in anticipo.

Marco - SQ
Non sono sicuro che ci siano problemi nell'implementazione degli indicatori se non si tratta di indicatori speciali multi-timeframe.
Gli indicatori in SQ sono abbastanza semplici, la loro logica è simile a quella degli indicatori C# di NinjaTrader - vi consiglio di cercare la rimplementazione degli indicatori NT, potrebbe essere molto semplice convertirli in SQ.

beetrader
grande grazie, questo è un gotcha

 

 

beetrader
Esiste un modo per estendere SPP in modo che utilizzi il profitto mediano e non quello medio?

Marco - SQ
Non sono sicuro di cosa intendi, SPP non usa il valore mediano o medio per scegliere il valore del parametro, ma cerca la regione più stabile.

beetrader
Devo presentare una richiesta di modifica o è troppo complicato cambiare l'architettura attuale?

beetrader
Ho segnato sull'immagine

Marco - SQ
Capisco, non si tratta di SPP ma di profilo di ottimizzazione. La media viene utilizzata perché è usata nel documento originale, inoltre la deviazione standard viene solitamente misurata dalla media. Non sono sicuro di come si comporterebbe nel caso della mediana.

beetrader
Certo, capisco. Il problema è che, poiché l'SPP si basa sui valori mediani, non è che poi ci troviamo in una situazione di sovrastima o sottostima quando passiamo a utilizzare i profitti medi e non quelli mediani. Posso giocare con le impostazioni per trovare i migliori numeri di StdDev, quindi non è un elemento ad alta priorità.

 

 

beetrader 
Siete riusciti a trovare un modo per implementare la Martingala in QuantAnalyser?

clonex
Capire 1) il modo più semplice è quello di implementarlo in uno scenario what if in cui è possibile eseguire il loop della lista degli ordini 2) il modo più difficile è quello di fare questo nel plugin di gestione del denaro in QA

 

 

beetrader
Vorrei chiedere se esiste una metrica già pronta (come sharpe o sqn), che possa calcolare le statistiche su pnl "mark to market" più frequenti, rispetto alle sole operazioni completate.
Ad esempio, nel settore azionario è abbastanza comune fare il marking to market giornaliero per le operazioni multiday e calcolare lo Sharpe ratio dal PNL giornaliero.

clonex
Intendi qualcosa come : Calcolo dello Sharpe per le ultime 20 operazioni?

clonex
Non ancora e davvero non è una priorità per me. Ci sono cose molto più belle davanti a noi, con tutto il rispetto per il nostro lavoro.
In realtà sto lavorando su "what if snippet":
1) si rileverà il massimo DD in IS train/or test - quindi si interromperà il trading se la soglia DD sarà raggiunta in OS
2) Simulazione di trading azionario in what if (insieme a snippet di controllo del conto in MT4/MT5 (( sono stati fatti ma non rilasciati )

beetrader
Sì, so che siete sommersi dalla neve. Ho solo bisogno di indicazioni su come fare riferimento alle operazioni precedenti nel codice QA,

Marco - SQ
No, non esiste una metrica di questo tipo In SQ calcoliamo le metriche solo dopo il backtest della strategia, quindi non ha accesso a tutte le mosse dell'operazione. Memorizza MAE/MFE, che può essere utilizzato per calcolare questo tipo di metriche in una certa misura.

beetrader
intende dire che mentre un'operazione è aperta, vuole le statistiche in-play come questo MAFE https://strategyquant.com/codebase/mafe-profit-factor/

os
Intendo calcolarlo dalla pnl giornaliera, ad esempio, includendo la parte "non realizzata".

1TP9Il problema con tutte le metriche di "rendimento aggiustato per il rischio" che ho trovato in SQX (sharpe, sqn, ritorno sul dd) è che si può avere una strategia "rotta" che rimane in una posizione perdente a lungo termine (settimane, mesi), può avere un enorme drawdown non realizzato (come 50%+), ma se si calcolano le statistiche (sharpe) solo dal PNL realizzato (senza marcatura a mercato), sembrerà irrealisticamente buono...

@beetrader sì, qualcosa come il MAE è un workaround. Questo è ciò che sto usando ora come funzione di fitness, una combinazione di rendimento, sharpe/sqn e MAE.
Questo va bene, ma vorrei implementare qualcosa di meglio idealmente...

clonex
Non so come fare in questo momento, ma ho fatto un sacco di snippet inediti con MAE / MFE, ma non so come fare ora.
L'analisi complessiva di edge ratio, mfe e mae può dirci molto di più di quanto mi aspettassi.
Tenete questa domanda per il voto di domani @os os.

clonex
Non sono sicuro che questo sia possibile in QA ora. Mancano nel pacchetto MoneyManagementTypes
Dovrebbe essere possibile tenere traccia dell'ordine precedente come variabile di istanza, ma non lo so davvero.

os
Ok grazie.

Per esempio, questa domanda e la prima risposta riguardano esattamente questo problema...
Ha senso guardare i pnl non realizzati (pnl delle operazioni aperte) giornalmente, perché altrimenti si possono avere operazioni aperte per un anno e non vedere cosa è successo nel frattempo con il valore del conto dalle statistiche...
https://quant.stackexchange.com/questions/9935/calculate-daily-returns-for-sharpe-ratio

clonex
O forse è possibile

 

 

martinx
(translated by Mark) Esiste una funzione che misura quanti secondi è durata la barra? Voglio usarla per le barre di range e di volume.

Marco - SQ
martinx - per favore solo in inglese. no, non esiste una funzione che misuri quanti secondi è durata la barra. Non sono nemmeno sicuro che questo tipo di informazioni sia memorizzato per le barre del volume e del range.

martinx
la funzione esiste nella piattaforma standard (sto usando tradestation o multicharts) per esempio in ms, nella vostra piattaforma non c'è modo di misurare queste cose di base? grazie

Marco - SQ
Ok, ho capito. Non sono 100% sicuro, ma i tempi in SQ sono anche memorizzati in milisecondi. Quindi i tempi che stai mostrando dovrebbero essere accessibili dal blocco/serie Time. Devi fare solo Time(0) - Time(1) per ottenere una differenza tra la barra precedente e quella corrente.

 

 

EmmanuelE
Vorrei creare strategie di posizioni multiple, come ad esempio multipli Buy/ Short,
posizione di copertura. Dove posso sviluppare questi snippet nel CodeEditor?

Vedo che possiamo creare una nuova "Azione ordine" o è una nuova "Gestione denaro"?

Dove posso sviluppare una gestione del commercio con posizioni multiple?

Marco - SQ
è possibile aprire ordini multipli utilizzando Invio a mercato/Stop/Limite. Non è possibile farlo nelle strategie standard, ma quando si crea la logica della strategia è possibile farlo nell'editor di AlgoWizard.
Creare uno snippet nell'editor di codice non è così semplice.

EmmanuelE
L'ho visto in algowizard ma non nell'editor di codice.

Marco - SQ
Sì, è possibile creare un nuovo snippet per l'azione ordine, ma è necessario aggiungere anche il modo in cui tradurlo in codice MT4/5 o EasyLanguage, a seconda di quale si utilizza.
CodeEditor è per lo sviluppo di blocchi di trading, non ho capito bene cosa vuoi realizzare. Dovrebbe essere facile in AlgoWizard aggiungendo altri blocchi EnterAtXXX.

EmmanuelE
Abbiamo un esempio di snippet di azione per un nuovo ordine?
come aggiungerlo al traduttore in una lingua semplice?

Marco - SQ
è possibile esaminare EnterAtMarket e nell'Editor di codice è presente un codice sorgente per ogni blocco costruttivo - pacchetto SQ.Blocks.Order.Open

Se si guarda all'esempio dell'aggiunta di un indicatore, il principio è lo stesso: https://strategyquant.com/doc/programming-for-sq/adding-envelopes-indicator-step-by-step/#adding-pseudo-code-template-for-a-new-block
è una guida passo passo su come aggiungere un nuovo blocco di indicatori a SQ.
tutti i modelli per tutti i blocchi di costruzione sono definiti in Freemarker La lingua della sezione del Codice

EmmanuelE
Ad esempio, vorrei poter aggiungere una posizione di copertura, quando SQX cerca le strategie (non in algowizard).

o più
Ho sviluppato molteplici strategie di gestione del commercio. I
Vorrei aggiungerli in SQX
nell'editor di codice

Marco - SQ
in genere si può procedere in due modi:
1. creare snippet personalizzati - indicatori, azioni d'ordine - che si occupino di questo aspetto, ma è piuttosto complesso
2. creare il proprio modello di strategia - SQ può quindi generare strategie basate sul proprio modello.
https://strategyquant.com/doc/strategyquant/strategy-templates/

EmmanuelE
Sono disposto a sviluppare snippet doganali.

Marco - SQ
Tutti i blocchi predefiniti di SQ hanno il loro codice completo negli Snippet dell'Editor del codice.

EmmanuelE
Sto studiando ciascuno di essi

EmmanuelE
Se creo un modello in un algowizard con posizione multipla, non mi permette di creare una strategia in SQX con strategie di indicatori casuali.
l'unica soluzione per codificare è l'editor di codice

Sono disposto a provare il templating per iniziare

Se creo un modello in algowizard con posizioni multiple, non mi permette di creare una strategia in SQX con strategie a blocchi casuali, ma solo con l'indicatore selezionato in algowizard.

l'unica soluzione per codificare è l'editor di codice

Marchio
Non vedo perché non dovrebbe funzionare con il template, credo che sia possibile.

 

 

Poker1
Salve Come posso importare gli indicatori da tradestation (easylanguage) a SQ.
è necessario un codice aggiuntivo (o posso copiare e incollare da TS?

Marco - SQ
Mi dispiace, ma non è così semplice. TS utilizza EasyLangiuage e SQ utilizza Java. Quindi ogni indicatore che si vuole trasferire deve essere implementato in SQ.
potete farlo da soli, oppure potete chiedere/ordinare questo tipo di servizio a qualcuno, magari a clonex.

Poker1
Ok. Ho un paio di indicatori che vorrei ricevere assistenza.
Se funziona per Clonex?

Marco - SQ
è possibile chiedere a Clonex:
Contattare il consulente Ivan Hudec StrategyQuantX
Compilate questo modulo.

 

 

oliverhowton
il post https://strategyquant.com/doc/programming-for-sq/example-per-databank-custom-analysis/ questa funzione sostituisce le funzioni in quant analyzer. ho provato a salvare un particolare run da un test walk forward matix in un file csv e importarlo in quant analyzer ma non è possibile, quindi sono un po' confuso sui benefici di questa funzione? grazie

Marco - SQ
Oliver, questo esempio è per StrategyQuant, non funzionerebbe in QuantAnalyzer. Non ho programmato per QA per un po' di tempo, ma dovresti essere in grado di fare qualcosa di simile con Scripter in QA - selezionare le strategie nella banca dati (o caricarle dal disco) e poi fare qualcosa su di esse.
Cosa volete fare esattamente?

oliverhowton
Ho trovato una corsa stabile/impostazioni di parametri in un walkforward e quindi la curva di equità unica che voglio importare in quant analyzer, ma il file csv quando si tenta di importare in QA non funziona..... qualche idea su come posso raggiungere questo obiettivo? Grazie.

Marchio
Ok, ora capisco. il problema è che QA carica solo il risultato principale dalla strategia, non i risultati WF.
Penso che ci sia una soluzione, ma non semplice.
In SQ è possibile accedere all'elenco delle operazioni per un determinato risultato WF ed esportare le operazioni in un file CSV.
in QA è possibile caricare questo elenco di compravendite. L'unica cosa da fare è specificare un formato personalizzato: https://strategyquant.com/doc/quantanalyzer/formats-supported-in-quantanalyzer/#format-specification
ma è necessario farlo solo una volta

Ho già aggiunto il formato personalizzato nel commento al tuo compito: https://roadmap.strategyquant.com/tasks/sq4_8403
Il formato aggiunto è:
Formato.4.SaltaRiga=1
Formato.4.Separatore=;
Format.4.DateFormat=yy.MM.dd HH:mm:ss
Format.4.LineFormat=Non usato, Simbolo, Azione, Ora di apertura, Prezzo di apertura, Dimensione, Ora di chiusura, Prezzo di chiusura, PL, Non usato, Non usato, Non usato, Non usato, Non usato, Non usato, Commento

beetrader
Guardando il tuo file di risultati penso che sia meglio ottenere le impostazioni ottimali che hai trovato e rieseguire la strategia in AW, salvare il file con un nuovo nome e poi importarlo in QA. In questo modo non otterrete le altre informazioni perché QA tratterà i vostri risultati come un portafoglio e potrete facilmente vedere o analizzare i vostri risultati che ho contrassegnato con le frecce nel grafico.

oliverhowton
Grazie. darò un'altra occhiata. sì, il problema è che ho intenzione di riottimizzare le mie strategie e il wfm consiglia di utilizzare determinate impostazioni in futuro per le impostazioni dei dati futuri che ho intenzione di utilizzare. questa curva azionaria che è stata ottimizzata in successione ho intenzione di confrontarla con altre in modo da poter costruire un portafoglio. e quindi non è possibile costruirla in modo appropriato. l'unico modo in cui posso lavorare è quello di replicare le impostazioni sul periodo di tempo del wfm e passare attraverso ogni periodo con le impostazioni e combinare in un portafoglio per ottenere il vero back test, ma questo sembra un sacco di lavoro per una sola strategia.

1 Commento
Vecchi
Più recenti Le più votate
Emmanuel
27. 11. 2021 4:43 pm

è utile rileggere la risposta

Continua a leggere