Risposta

Test di precisione in NT

15 risposte

xlhuang1995

Abbonato, bbp_partecipante, comunità, 11 risposte.

Visita il profilo

8 anni fa #115059

Salve gente,

 

Non so se qualcuno di voi sta facendo il backtesting delle strategie generate da SQ in NT. Ho riscontrato che, durante il backtesting delle strategie in SQ, gli ordini vengono eseguiti con la precisione scelta (simulazione di tick, 1 min, TF selezionato, ecc.), ma le condizioni di entrata/uscita vengono verificate solo quando una barra viene chiusa (M1, M5, M15, a seconda del TF della strategia). 

 

Se non capite cosa sto dicendo, diciamo che state testando una semplice strategia di inversione dell'RSI M15 che utilizza ordini di stop per l'entrata, con una precisione di test di 1 minuto. SQ verificherà se l'RSI tocca 70/30 ogni 15 minuti, ma controllerà se l'ordine di stop può essere eseguito ogni 1 minuto. 

 

Non so se SQ sia stato progettato per farlo o altro. Il problema è che, dopo aver esportato la strategia in NT, possiamo solo scegliere se eseguirla "Calculated on Bar Close" o meno. 

 

Se scegliamo SÌ, NT verificherà le condizioni di ingresso e l'evasione degli ordini, tick per tick.

 

Se scegliamo NO, non verrà eseguito un tick per tick, ma una barra per barra.

 

Indipendentemente dalla scelta, la strategia non funzionerà esattamente come in SQ. Devo aggiungere delle righe di codice alla strategia per far sì che generi le stesse operazioni tra SQ e NT.

 

Mi chiedo se ci sia qualcuno che possa ottenere gli stessi risultati seguendo semplicemente le istruzioni per l'installazione di SQ per NT. 

 

SQ non è stato progettato per una facile esportazione delle strategie? Perché devo fare questi sforzi che potrebbero essere facilmente risolti dal software stesso? 

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

8 anni fa #136629

Salve,

 

Il motore di backtesting di NT dovrebbe valutare la strategia solo alla chiusura della barra come mostrato qui https://ninjatrader.com/support/helpGuides/nt7/?discrepancies_real_time_vs_bac.htm

0

xlhuang1995

Abbonato, bbp_partecipante, comunità, 11 risposte.

Visita il profilo

8 anni fa #136641

Sì, è vero. Ma nel trading in tempo reale, è possibile scegliere se calcolare alla chiusura della barra o meno. In questo caso, i risultati del test di SQ non possono essere utilizzati, perché il sistema si limita a compilare gli ordini tick per tick, ma non elabora le condizioni di ingresso.

 

Inoltre, nel backtesting è possibile aggiungere quella che NT chiama Granularità Intrabar nei codici per fornire riempimenti intrabar. 

0

mabi

Cliente, bbp_partecipante, comunità, 261 risposte.

Visita il profilo

8 anni fa #136647

Quale codice hai aggiunto?

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

8 anni fa #136651

Helllo,

 

grazie per i suggerimenti. Il tweak NT Intrabar Granularity potrebbe essere aggiunto a SQ4 e lo trasmetterò agli sviluppatori. Per il trading in tempo reale è necessario mantenere le stesse condizioni e la stessa precisione (valutazione alla chiusura della barra) di SQ3. Con il motore di backtesting di NinjaTrader e i dati storici importati da NT si utilizza sempre la "precisione del timeframe selezionato".

0

Dirkdiggler

Cliente, bbp_partecipante, comunità, 12 risposte.

Visita il profilo

8 anni fa #136975

Quale codice hai aggiunto?

 

Se si desidera ottenere una buona qualità di riempimento del test posteriore, è possibile apportare queste modifiche.

1. Sostituire SQManagedStrategy con il testo allegato. 

2. Aggiungere questo codice a Initialize

protetto override void Initialize()
        {
          Add(PeriodType.Range,1);
        }

3. Aggiungete questo codice a OnBarUpdate

protected override void OnBarUpdate()
        {
          se (BarsInProgress !=0)
              return;
        }


4. Cercate nel codice BarsSinceEntry() e modificatelo in BarsSinceEntry(0,"",0).

 

 

Ora si otterrà la qualità del test su barre con intervallo di 1 periodo, più velocemente rispetto al tick di 1 periodo, purché si disponga di dati tick nel database di Ninja. 

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

8 anni fa #136988

Ottimo, grazie per la condivisione!

0

mabi

Cliente, bbp_partecipante, comunità, 261 risposte.

Visita il profilo

8 anni fa #137480

Voglio solo aggiungere che questo fine settimana ho testato 5 strategie presumibilmente buone generate su SQ con i dati di Market replay sullo stesso periodo (1 anno). I risultati reali sono molto diversi. La precisione del tick è davvero necessaria.

 

Ninjatrader è solo una piattaforma di trading per eseguire operazioni di larghezza .SQ è presumibilmente un generatore di strategie che può creare strategie per l'uso di larghezza Ninjatrader. A me sembra che non funzionino affatto nel mercato reale come testato. 

 

Esiste un modo per esportare/convertire i dati tick da NInjatrader al formato Metatrader in modo che la precisione dei tick possa essere utilizzata per i test in SQ per eliminare quelli non corretti? E' davvero necessario o il team di SQ può creare uno strumento di conversione come questo.

0

Dirkdiggler

Cliente, bbp_partecipante, comunità, 12 risposte.

Visita il profilo

8 anni fa #137497

Mabi, il metodo che ho postato sopra vi darà risultati quasi identici a quelli di market replay. Ti farà risparmiare un po' di tempo.

0

mabi

Cliente, bbp_partecipante, comunità, 261 risposte.

Visita il profilo

8 anni fa #137498

Mabi, il metodo che ho postato sopra vi darà risultati quasi identici a quelli di market replay. Ti farà risparmiare un po' di tempo.

 

Lo apprezzo molto. Vorrei filtrarli prima che arrivino a Ninjatrader. Per questo motivo ho chiesto un promemoria. L'unica cosa che è stata detta prima su questo problema è che "può" essere implementato in SQ4, ma non che hanno in programma di farlo.

0

DanT

Cliente, bbp_partecipante, comunità, 8 risposte.

Visita il profilo

8 anni fa #137599

Salve,

 

Ho generato alcune strategie a 10 minuti, il feed di dati che ho utilizzato è a 10 minuti di fronte a Ninja Trader.

 

Stesso problema in StrategyQuant e nel backtest di NinjaTrader, molte operazioni (70-80%) vengono chiuse nella stessa barra.

 

Come posso fare un backtest accurato? Sono un principiante di SQ e di NT 🙂

 

Grazie,

Dan

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

8 anni fa #137620

Salve,

 

Ho generato alcune strategie a 10 minuti, il feed di dati che ho utilizzato è a 10 minuti di fronte a Ninja Trader.

 

Stesso problema in StrategyQuant e nel backtest di NinjaTrader, molte operazioni (70-80%) vengono chiuse nella stessa barra.

 

Come posso fare un backtest accurato? Sono un principiante di SQ e di NT 🙂

 

Grazie,

Dan

 

Ciao Dan, ti ho risposto via e-mail

0

mabi

Cliente, bbp_partecipante, comunità, 261 risposte.

Visita il profilo

8 anni fa #137628

Salve,

 

Ho generato alcune strategie a 10 minuti, il feed di dati che ho utilizzato è a 10 minuti di fronte a Ninja Trader.

 

Stesso problema in StrategyQuant e nel backtest di NinjaTrader, molte operazioni (70-80%) vengono chiuse nella stessa barra.

 

Come posso fare un backtest accurato? Sono un principiante di SQ e di NT 🙂

 

Grazie,

Dan

 

Questo è un problema che riguarda Ninjatrader. Avrebbero potuto risolvere questo problema 10 anni fa ma non l'hanno mai fatto. Non ci sono soldi per risolvere questo problema, ma molti soldi per non risolverlo. Tutti i venditori di "serpenti" usano questo problema per mostrare i loro risultati di trading falsi in qualsiasi sistema possano vendere, solo alcune operazioni all'interno della barra possono distruggere il sistema e possono essere nascoste soprattutto alla chiusura del giorno.C'è un modo per risolvere questo problema come sopra post da dirkdiggler. Oppure è possibile acquistare un addon intrabar per ninjatrader su backtestdata.com che funziona con backtesting storico o ottimizzazione per tutte le strategie di terze parti. Il miglior test resta il market replay o l'incubazione live. Quando si utilizzano i dati di SQ e di NInjatrader è necessario costruire strategie che non prevedano operazioni all'interno delle barre.

0

DanT

Cliente, bbp_partecipante, comunità, 8 risposte.

Visita il profilo

8 anni fa #137641

Se si desidera ottenere una buona qualità di riempimento del test posteriore, è possibile apportare queste modifiche.

1. Sostituire SQManagedStrategy con il testo allegato. 

2. Aggiungere questo codice a Initialize

protetto override void Initialize()
        {
          Add(PeriodType.Range,1);
        }

3. Aggiungete questo codice a OnBarUpdate

protected override void OnBarUpdate()
        {
          se (BarsInProgress !=0)
              return;
        }


4. Cercate nel codice BarsSinceEntry() e modificatelo in BarsSinceEntry(0,"",0).

 

 

Ora si otterrà la qualità del test su barre con intervallo di 1 periodo, più velocemente rispetto al tick di 1 periodo, purché si disponga di dati tick nel database di Ninja. 

 

 

Ciao,

 

Faccio i passi 1-3, ma il 4 no, perché nella mia strategia non ho nessun "BarsSinceEntry()". Potete dirmi come posso fare e dove devo aggiungere questa condizione?

 

Grazie,

Dan

0

Dirkdiggler

Cliente, bbp_partecipante, comunità, 12 risposte.

Visita il profilo

8 anni fa #137643

La vostra strategia potrebbe non includere il metodo BarsSinceEntry nella sua logica. Ma se lo prevede, è possibile inserire 0,"",0 tra i ().

0

mabi

Cliente, bbp_partecipante, comunità, 261 risposte.

Visita il profilo

8 anni fa #137652

Marketreplay.net ha messo in vendita la versione pro di Ninjatrader. 1/3 del prezzo a cui l'ho acquistata. Supporta il download in batch di contratti continui. Lo uso come incubazione di una strategia. Testato fino alla fine del 2015 ed eseguito su Market replay per i restanti 6 mesi e poi sui dati live per una settimana e poi lo provo con denaro reale.

0

Stai visualizzando 15 risposte - da 1 a 15 (di 15 totali)