Negli ultimi mesi, il server di condivisione e Strategy Quant X sono stati aggiornati con nuovi snippet, che consentono di valutare la robustezza delle strategie. Definiamo la "robustezza" come la capacità delle strategie di preservare i propri attributi qualitativi nel tempo.
Abbiamo incluso tre nuovi test Monte Carlo e un frammento di Money Management. Ora forniremo una descrizione concisa di ciascuno di essi e del modo in cui possono aiutare a espandere con successo la curva di equity delle vostre strategie, consentendovi così di percorrere con successo la strada del trader algoritmico.
Abbiamo aggiunto i seguenti nuovi snippet:
- Monte Carlo - Randomizzazione modificata dei parametri della strategia
- Monte Carlo - Randomizzare lo SWAP di un intero backtest
- Monte Carlo - Randomizzare lo SWAP di ogni compravendita
- Dimensionamento proporzionale fisso della posizione
- Nuovi blocchi personalizzati basati sulla logica Is rising/ Is falling
Questo articolo del blog spiega e dettaglia questi snippet e come utilizzarli.
Monte Carlo - Parametri di strategia randomizzati personalizzabili
Si tratta di una versione modificata Randomizzare il parametro Strategia test. Per il test predefinito, i parametri che vengono randomizzati sono predeterminati. In pratica, le opzioni di trading sono randomizzate, mentre i turni non lo sono. Questa impostazione, a mio avviso, impedisce di valutare le strategie di partenza in modo così dettagliato come sarebbe necessario.

È possibile vedere l'impostazione dello snippet nell'esempio precedente.
Monte Carlo Modified Randomize Strategy parameters è uno snippet parametrizzabile che consente di randomizzare i parametri utilizzati nelle strategie. È possibile specificare cosa si desidera randomizzare.
- Periodi
- Turno
- Costanti
- Altri parametri
- Uscita Usato
- Uscita Non utilizzato
- Booleano
- Opzioni di trading
Questo test migliora in modo significativo la capacità di testare le strategie e i risultati. Il mio flusso di lavoro tipico prevede diverse fasi per l'utilizzo di questi test.
- Randomizzo i periodi degli indicatori.
- Randomizzo le uscite utilizzate - stop loss e obiettivi di profitto.
- Randomizzo le costanti.
- ...
La maggior parte delle strategie include un indicatore con un parametro di tipo Periodo (ad esempio, la media mobile ha un periodo di 20). Questo è il primo in cui determino se la strategia non è sovraottimizzata a livello di Periodo. Poi randomizzo i parametri di un tipo: Uscita utilizzata (stop loss e obiettivi di profitto). Nel caso degli spostamenti, se state testando il parametro di tipo Shift, utilizzate valori di variazione massima di 100 o superiori. Una variazione massima di 100 o più indica che lo spostamento può muoversi verso il basso o verso l'alto di 100% o più (da 1 a 2).
È inoltre possibile impostare la simmetria dei parametri (gli stessi parametri si applicano sia alle operazioni lunghe che a quelle corte). Per impostazione predefinita, questo parametro è impostato su Vero.
Monte Carlo Randomize SWAP di un intero backtest
Lo SWAP è la commissione di interesse o il credito che viene applicato al conto di un trader quando mantiene una posizione overnight nel forex o nel trading di CFD. Questa commissione è determinata dal differenziale del tasso di interesse tra le due valute di una coppia forex o dal costo di mantenimento di una posizione in CFD. Può essere positiva (un credito) o negativa (un debito) a seconda della direzione dell'operazione e del differenziale del tasso di interesse.
Se applichiamo questo test Monte Carlo, ogni backtest conterrà valori di swap generati casualmente all'interno dell'intervallo [-Range,Range]. In poche parole, eseguendo 500 (o un numero diverso) backtest con swap generati casualmente, è possibile acquisire una prospettiva di analisi Monte Carlo sull'alterazione degli swap.

In questo particolare esempio, abbiamo eseguito 100 simulazioni con SWAP randomizzato per ogni operazione.
Questo parametro nello snippet è soggetto a randomizzazione:
- Intervallo: l'intervallo all'interno del quale viene selezionato lo swap.
Quando si seleziona Intervallo = 20, viene generato un numero casuale compreso nell'intervallo tra -20 e 20. Il secondo numero casuale sarà negativo se il primo è positivo. Il secondo numero casuale sarà negativo se il primo è positivo. In questo modo si garantisce la possibilità di specificare in modo coerente uno spread sia positivo che negativo.
I seguenti parametri sono fissi e non soggetti a randomizzazione:
- Tipo di swap - Metodo di calcolo dello swap (punti, denaro, percentuali)
- Tripple Swap Il giorno in cui viene applicato un triplo swap.
- Ora in cui viene conteggiato lo swap
È possibile modificare ciascuno dei parametri precedentemente menzionati.
Monte Carlo Randomizza lo SWAP di ogni operazione

In questo particolare esempio, abbiamo eseguito 100 simulazioni con SWAP randomizzato per ogni operazione..
Questo test differisce dal precedente in quanto randomizza ogni operazione nel backtest corrente. L'operazione iniziale può comportare uno swap positivo lungo e uno negativo corto, mentre le operazioni successive possono avere combinazioni di swap completamente diverse. Pertanto, questo test implementa uno swap casuale per ogni trade. Se il numero di simulazioni Monte Varlo è impostato su 500, ci saranno 500 backtest esistenti, ognuno dei quali avrà uno swap unico.
La performance della strategia in presenza di variazioni dei tassi di interesse che influenzano la dimensione degli swap dovrebbe essere simulata da entrambi i test.
Dimensionamento proporzionale fisso della posizione.
Il dimensionamento fisso proporzionale delle posizioni è uno snippet di money management che consente di collegare la dimensione fissa dei contratti di lotto con una proporzione specifica del saldo. Ciò consente un adattamento più efficace all'aumento o alla diminuzione del saldo durante i backtest.

L'esempio precedente illustra l'aumento della curva equity/bilancio e il numero crescente di lotti scambiati in ogni operazione.
Esempio di dimensionamento fisso 1TP9proporzionale nei futures
La strategia con dimensionamento proporzionale Fixed Money negozia un microcontratto Nasdaq per ogni saldo di 2000. Se il saldo è di 4000, la strategia negozierà due microcontratti.
Esempio di dimensionamento fisso Pro proporzionale nel Forex
Ho un saldo di 2000 e vorrei negoziare ogni 500 0,01 lotti. In questo caso, negozierò 0,04 lotti e avrò tra $2000 e $2500 nel mio conto. Se il mio saldo raggiunge 2501, negozierò 0,05 lotti.
Parametri
- Dimensioni dell'ordine per per proporzione di equilibrio
- 1TP9Proporzione del saldo
- Dimensione minima dell'ordine
La gestione del denaro è implementata per le piattaforme Metatrader 4, Metatrader 5, Tradestation e Multicharts.
Sta salendo/cadendo Blocchi personalizzati
I blocchi personalizzati sono essenziali per ottimizzare la flessibilità delle strategie di trading algoritmico in StrategyQuant X. Essi consentono agli utenti di stabilire la propria logica e le proprie regole di trading in aggiunta al set standard di indicatori o azioni disponibili sulla piattaforma.
I blocchi personalizzati possono essere utilizzati per generare condizioni, segnali o indicatori unici adatti a particolari strategie di trading. Ad esempio, è possibile creare un blocco personalizzato che determini se l'indice di forza relativa (RSI) rimane al di sopra di una soglia predeterminata per una quantità specifica di barre. In questo modo gli utenti hanno la possibilità di regolare il modo in cui le loro strategie rispondono a specifiche condizioni di mercato nel corso del tempo.
Anche la logica avanzata, come il rilevamento di falsi breakout, movimenti di prezzo consecutivi o condizioni personalizzate che comportano confronti multipli, può essere incorporata in blocchi personalizzati. Questi blocchi possono essere configurati nell'Algo Wizard o utilizzati direttamente nel Builder di StrategyQuant o nel modello di strategia.
La logica del blocco personalizzato isRising/isFalling ha consentito la possibilità di personalizzazione. Questi sono parametrizzati in modo più preciso rispetto a quelli di default -> È possibile impostare/ottimizzare la durata dell'aumento o della diminuzione di più di 2 barre.

In questo esempio possiamo vedere che il blocco personalizzato Is Rising BarRange può essere ottimizzato da 2 a 24 barre.
In totale ci sono 54 nuovi blocchi personalizzati.
È possibile scaricare tutti gli snippet in codebase qui.
Questo è incredibile, il Montecarlo in dettaglio è sempre necessario!!!