Documentazione

Applicazioni

Ultimo aggiornamento il 22. 4. 2020 da Mark Fric

Gruppi casuali

Cosa sono i gruppi casuali?

I gruppi casuali consentono di specificare il gruppo di blocchi da utilizzare per la generazione di una strategia.

Comprensione Gruppi casuali richiede comprensione Modelli di strategia prima. Se non sapete cosa sono i modelli di strategia, consultate prima questo articolo.

La scelta dei blocchi di costruzione in StrategyQuant è globale: significa che viene utilizzata per tutte le condizioni di entrata e uscita.

E se si volesse specificare in modo più preciso la selezione di blocchi da scegliere per ogni Condizione casuale segnaposto?

Qui è dove Gruppi casuali entrano in gioco. Quando si fa clic su RandomCondition nel modello di strategia di AlgoWizard, si apre la sua configurazione:

Scelta casuale del gruppo

Si può notare che per impostazione predefinita non viene scelto alcun gruppo casuale. Ciò significa che StrategyQuant deve generare le condizioni dalla selezione dei blocchi globali.

È possibile personalizzarlo e dire a SQ X di generare condizioni solo dal proprio gruppo predefinito. Prima di fare ciò, è necessario creare alcuni gruppi.

 

Come creare e gestire i gruppi di blocchi casuali?

È possibile farlo in uno speciale Personalizzare schermo in AlgoWizard. Fare clic su Personalizzare sulla barra degli strumenti superiore:

Si accede così all'editor dei gruppi di blocchi casuali, dove è possibile creare e modificare i propri gruppi casuali:

Per impostazione predefinita, StrategyQuant non ha definito alcun gruppo casuale; sta a voi creare dei gruppi se volete utilizzarli.

È semplice: cliccate su Aggiungi gruppo e inserire il nome e il tipo di gruppo.

Il tipo determina il tipo di blocchi che il gruppo può contenere e dove può essere utilizzato:

  • Le condizioni - Il gruppo può essere utilizzato nel segnaposto RandomCondition, per creare condizioni per i segnali di trading.
  • Valori - Il gruppo può essere utilizzato nel segnaposto RandomValue per la creazione di valori numerici o di prezzo, ad esempio per il prezzo di ingresso Stop/Limit.
  • Azioni - può essere utilizzato nel segnaposto RandomAction per creare l'ordine di entrata e altre azioni.

Abbiamo creato un nuovo gruppo Gruppo 1, ma al momento è vuoto:

Per poterlo utilizzare, è necessario aggiungere alcuni blocchi a questo gruppo. È possibile utilizzare Aggiungi blocco o Copia e incolla alcuni blocchi esistenti dall'editor di AlgoWizard. La scelta dei blocchi funziona come nell'editor:

Basta trovare e scegliere i segnali o combinare indicatori, valori di prezzo e confronti per creare il proprio set di condizioni.

Possiamo creare un gruppo come questo:

Il nostro Gruppo 1 contiene solo 4 condizioni possibili: due per Aroon e due per l'indicatore StdDev.

Non dimenticate di fare clic su Risparmiare per salvare questo gruppo.

 

Utilizzo di gruppi casuali nel modello di strategia

Ora possiamo tornare al nostro modello di strategia. Aggiungeremo un'altra condizione casuale che utilizzerà il gruppo appena creato. Fare clic su Aggiungi un'altra condizione:

E poi trovare Condizione casuale e configurarlo in questo modo:

 

Lo chiameremo CasualeDalGruppo1 e sceglieremo Gruppo 1 per un gruppo casuale.

Se avete fatto bene, dovrebbe apparire come nell'immagine qui sotto:

Non è necessario creare un nuovo file Condizione casuale - avremmo potuto semplicemente modificare quello esistente, ma questo è solo un esempio. Con la configurazione attuale abbiamo due Condizione casuale che saranno generati in modo casuale in StrategyQuant:

  • Condizione casuale(CondizioneCasualeLungo) - non ha un gruppo specificato, quindi sarà generato dai blocchi configurati in Impostazioni complete -> Blocchi di costruzione. Inoltre, può utilizzare e/o operatori e può contenere più di una condizione, a seconda delle impostazioni in Impostazioni complete -> Cosa costruire -> # di Condizioni, Periodi
  • Condizione casuale(CasualeDalGruppo1) - utilizza il gruppo 1, quindi sarà generato dal gruppo appena definito. SQ sceglierà in modo casuale solo tra questi 4 blocchi:
    • Aroon(14).Up incrocia sopra Aroon Down
    • Aroon(14).Down incrocia sotto Aroon Up
    • StdDev(14) cambia direzione verso il basso
    • StdDev(14) cambia direzione verso l'alto

Questi blocchi non devono essere selezionati in Impostazioni complete -> Blocchi di costruzione e verrà generata una sola condizione.

 

Vogliamo che il segnale di entrata short sia simmetrico a quello di entrata long, quindi dobbiamo aggiungere anche una NegatedCondition, in modo che il modello risultante sia simile a questo:

Quando utilizzeremo questo modello per la generazione di strategie in SQ X, genererà le condizioni per i segnali di entrata

 

Generazione di parametri in gruppi casuali

Se si utilizza il gruppo Random nel modello di strategia, il suo contenuto ha la precedenza sulle impostazioni dei blocchi Building. Se il segnaposto dato deve essere generato usando il gruppo casuale, allora sarà generato usando i blocchi di quel gruppo e questi blocchi NON DEVONO essere selezionati in Impostazioni del costruttore -> Blocchi di costruzione.

Inoltre, i blocchi verranno generati nel modo in cui sono stati specificati nel gruppo casuale. Se si utilizzano valori di parametri fissi nei blocchi, verranno utilizzati solo questi valori fissi.

Un esempio di gruppo casuale Il mio gruppo:

Esempio di gruppo casuale

 

Questo gruppo contiene due blocchi:

  • CCI > 0
  • RSI in aumento

Si può notare che il CCI è definito con un periodo fisso di 18, mentre l'RSI utilizza un periodo definito in modo casuale. Ciò significa che quando si generano strategie utilizzando questo gruppo:

  • ogni volta che SQ sceglie di utilizzare CCI > 0 utilizzerà sempre il periodo fisso 18, quindi la condizione sarà sempre: CCI(18) > 0
  • ogni volta che SQ sceglie di utilizzare RSI in aumento genererà il periodo RSI in modo casuale utilizzando la vostra configurazione, in modo da generare condizioni quali: RSI(20) è in aumento, RSI(50) è in aumento, ecc.

Nota: impostare sempre i parametri dei blocchi nei gruppi Random su random se si desidera che vengano generati in modo casuale.

 

Limitazione dell'evoluzione genetica (controllo a blocchi)

Una limitazione chiave dell'algoritmo genetico è che Non è possibile garantire un controllo rigoroso sull'utilizzo dei blocchi al di là della popolazione iniziale..

Mentre i Gruppi casuali e i Blocchi personalizzati definiscono quali componenti sono consentiti durante il generazione della strategia iniziale, questo vincolo è non pienamente applicate nelle generazioni successive. Con il progredire dell'evoluzione:

  • Crossover mescola parti di due strategie madri, creando potenzialmente nuove combinazioni strutturali.
  • Mutazione possono modificare o sostituire parti di una strategia in modo non deterministico.

Come risultato:

  • Le strategie delle generazioni successive possono contenere combinazioni che non sono state definite esplicitamente nella struttura del modello originale.
  • Il sistema può sembrare che introduca blocchi o configurazioni che sono stati non è inteso da un punto di vista strettamente modellistico.
  • Questo comportamento è intrinseco agli algoritmi evolutivi, in cui l'esplorazione è prioritaria rispetto all'applicazione rigorosa delle regole.

Impatto pratico

  • Riduzione del determinismo della struttura della strategia nel tempo
  • Potenziale deviazione dall'intento progettuale originale
  • Riproducibilità più difficile quando sono richiesti vincoli stringenti

Raccomandazione

Se è necessario un controllo rigoroso sui blocchi e sulla struttura consentiti in tutte le strategie generate, si consiglia di usare Generazione casuale, che non si basa su crossover o mutazione e aderisce completamente alla definizione di modello.

Questo articolo è stato utile? L'articolo è stato utile L'articolo non è stato utile

7 Commenti
Vecchi
Più recenti Le più votate
劉以撒
3. 12. 2021 12:44 pm

Manca l'ultima immagine

tomas262
Amministratore
Rispondi a  劉以撒
3. 12. 2021 20:24

Grazie, l'ho sistemato

Emmanuel
13. 4. 2022 16:59

Questo è esattamente quello che stavo cercando !!!!!!!!!!!!!!!!!!!
Questo è eccellente !!!!!!!!!!!!!
Grazie a tutti i collaboratori di SQX 🙂

Emmanuel
19. 4. 2022 7:57 pm

Questa è davvero un'idea fantastica !!!!!!!!!!!!!!!!!!

Emmanuel
19. 4. 2022 20:08 pm

Nel progetto personalizzato, esiste un'attività per caricare un gruppo di blocchi di costruzione?

Emmanuel
2. 5. 2022 9:26

Possiamo avere maggiore precisione sul formato dei blocchi? Che tipo di blocco è accettato? Quando lo uso, ricevo un errore. SQX non funziona con i miei blocchi. C'è qualche blocco non compatibile?

Emmanuel
Rispondi a  Emmanuel
3. 5. 2022 7:19 pm

il blocco Equals e not Equals dà qualche errore