Quali strumenti negoziare su Otkritie - pagina 9

 
Anton Zverev:

Ho bisogno di scrivere una funzione che restituisca i tick da una data all'altra. In caso di successo, sarebbe vero, altrimenti sarebbe falso.

E non riesco a scrivere una tale sciocchezza. Perché non so cosa fare con l'asincronia. L'esempio di Renat attraverso OnTimer è probabilmente un'opzione. Ma sicuramente non nel modo che ha citato. OnTimer può essere usato per molte cose.

In breve, una funzione elementare data-to-data può essere portata per farlo funzionare.

I volumi deitick delle barre sono completamente incoerenti con ciò che si trova nei copyticks, quindi non è chiaro quanti tick interrogare.

Lo script chiede dati a partire da una certa data.

Ecco il risultato di due esecuzioni dello script a intervalli di pochi minuti:

2016.04.22 11:32:38.538 CopyTicks_1_02 (RTS-6.16,H3)    Получено тиков: 409 код ошибки: 0
2016.04.22 11:32:38.538 CopyTicks_1_02 (RTS-6.16,H3)    Тик: 2016.04.22 11:30:00 bid: 92480.0 ask: 92540.0 last: 92520.0 [0]
2016.04.22 11:32:38.538 CopyTicks_1_02 (RTS-6.16,H3)    Тик: 2016.04.22 11:32:38 bid: 92380.0 ask: 92390.0 last: 92380.0 [408]
2016.04.22 11:32:38.538 CopyTicks_1_02 (RTS-6.16,H3)    Size 0 Mb
2016.04.22 11:34:26.502 CopyTicks_1_02 (RTS-6.16,H3)    Получено тиков: 632 код ошибки: 0
2016.04.22 11:34:26.502 CopyTicks_1_02 (RTS-6.16,H3)    Тик: 2016.04.22 11:30:00 bid: 92480.0 ask: 92540.0 last: 92520.0 [0]
2016.04.22 11:34:26.502 CopyTicks_1_02 (RTS-6.16,H3)    Тик: 2016.04.22 11:34:26 bid: 92410.0 ask: 92440.0 last: 92420.0 [631]
2016.04.22 11:34:26.502 CopyTicks_1_02 (RTS-6.16,H3)    Size 0 Mb

Cioè, i tick sono richiesti da una certa data al momento attuale.

File:
 
Karputov Vladimir:

Lo script chiede dati a partire da una certa data.

Questo è il risultato di due esecuzioni dello script a intervalli di pochi minuti:

Cioè, i tick sono richiesti da una certa data al momento attuale.

Non capisco perché citate del codice che è inferiore persino alla documentazione in termini di informazioni. Grazie, naturalmente. Ma non è affatto quello che ho chiesto.

Il codice di Renate è molto meglio, ma non è affatto lo stesso.

 
Renat Fatkhullin:

No, tutti i tick scaricati in precedenza per ogni server di trading sono memorizzati nella cache locale ed estratti automaticamente.

C'è uno screenshot dei file di tick nella pagina precedente.

Grazie, non ho studiato la cartella Bases in dettaglio.

Come posso richiedere copyticks in OnTester per ottenere tutti i tick che sono stati passati?

 
Anton Zverev:
Come possiamo interrogare i copyticks in OnTester per ottenere tutti i tick che sono stati passati?

Nella beta attuale (la release di oggi), chiama CopyTicks e ottiene le ultime decine di migliaia di tick.

Il tester utilizza un ring buffer per memorizzare i tick senza la possibilità di ottenere milioni di tick. È costoso memorizzare tutti i tick, da qui il ring buffer. Forse però possiamo cambiare questo comportamento.

 
Anton Zverev:

Non capisco perché citate del codice che è meno informativo persino della documentazione. Grazie, naturalmente. Ma non è affatto quello che ho chiesto.

Il codice di Renate è molto meglio, ma non del tutto.

Il mio codice è solo per la dimostrazione del principio "per ottenere tick molto profondi si dovrebbe chiamare CopyTicks più volte per aspettare la paginazione". OnTimer è buono per questo.
 
Renat Fatkhullin:

Nella beta attuale (il rilascio di oggi), chiama CopyTicks e ottiene le ultime decine di migliaia di tick.

Il tester utilizza un ring buffer per memorizzare i tick senza la possibilità di ottenere milioni di tick. È costoso memorizzare tutti i tick, da qui il ring buffer. Possiamo però cambiare questo comportamento.

Come determinare la dimensione del ring buffer senza doverlo interrogare ad ogni tick (molto costoso farlo nel tester)?

Diciamo che il ring buffer è 10000. Poi chiamerò copyticks ogni 10000 per assicurarmi che non ci siano salti. Ma appare un problema sotto forma di tick con un tempo (con precisione al msec). Li ho nello scambio. Non voglio contarli due volte, chiamando i copioni di questa volta in ms.

 
Renat Fatkhullin:
Il mio codice è solo per dimostrare il principio "per ottenere tick molto profondi devi chiamare CopyTicks diverse volte per aspettare la paginazione". OnTimer si adatta bene a questo.

Ho capito che era a scopo dimostrativo. Ecco perché OnCopyTicks è venuto subito in mente.

Aiutami con questo, ho problemi con l'uno o l'altro.

Anton Zverev:

Ho bisogno di scrivere una funzione che restituisca i tick da una data all'altra. In caso di successo sarebbe vero, altrimenti sarebbe falso.

 
Anton Zverev:

Non capisco perché date del codice che è meno informativo persino della documentazione. Grazie, naturalmente. Ma non è affatto quello che ho chiesto.

Il codice di Renate è molto meglio, ma non è affatto lo stesso.

Se hai bisogno di andare da (data vecchia) a (data giovane), ti serve così:

Query ticks (con un margine) da "vecchia data". Nell'array ricevuto andate dall'indice "0" e controllate la data. Non appena si trova la prima occorrenza (data giovane), la si memorizza (indice data giovane). A questo punto, avete determinato che l'array di tick da indice 0 a (indice giovane data) contiene i tick che volete.

 
Sarebbe bello aggiungere una funzione per controllare lo stato delle zecche caricate/iniettate - nel database locale del terminale. Qualcosa come CheckXXX( simbolo ). In modo da non dover continuare a tirare la fotocopiatrice tutto il tempo.
 
Karputov Vladimir:

Se volete passare da (data vecchia) a (data giovane), fate come segue:

Query ticks(con un margine) da "vecchia data". Nell'array ricevuto andate dall'indice "0" e controllate la data. Non appena si trova la prima occorrenza (data giovane), la si memorizza (indice data giovane). A questo punto avete determinato che l'array di tick da indice 0 a (indice giovane data) contiene i tick che volete.

Con un margine, è uno spreco. Faccio una richiesta predefinita (2000 zecche, credo), e continuo dal punto (è facile ottenere zecche duplicate), dove ho finito.

Non capisco perché non ci sia una tale funzione da parte degli stessi sviluppatori. Perché non sovraccaricare i copyticks con un'altra opzione funzionante?