Tempo di lettura stimato: 7 min

PrescienTrader include funzioni multi-timeframe che si integrano con la potente funzionalità di analisi e backtest di AmiBroker. Include anche script AFL che dimostrano come utilizzare le funzioni di analisi. Le funzioni di analisi richiedono un abbonamento a PrescientAPI Professional.

Il seguente video mostra come configurare ed eseguire un'esplorazione. Guarda il video, quindi torna a questo articolo per continuare con il tutorial.

Miniatura

Esplorazione

Quando si esegue un'esplorazione utilizzando lo script di backtesting PrescienTrader incluso, AmiBroker esegue la scansione dell'elenco di strumenti specificato e dell'intervallo di date specificato. Genera una riga per ogni combinazione di uno strumento e una data. Nell'esempio sopra, stiamo solo analizzando un singolo strumento (CHF / JPY) per l'intervallo di date dal 1 ottobre al 31 dicembre 2018.

Gli script generano le seguenti colonne di esplorazione:

  • Simbolo ticker
  • Appuntamento
  • Aperto, Alto, Basso, Chiudi, Volume, Apri interesse
  • Salvato - Questa colonna è evidenziata in giallo per qualsiasi riga utilizzando le impostazioni dei parametri salvate. Quando si salvano i parametri in PrescienTrader, i parametri vengono salvati solo per lo strumento e il periodo di tempo selezionati. Ciò consente di utilizzare le impostazioni dei parametri personalizzati per ogni strumento e ogni intervallo di tempo. Quando si esegue un'esplorazione, PrescienTrader applicherà automaticamente tutte le impostazioni dei parametri personalizzati. L'evidenziazione gialla nella colonna Salvato serve a ricordare che la riga utilizza le impostazioni salvate, non le impostazioni immesse nella finestra Parametri.
  • Pendenza PL - Indica la pendenza dell'andamento della linea Prescient. Le pendenze positive prevedono una tendenza al rialzo, mentre le pendenze negative prevedono una tendenza al ribasso.
  • Punteggio FLD - La somma dei FLD per tutti i cicli validi moltiplicata per la Forza o l'ampiezza di ciascun ciclo, a seconda dell'impostazione della Base PL. Valori positivi indicano che il mercato è in una tendenza al rialzo ciclica. Valori negativi indicano che il mercato è in una tendenza al ribasso ciclica.
  • Barra delle tendenze - Il numero di barra relativo all'interno dell'andamento previsto corrente. La prima barra di una tendenza è la barra zero.
  • Barre di tendenza - Il numero totale di barre nell'attuale tendenza prevista.
  • Trend Pct - La percentuale di completamento per l'attuale tendenza prevista. Ad esempio, se Trend Bar = 5 e Trend Bars = 10, Trend Pct sarebbe 50%. Nota che Trend Pct non raggiungerà mai 100%, perché ciò significherebbe che è iniziata una nuova tendenza. Nel punto di sovrapposizione tra la vecchia tendenza e la nuova tendenza, Trend Pct sarà 0%. Oltre alla visualizzazione numerica, questa colonna mostra anche un grafico a barre che passa dal verde al rosso man mano che la tendenza avanza.
  • Azione - Questo è il segnale, Buy / Sell / Short / Cover, per la riga corrente. I segnali generati dagli script inclusi si basano semplicemente sul Trend Slope. Quando Trend Slope è positivo, mostrerà un segnale Buy e quando Trend Slope è negativo, mostrerà un segnale Short. Questo è inteso come molto semplice esempio di come potresti iniziare a costruire un sistema di trading usando gli indicatori PrescienTrader. NON utilizzare questi segnali di esempio per il trading dal vivo, poiché molto probabilmente perderai denaro! L'idea è quella di sviluppare i propri sistemi di trading utilizzando i nostri indicatori e, eventualmente, altri indicatori, quindi testare ampiamente il sistema. Una volta che hai un sistema backtestato valido, puoi collegarlo nella colonna Azione per visualizzare i tuoi segnali di trading.

Backtesting

Per eseguire un backtest o un'ottimizzazione, iniziare caricando lo script AFL BackTesting di PrescienTrader. Ti consigliamo fare una copia della sceneggiatura, piuttosto che modificare lo script originale. Le nostre funzioni di analisi generano output per colonne di esplorazione e creano anche array e matrici AFL contenenti i risultati. Quando si esegue un backtest o un'ottimizzazione, verranno utilizzate le matrici e le matrici AFL generate, che includono quanto segue:

  • ptStaticPL
  • ptStaticPLSlope
  • ptStaticFLDScore
  • ptStaticTrendBar
  • ptStaticTrendBars
  • ptStaticTrendPct
  • ptStaticFrequencies (Matrix)
  • ptStaticSlopes (Matrix)
  • ptStaticFLDPrices (Matrix)

Se si esegue un'analisi per più intervalli di tempo, le funzioni creeranno un insieme separato di matrici e matrici per ciascun intervallo di tempo. I nomi saranno gli stessi sopra, tranne per il fatto che ogni nome avrà un suffisso HTPx, dove x rappresenta l'indice del periodo di tempo più alto. Ad esempio, le matrici e le matrici per il primo periodo di tempo superiore saranno denominate, ptStaticPLHTP1, ptStaticPLSlopeHTP1, ecc ... Le matrici e le matrici per il secondo periodo di tempo superiore saranno denominate ptStaticPLHTP2, ptStaticPLSlopeHTP2, ecc ...

Il backtester AmiBroker è estremamente potente. Supporta backtesting di portfolio, test walk-forward, simulazioni Monte Carlo, test di più intervalli di tempo, piramide e ridimensionamento, valute multiple e altro ancora. Tutta questa funzionalità e potenza è a tua disposizione per il backtest e l'output di PrescienTrader. È oltre lo scopo di questo articolo discutere i dettagli del backtesting in AmiBroker. Per questo, è meglio leggere la documentazione di AmiBroker.

Parametri e variabili dei parametri

Durante l'esecuzione di un'analisi, PrescienTrader utilizzerà i valori dei parametri specificati nella finestra Parametri. Tuttavia, se in precedenza hai salvato le impostazioni dello strumento per il mercato e il periodo di tempo attuali, il file le impostazioni salvate avranno la precedenza su quelle visualizzate nella finestra Parametri. Ciò consente di eseguire un'analisi del portafoglio utilizzando valori di parametro diversi per ogni strumento nel portafoglio. Quando si visualizza la finestra Parametri, verranno visualizzate le ultime impostazioni immesse, che potrebbero non essere necessariamente le impostazioni salvate. Clicca il Resetta tutto per visualizzare le impostazioni dello strumento salvate.

Inoltre, è possibile salvare le impostazioni predefinite. A differenza delle impostazioni dello strumento salvate, le impostazioni predefinite salvate lo fanno NON sovrascrivere le impostazioni visualizzate. Ciò ti consente di sfruttare il fatto che AmiBroker ricorda automaticamente le ultime impostazioni inserite, quindi se stai testando più volte una determinata serie di impostazioni, non devi reinserirle ogni volta. Tuttavia, è sempre possibile tornare alle impostazioni predefinite salvate facendo clic su Resetta tutto pulsante. Tieni presente che le impostazioni dello strumento salvate hanno la precedenza sulle impostazioni predefinite salvate, quindi se fai clic Resetta tutto e non mostra le impostazioni predefinite, ciò significa che hai salvato le impostazioni dello strumento per lo strumento e il lasso di tempo attualmente visualizzati.

Infine, puoi sovrascrivere la maggior parte dei parametri impostando una variabile AFL corrispondente a ciascun parametro. Le variabili disponibili includono:

  • ptPolarity (0 = positivo, 1 = negativo)
  • ptPLBasis (0 = Ampiezza, 1 = Forza)
  • ptLookbackRange
  • ptMinFrequency
  • ptMaxFrequency
  • ptHarmonicFilter
  • ptMinConfidence
  • ptBestXCycles

Ogni variabile presenta inoltre variazioni del periodo di tempo più elevate per l'analisi multi-timeframe. Per impostare una variabile del periodo di tempo superiore, aggiungere HTP1, HTP2, HTP3, ecc ... al nome della variabile. Per esempio:

  • ptMinFrequencyHTP1
  • ptMaxFrequencyHTP2
  • ptLookbackRangeHTP3
  • ptHarmonicFilterHTP2
  • ptMinConfidenceHTP1
  • ptPLBasisHTP4

Le variabili hanno sempre la precedenza sia sulle impostazioni della finestra dei parametri sia su tutte le impostazioni salvate. Se si imposta una variabile di parametro in AFL, il parametro corrispondente scomparirà dalla finestra Parametri. È necessario impostare tutte le variabili dei parametri PRIOR per chiamare il PrescientAnalysis o PrescientAnalysisPrepare funzioni.

Analisi a thread singolo e multi-thread

PrescienTrader supporta analisi sia a thread singolo che a thread multipli. La funzione single thread richiede solo una singola riga di codice, quindi è utile per eseguire esplorazioni rapide o semplici backtest. Il rovescio della medaglia è che l'analisi viene eseguita in un singolo thread, quindi può analizzare solo una riga alla volta. Tuttavia, se l'analisi comprende solo poche centinaia di righe, la differenza di tempo sarebbe trascurabile. In questo scenario, occorrerebbe più tempo per scrivere il codice aggiuntivo per un'analisi multi-thread rispetto al tempo risparmiato eseguendolo.

Script PrescienTrader Backtester - Sezione a thread singolo

Viene chiamato lo script di analisi di esempio PrescienTrader Backtester. Se visualizzi questo script, vedrai che contiene una sezione a thread singolo e una sezione a thread multipli, che puoi alternare usando un'impostazione di parametro. La sezione di analisi del thread singolo contiene una singola riga di codice:

PTBacktest ();

Il PTBacktest La funzione non accetta parametri poiché si configurano tutti i parametri nella finestra Parametri. Quando viene eseguito, crea una richiesta API, invia la richiesta a PrescientAPI, analizza la risposta, genera i risultati nelle colonne di esplorazione e genera le matrici AFL sopra descritte.

Per eseguire un'analisi multi-timeframe, è sufficiente chiamare la funzione PrescientAnalysis più volte. Ad esempio, se si desidera analizzare il periodo di tempo di base e due periodi di tempo superiori, utilizzare il codice seguente:

PTBacktest (); PTBacktest (); PTBacktest ();

Ogni istanza della funzione crea un altro intervallo di tempo nella finestra Parametri, quindi nell'esempio sopra, la finestra Parametri conterrà le impostazioni per il periodo di tempo di base, HTP1 e HTP2. Non confondere il multi-threading con il multi-timeframe; questi sono due concetti completamente diversi. Il multi-threading si riferisce all'esecuzione di più di un'analisi alla volta, come l'analisi di un portafoglio di strumenti. Multi-timeframe si riferisce all'analisi di ogni strumento in più di un lasso di tempo. Ad esempio, è possibile analizzare i tempi giornalieri, settimanali e mensili dell'S & P 500. In questo esempio, trarrai vantaggio anche dall'esecuzione in modalità multi-thread, poiché analizzerebbe contemporaneamente tutti e tre i tempi. Tuttavia, è possibile eseguire un'analisi a più intervalli di tempo in modalità a thread singolo, nel qual caso analizzerà i tempi in modo sequenziale.

Script di analisi PrescienTrader - Sezione multi-thread

La sezione multi-thread è più complicata dello script single-thread e richiede diverse righe di codice:

postVars = PTBacktestPrepare ();
if (StrLen (postVars)> 0) {
    ih = InternetPostRequest ("https://api.prescientrading.com", postVars);
    if (ih) {
        response = "";
        while ((line = InternetReadString (ih))! = "")
            risposta + = linea;
        PTBacktestExecute (risposta);
        InternetClose (IH);
    }
    altro {
        msg = "Nessuna risposta dall'API - Possibile timeout o problema di connettività Internet - Attesa 60 secondi";
        _TRACE (msg);
        PTLogToFile (msg);
        PTWait (60);
    }
}

Il motivo del codice aggiuntivo è che AmiBroker non supporta il multi-threading in plugin come PrescienTrader. Quindi, invece di eseguire l'intera operazione di analisi in una singola funzione di plug-in, il plug-in gestisce tutto tranne la richiesta API, che è la parte che richiede più tempo e quindi offre il massimo beneficio dall'esecuzione in più thread.

Analizziamo questo passo per passo ...

  1. Nel primo passaggio, chiamiamo PTBacktestPrepare e assegniamo il risultato alla variabile postVars. Questa funzione utilizza i parametri definiti nella finestra Parametri per generare i dati nel formato corretto per una richiesta API.
  2. Nel secondo passaggio, eseguiamo la richiesta API utilizzando le funzioni InternetPostRequest e InternetReadString. Poiché interagisce con un server remoto, questa è la parte più lenta del processo e quindi avvantaggia maggiormente l'esecuzione su più thread.
  3. Nel passaggio finale, eseguiamo PTBacktestExecute sui dati restituiti dall'API. Questa funzione analizza i dati, genera i risultati nelle colonne di esplorazione e genera le matrici AFL sopra descritte.

Come puoi vedere, non è così complicato, ma richiede molto più codice dell'approccio a thread singolo. Se stai analizzando una grande quantità di dati, l'approccio multi-thread può essere fino a 32 volte più veloce, a seconda del numero di core della CPU del tuo computer.

Come per l'approccio a thread singolo, è possibile analizzare più intervalli di tempo inserendo il blocco di codice sopra riportato più volte o avvolgendo il blocco di codice in un ciclo for.

Ottimizzazione

L'ottimizzazione è il processo di messa a punto dei parametri per ottenere i migliori risultati per un mercato o un gruppo di mercati. AmiBroker consente di ottimizzare fino a 64 parametri contemporaneamente, supporta l'ottimizzazione del portafoglio e include tre motori di ottimizzazione intelligenti, Ottimizzazione standard dello sciame di particelle, Tribes e CMA-ES.

PrescienTrader supporta l'ottimizzazione di tutti i suoi parametri senza dover scrivere codice per ciascun parametro. Per impostare i parametri di ottimizzazione, tenere premuto il tasto Cambio tasto e fare clic sull'icona della barra degli strumenti Parametri. Verrà visualizzata la finestra dei parametri di ottimizzazione, in cui è possibile immettere a gamma (Da e A) per ciascun parametro e a passo per parametri numerici. L'intervallo rappresenta l'intervallo di ottimizzazione. Ad esempio, per ottimizzare l'intervallo di ricerca, è possibile selezionare qualcosa come:

Gamma LookBack Da: 5
Intervallo di ricerca fino a: 10
Passaggio intervallo di ricerca: 1

L'immissione di questi parametri ottimizzerebbe l'intervallo di ricerca tra 5 e 10 con un incremento di 1, quindi verificherebbe i valori di 5, 6, 7, 8, 9, 10.

Registrazione

Quando si esegue un'analisi, PrescienTrader invia continuamente informazioni alla finestra Traccia. Ogni riga contiene le seguenti informazioni:

  • Tipo di analisi (backtest, ottimizzazione, esplorazione, ecc ...)
  • Simbolo dello strumento analizzato
  • Periodo (giornaliero, settimanale, mensile, ecc ...)
  • Serie di dati (Chiudi, Media, ecc.)
  • Valori dei parametri:
    • Polarità
    • Base PL
    • Frequenza minima
    • Frequenza massima
    • Gamma di ricerca
    • Filtro armonico
    • Fiducia minima
    • I migliori cicli X.

Per ogni valore di parametro, indica la sua fonte tra parentesi. La fonte può essere una delle seguenti:

  • Param - Il valore è stato preso dalla finestra Parametri.
  • Opt - Il valore è stato generato in base alle impostazioni di ottimizzazione specificate nella finestra Parametri.
  • Salvato - Valore salvato per questo strumento e periodo di tempo.
  • AFL - Il valore è stato preso dalla variabile AFL corrispondente al parametro.
  • Array: il valore è stato ricavato da un array AFL. Poiché le matrici possono utilizzare un valore diverso per ciascuna barra, non verrà visualizzato alcun valore.

Le variabili AFL hanno la precedenza più alta, seguite dai valori salvati e quindi dai valori specificati nella finestra Parametri.

Oltre alla finestra Traccia, è possibile abilitare la registrazione in un file immettendo il percorso del file nella finestra Parametri.

questo articolo è stato utile?
antipatia 0
Visualizzazioni: 500
SEMPRE GRATUITO
Segnali di trading giornalieri
da PrescientSignals
SOTTOSCRIVI
Iscriviti per ricevere segnali di trading GRATUITI consegnati quotidianamente alla tua casella di posta elettronica
I segnali gratuiti vengono ritardati di una settimana. Ciò consente di valutare il nostro servizio PrescientSignals senza rischi, confrontando le previsioni della settimana precedente con i risultati effettivi.
SEMPRE GRATUITO
Segnali di trading giornalieri di PrescientSignals
SOTTOSCRIVI
Iscriviti per ricevere segnali di trading GRATUITI consegnati quotidianamente alla tua casella di posta elettronica
I segnali gratuiti vengono ritardati di una settimana. Ciò consente di valutare il nostro servizio PrescientSignals senza rischi, confrontando le previsioni della settimana precedente con i risultati effettivi.