Come creare blocchi, gruppi e modelli StrategyQuant con l'intelligenza artificiale

Una strategia StrategyQuant non viene mai generata nella sua interezza. La piattaforma la assembla a partire dagli elementi forniti dall’utente, quindi analizza le combinazioni alla ricerca di quella che funziona. Questi elementi si impilano in un ordine prestabilito — e ho creato una skill di intelligenza artificiale per ogni livello della pila, quattro in totale. Insieme costituiscono il SQX Authoring Toolkit (il plugin sqx-lab). Descrivi la parte che ti serve in un linguaggio semplice; lo skill corrispondente genera un artefatto reale e pronto per l'importazione, verificato in base alla tua installazione. Questa è una guida pratica su cosa fanno i quattro skill e su come utilizzarli per la creazione.

Perché è importante proprio adesso

Siamo giunti a un momento singolare. Ormai qualsiasi intelligenza artificiale è in grado di produrre qualcosa che si legge come una strategia di trading: un paragrafo convincente, una regola plausibile, un blocco di codice che sembra corretto. Quasi nulla di tutto ciò regge al confronto con un motore reale. Quel divario — tra un risultato che sembra corretto e uno che funziona davvero — è il nocciolo del problema, ed è proprio quello che questo flusso di lavoro è stato concepito per colmare.

Qui nulla si basa sulla parola dell’IA. Ogni artefatto è creato in modo da essere accettato dallo stesso StrategyQuant, e il flusso di lavoro si conclude dove dovrebbe: in un vero e proprio AlgoWizard Build su dati reali. È la piattaforma — con il suo parser, il suo builder e il suo motore di backtesting — ad avere l’ultima parola, non il modello. Una strategia o viene importata, costruita e sottoposta a backtesting, oppure no; non c’è spazio per una risposta apparentemente plausibile che poi fallisca silenziosamente.

È proprio questo il bello di farlo oggi. La produzione è diventata economica; la verifica è tutto. Un'intelligenza artificiale in grado di generare mille strategie è un peso. Quella i cui risultati sono verificabili da un vero motore di backtesting è uno strumento di cui ci si può davvero fidare — ed è per questo che, nel mio processo decisionale, il passo successivo è un oracolo che carica ogni artefatto in un StrategyQuant attivo e permette al motore di confermarlo prima ancora che io possa fare affidamento su di esso.

L'idea: quattro livelli, quattro competenze

Tutto in StrategyQuant è costituito da quattro tipi di parti, ciascuna delle quali è composta da quella che la precede:

  • blocco personalizzato è una singola regola di trading — un segnale, un filtro o un livello di prezzo;
  • gruppo casuale raggruppa blocchi o atomi in un menu da cui il builder preleva una voce;
  • modello di strategia organizza questi gruppi in una struttura strategica applicabile;
  • progetto esegue uno o più modelli come attività di compilazione su dati reali.

La creazione manuale di ogni livello è un lavoro complesso, che richiede numerosi clic e presuppone una conoscenza approfondita della piattaforma. Ogni skill automatizza un livello e, poiché si combinano nello stesso ordine, un’unica idea può passare da una regola fino a un progetto di build funzionante senza che tu debba scrivere una sola riga di XML.

Livello Abilità Cosa scrive
Blocco sqx-custom-block Una singola regola di trading: un segnale, un filtro o un livello di prezzo.
Gruppo sqx-gruppo-casuale Un insieme di blocchi o atomi da cui il costruttore preleva un elemento.
Modello modello-di-strategia-sqx Una strategia .sqx implementabile che collega i gruppi in una figura.
Project progetto-strategia-sqx Un file project.cfx eseguibile che crea modelli sulla base di dati reali.

C'è un principio alla base di tutte queste competenze, ed è proprio questo che le rende affidabili: ogni competenza è derivato dall'installazione. Prima di generare qualsiasi cosa, analizza la tua installazione di StrategyQuant e crea un catalogo di tutto ciò che la tua build è in grado di fare: gli indicatori nativi, i blocchi personalizzati esportati e persino gli indicatori che hai codificato solo nell’editor. Successivamente, genera il codice basandosi esclusivamente su quel catalogo. Non può attingere a un indicatore che non possiedi, quindi nulla di ciò che produce è un “fantasma” destinato a fallire durante l’importazione.

Il flusso di lavoro: sempre gli stessi sei passaggi

Tutte e quattro le competenze seguono un unico flusso di lavoro ben strutturato. Una volta appreso, è applicabile sia ai blocchi che ai gruppi, ai modelli e ai progetti.

  1. Indicalo verso la tua installazione (una volta sola). L'abilità analizza la cartella StrategyQuant — il file di configurazione, i blocchi personalizzati esportati e persino i frammenti di codice Java — e crea un catalogo che descrive esattamente le funzionalità della tua build, compresi i tuoi indicatori personalizzati. Tutto ciò che genera proviene da quel catalogo.
  2. Descrivi ciò che desideri, in un linguaggio semplice e chiaro. “Posizione lunga quando l’RSI supera quota 30.” “Una raccolta dei miei segnali di breakout.” “Breakout solo nella direzione del trend.” “Un’analisi dell’EURUSD su H1 nel periodo 2015–2020.” Non c’è alcuna sintassi da imparare.
  3. Esegue il backup prima di scrivere qualsiasi cosa. Il documento espone innanzitutto il piano in un linguaggio chiaro — il nome, la struttura, gli indicatori e i parametri esatti — affinché tu possa approvarlo o modificarlo. Il momento più conveniente per individuare un’idea errata è prima che venga creato qualsiasi file XML.
  4. Confronta ogni articolo con il tuo catalogo. Se un indicatore o un blocco da te menzionato non è presente nella tua build, il sistema lo segnala e propone un equivalente che invece è presente — mai un elemento fantasma che fallisce in modo silenzioso.
  5. Genera l'artefatto e ne verifica la validità. Il codice XML deve superare il validatore prima ancora che tu possa vederlo. I blocchi personalizzati vengono sottoposti a un secondo controllo di “igiene dei bordi” che assegna a ciascun blocco un voto da A a D e segnala i “killer silenziosi” che un controllo sintattico non è in grado di individuare: anticipazione sulla barra di sviluppo, indicatori di ridisegno e soglie che una regola non potrebbe mai effettivamente raggiungere.
  6. Si importa in AlgoWizard. I blocchi e i gruppi vengono importati direttamente. I modelli e i progetti vanno importati e poi Costruire — e la Build è la prova definitiva che la strategia è reale, non solo ben strutturata.

Abilità 1 — sqx-custom-block: la regola di trading

Un blocco personalizzato è l'unità fondamentale di una strategia StrategyQuant: un singolo elemento logico riutilizzabile che si inserisce in AlgoWizard. Gli autori delle strategie creano entrambi i tipi. A Condizione Un blocco è una regola vero/falso — un segnale o un filtro. A Livello dei prezzi Il blocco restituisce un valore: uno stop, un obiettivo, una banda o un riferimento di breakout.

Tu descrivi — “Apri una posizione lunga quando l'RSI(14) supera quota 30 e una posizione corta nella direzione opposta.”

Si ottiene — un blocco "Condition" convalidato, il cui periodo RSI (2–50) e il cui livello di ipervenduto sono definiti come parametri ottimizzabili, insieme alla sua controparte "short-side", abbinata automaticamente, in formato XML pronto per l'importazione.

Come funziona

  • Legge quattro sorgenti presenti nella tua installazione, quindi individua i tuoi indicatori personalizzati — non solo quelli nativi — indipendentemente dal fatto che siano registrati in AlgoWizard, presenti in un file di esportazione o semplicemente codificati nell'editor. È proprio questo che risolve il noto problema del tipo “non ha trovato il mio indicatore”.
  • Ogni blocco rappresenta un'idea. Non aggiungerà silenziosamente un secondo indicatore di conferma a meno che non lo richiediate espressamente.
  • I criteri che distinguono una regola solida da una leggermente errata sono intrinseci: i dati OHLC vengono ricavati dall'ultimo chiuso barra (mai quella in fase di formazione), le soglie vengono confrontate con l'intervallo reale dell'indicatore e gli indicatori che si aggiornano vengono segnalati.
  • Se si desiderano idee piuttosto che una regola specifica, una modalità di ricerca propone delle opzioni, un sistema di valutazione critico elimina quelle deboli, sovradimensionate o duplicate, e solo le specifiche realmente realizzabili passano alla fase di sviluppo.

Importazione: AlgoWizard → Blocchi personalizzati → Importa.

Abilità 2 — sqx-random-group: il pool

Un gruppo casuale è un menu dal quale il builder estrae un elemento alla volta — per ogni strategia, per ogni slot. Esso sostituisce le impostazioni globali di Building-Blocks per quel singolo slot: invece di scegliere tra tutte le opzioni, il builder seleziona un elemento da un insieme da te curato. Esistono due tipi di gruppi. A Condizione raggruppa le regole booleane; a Valore i prezzi o i livelli dei gruppi. Un modello associa un gruppo a uno dei suoi "hole" tramite l'identificatore univoco del gruppo.

Tu descrivi — “raggruppare i miei blocchi di attivazione breakout in un unico pool.”

Si ottiene — un gruppo di condizioni convalidato che riesporta i blocchi di breakout per riferimento — ovvero il menu esatto da cui il builder attingerà — sotto forma di file XML pronto per l'importazione.

Come funziona

  • Ci sono due modi per formare un gruppo. Ibrido riutilizza i blocchi personalizzati esistenti per riferimento — il caso più comune. In linea crea articoli nuovi direttamente dagli elementi del catalogo.
  • Gli elementi sono semplici: una regola o un confronto ciascuno. La logica composta AND/OR va inserita all’interno di un blocco personalizzato, che poi si raggruppa — mantenendo i gruppi ordinati e la ricerca del builder ben definita.
  • Sei tu a decidere, per ogni elemento, quali parametri il generatore può ottimizzare e quali devono rimanere fissi.
  • Viene applicata la disciplina dei tipi: gli elementi di un gruppo “Condizione” devono essere valori booleani; quelli di un gruppo “Valore” devono essere prezzi o numeri.

Importazione: AlgoWizard → Casuale / Gruppi di blocchi → Importa.

Abilità 3 — sqx-strategy-template: la strategia

Un modello di strategia è una strategia StrategyQuant in cui alcune delle sue sottoespressioni sono lasciate come tipizzate fori che il builder compila e modifica. Questo è il livello più delicato, poiché la validità di una strategia non è garantita dalla sola struttura: le esclusioni del motore, il collegamento dei numeri magici e il protocollo delle variabili di segnale si collocano tutti al di fuori dello schema, e solo un’effettiva compilazione dimostra la correttezza di una strategia. Pertanto, la skill non scrive manualmente il codice XML della strategia. Trasferisce i gruppi da te scelti in un scheletro con compilazione confermata e varia solo la disposizione dei fori, rimanendo rigorosamente entro i confini di un territorio già collaudato.

Tu descrivi — “Rompimenti solo nella direzione del trend, con ingresso su uno stop al massimo del periodo precedente.”

Si ottiene — un modello .sqx che integra un filtro di tendenza, un trigger di breakout e un pool di prezzi di stop in una struttura collaudata, con il lato short replicato automaticamente e l'intera sequenza di uscita già predisposta.

Come funziona

  • Ogni voce è espressa come un filtro — il regime, oppure quando puoi agire — oltre a un grilletto — nel caso in cui incendi. Una fase di progettazione li abbina in modo da ottenere una vera e propria convergenza anziché una ridondanza, e definisce la tesi falsificabile alla base del concetto.
  • Genera configurazioni collaudate: entrate immediate sul mercato e con stop in sospeso, entrate basate sulla sessione, entrate su più timeframe (un filtro su un timeframe superiore applicato a un trigger sul timeframe principale), entrate strutturate in base al ruolo (regime E innesco E NON veto), e strategie a più fasi.
  • La posizione corta viene sempre replicata automaticamente e l'intera serie di livelli di uscita — stop, target, trailing, break-even, uscita dopo un certo numero di barre — è già preconfigurata; il modello decide solo quali livelli di uscita il generatore possa ottimizzare.
  • Non crea mai un gruppo. Se il gruppo di cui ha bisogno non esiste, lo crea prima utilizzando l'abilità "gruppo casuale".

Importazione: AlgoWizard → importare il file .sqx → eseguire una compilazione.

Competenza 4 — sqx-strategy-project: la compilazione

Un file di progetto contiene tutto ciò che serve per una build: il feed di dati, i simboli e la tempistica, nonché l'intero stack di uscita e accettazione. Si tratta di una quantità di dati troppo ingente per poterla rigenerare in modo sicuro, quindi questa competenza clona un progetto di cui ti fidi già e sostituisce ogni template con un'unica attività di compilazione — ciascuna con il proprio database dei risultati.

Tu descrivi — “Clona la mia base EURUSD H1 e inserisci questi tre modelli come attività, per il periodo 2015–2020.”

Si ottiene — un progetto pronto all'uso — tre attività di compilazione, ciascuna delle quali scrive nel proprio database, ereditando i dati e le impostazioni della tua base con la nuova finestra temporale applicata — distribuito nella tua installazione.

Come funziona

  • Si basa sui cloni ed è vincolato all'installazione: non compila mai manualmente un progetto. Copia un’attività donatrice byte per byte e varia solo il modello e il database di output per ciascuna attività.
  • Le impostazioni personalizzate a livello di progetto consentono di cambiare lo strumento (StrategyQuant ricalcola automaticamente i parametri economici del tick al momento del caricamento), impostare la finestra di backtest o modificare lo spread, lo slippage, la sessione e la direzione dell'operazione.
  • Verifica autonomamente ogni clone — database univoci, modelli che vengono caricati dal disco — prima che qualsiasi cosa interferisca con la tua installazione.
  • C'è una regola fondamentale: effettuare il deploy con StrategyQuant chiuso, perché alla chiusura riscrive il progetto; quindi aprilo ed esegui la compilazione.

Utilizzo: Eseguire il deploy nella cartella di installazione → aprire il progetto → eseguire una compilazione.

Lo stack in azione

Poiché le competenze si integrano tra loro, una singola idea può attraversare tutti e quattro i livelli in un’unica fase, con ogni risultato che alimenta quello successivo:

  1. Blocco. Autore “L’RSI(14) supera quota 30” in un blocco Condition di ritorno alla media, con il suo mirror breve.
  2. Gruppo. Raggruppa quel blocco con gli altri trigger di reversione in un gruppo di condizioni che il builder possa esaminare.
  3. Modello. Collegare quel gruppo come trigger, a valle di un filtro a regime variabile, in un file .sqx realizzabile con una tesi.
  4. Project. Clona la tua base EURUSD, inserisci il modello come attività, esegui la compilazione e leggi il database.

Ogni fase viene verificata prima di passare a quella successiva, e ogni atom è effettivamente presente nella tua installazione — quindi l'intera catena viene importata e compilata.

Il mio prossimo progetto

Le quattro funzionalità sopra indicate sono quelle che ho già rilasciato: il livello di authoring. Su di esse si basano due elementi che sto sviluppando attivamente, e tengo a precisare che nessuno dei due è ancora stato rilasciato.

L'oracolo — verifica su una piattaforma attiva

Le regole di validazione controllano tutto ciò che viene importato, ma nel mio lavoro vado oltre. Carico ogni artefatto in un’istanza di StrategyQuant in esecuzione tramite la sua interfaccia REST, in modo che sia la piattaforma stessa a confermare l’autenticità dell’artefatto prima che io ne accetti l’affidabilità — un CARICA PASS da StrategyQuant vale più di qualsiasi controllo autonomo. Sto integrando questo oracolo in un plugin strategico che gli autori e verifica le strategie nella loro interezza, dall’inizio alla fine. Al momento è in fase di test in ambiente privato; non è ancora possibile scaricarlo.

La fabbrica di modelli — giudicare un’intera popolazione

Sopra c'è una fabbrica. Prende un'ipotesi di mercato, affida a questi esperti la creazione del modello e dei relativi gruppi, utilizza l'oracolo per verificare che vengano caricati, quindi genera e valuta un intero popolazione di strategie basate su statistiche fuori campione — il rapporto di Sharpe deflazionato e la Probabilità dell'overfitting nei backtest — e formula un verdetto: approvare, rivedere o scartare. È in fase di sviluppo attivo.

In breve

  • Quattro competenze, una per ogni livello di una strategia StrategyQuant: blocco, gruppo, modello, progetto — fornite insieme come il SQX Authoring Toolkit (il plugin sqx-lab).
  • Un unico flusso di lavoro per tutti: indica la tua installazione, descrivila in un linguaggio semplice, approva le specifiche, attendi la convalida, importa.
  • Tutto proviene dalla tua build, quindi viene sempre importato — e non c'è nulla di fantasma.
  • L'oracolo di verifica e la "fabbrica" di valutazione della popolazione sono ciò su cui sto lavorando ora.

Le quattro competenze vengono fornite insieme come SQX Authoring Toolkit — il plugin sqx-lab. Se volete utilizzarli nella vostra installazione di StrategyQuant, oppure se siete curiosi di sapere quale direzione prenderanno Oracle e Factory, contattaci.

clonex / Ivan Hudec

Ivan Hudec — “Clonex” sul forum

Faccio trading da 15 anni e utilizzo StrategyQuant X dal 2014. Attualmente mi occupo di tre cose: sviluppo e metto alla prova strategie automatizzate, amplio le funzionalità di SQX con indicatori personalizzati, snippet e strumenti Python per l’apprendimento automatico e la ricerca quantitativa, e aiuto altri trader a raggiungere i loro obiettivi più rapidamente, evitando loro gli anni di costosi errori che io stesso ho commesso lungo il percorso.
La maggior parte delle strategie di trading al dettaglio sembra ottima nei backtest, ma fallisce quando viene applicata dal vivo. Il mio lavoro è esattamente l’opposto: strategie oneste, validate e sufficientemente solide da poter essere utilizzate con denaro reale. Scrivo di questo processo — gli aspetti positivi, quelli negativi e il fenomeno dell’overfitting di cui nessuno parla — sul mio sito, algotrading.space.
Se vuoi approfondire i temi della validazione, dello sviluppo personalizzato di SQX o della creazione di un vero vantaggio competitivo grazie a dati e codice, è proprio lì che condivido tutto ciò che so.  www.algotrading.space

0 Commenti
Vecchi
Più recenti Le più votate

Continua a leggere