Test di sistemi di previsione in tempo reale - pagina 54

 

a forte928

В данный момент есть первый фактор на основании которого можно сделать вывод о боковом флете на паре евро доллар -

La coppia ha raggiunto il livello di consolidamento della linea OP a 1.4850. Esattamente le stesse fluttuazioni sono state osservate ai punti di 1.3437 e 1.3937 con il successivo rollback che corrisponde ai livelli di 0.382, 0.618 e 1.00.

nella seconda figura lo stesso grafico ma con i livelli di crescita calcolati rispetto al basso - 1.4162 e l'attuale 1.4951 e se si prende sulla base di questo grafico dei prezzi i livelli 1.4951 e 1.4851 si può vedere che il prezzo è solo nel punto di equilibrio al livello medio di fluttuazioni di questi indicatori gli ultimi due giorni ... Inoltre, nel grafico giù indicatore ha mostrato un livello di saturazione in cui l'inversione dovrebbe verificarsi.

ma ci sono un paio di cose che non permettono che questo accada:

1) il grafico giornaliero mostra un movimento di crescita negativo (indicatore inferiore)

2) Il grafico giornaliero ha raggiunto il livello di consolidamento di 0,382 a 1,4877 sul primo indicatore

3) Il grafico giornaliero ha raggiunto il livello di consolidamento di COP a 1.4892 sul secondo indicatore

4) C'è un'opposizione attiva al movimento verso l'alto sul grafico H4

5) Presenza di due livelli di consolidamento relativi al minimo di fine settembre OP e 0,236 (1,4931 e 1,4933), che è una forte indicazione della presenza di una correzione prolungata

Per continuare...

Grazie mille per il chiarimento, devo dire che ho abbandonato l'AT qualche anno fa (per me stesso), ma è sempre interessante leggere analisi competenti e confrontarle con le mie previsioni. Potreste chiarire il termine "livello di consolidamento" per una migliore comprensione e per evitare confusione nella terminologia.


per lasciare

Avete mai provato a cercare i punti critici della serie temporale?

No, non l'ho fatto, e finora non ho idea di come trovarli. Ho usato una nozione come quella di "memoria delle serie temporali". Questo è un termine un po' specifico, si può trovare nelle reti neurali, nell'analisi frattale, ma bisogna sempre guardare il contesto della sua applicazione. Intendo l'influenza dei conteggi storici sulle realizzazioni future del processo. In parole povere, questo parametro risponde alla domanda "quanto tempo prendere la serie storica".


PS: A proposito, mi ricordo che hai promesso di migliorare la tua libreria lineare e di pubblicare una nuova versione...


a Yurixx

1. In MKL4 non si può operare con array la cui dimensione non è impostata. Se non avete specificato la sua dimensione quando dichiarate l'array, lo farete in init(). Inoltre, mentre si lavora, è possibile cambiare le sue dimensioni a seconda delle necessità.


Non ho capito bene, non lo faccio e tutto funziona, voglio dire senza inizializzazione in init()


2. I consigli di Lea sono molto pratici, vale la pena tenerne conto. È molto probabile che vogliate solo allocare lo spazio e avere una variabile con l'indice dell'ultimo elemento. Allora non ha davvero importanza se si conosce il numero di elementi di cui si ha bisogno o meno.

Non credo che sia molto pratico, perché ovviamente bisognerà farepiù calcoli. Ulteriori cicli potrebbero essere aggiunti a quanto sopra. Ma comunque, dovrei controllare tutto, se solo potessimo avere qualche raccomandazione dagli sviluppatori... :о)

In generale, perché il consiglio sia adeguato, è meglio che spieghiate più precisamente a cosa serve l'array e perché avete bisogno di cambiare le sue dimensioni.

Per esempio (e questo è l'esempio più semplice) per trovare gli estremi locali (non sul grafico) con la condizione y[n]>y[n+1] e y[n]<y[n-1] e corrispondentemente per un minimo. Capisco che è possibile risolvere in diversi modi, per esempio così:

  • Creare una matrice della stessa lunghezza della serie iniziale, codificare in essa 0 e 1 la presenza di un estremo.
  • Eseguire la prima iterazione calcolando il numero di estremi
  • Ricalcolare il numero di estremi
  • Inizializza l'array con questo valore
  • Scrivere i valori nella nuova matrice
Si può fare così, si può fare così, sto cercando di capire il modo migliore :o)

Non gioco con i ditali. Ma preferisco la variante 2 o forse voglio solo che l'eura cresca? :-)

Come avete notato, non stavo suggerendo i ditali in quanto tali. È tutto alla luce del sole, ero solo curioso di sapere la tua opinione (ho letto su un thread vicino la tua previsione)

Ma anche le opzioni 1 e 3 vanno bene, anche se non differiscono molto l'una dall'altra.

"Vettore divergente" spostamento del valore medio del prezzo


a Urain

Nella mia esperienza, raccomando di definire e usare gli array direttamente dove hanno bisogno di usare questi array sono per lo più locali e usano la memoria dinamicamente, che è meglio che usare array statici, perché lavorano più lentamente che dalla memoria, specialmente se l'array è piccolo, non ha senso staticamente riservare molto spazio per loro. Il compilatore MQL-4 è impostato in modo tale che non si sentirà la differenza tra dichiarare un array con la dimensione esplicita e quella ritardata.

Sembra che non ci siano "puntatori" statistici/dinamici a dove viene memorizzato un array in MQL. C'è solo un operatore di inizializzazione, l'unica questione è che usarlo più volte può rallentare un grande array. O lo è? O forse mi manca ancora qualcosa?


a markeeteer

filtrare le informazioni dal forum

Oh, è una qualità preziosa. Vi posso assicurare che ho i migliori filtri adattivi. :о)

Se descrivi il tuo compito nei dettagli (puoi scrivermi in un messaggio privato), noi (io) capiremo il modo migliore per implementarlo.

Ci penserò, ma ora voglio capirlo da solo. Dopo tutto, dovresti almeno capire qualcosa di MQL, in modo da poter almeno spiegare in qualche modo il problema :o).

 
E c'era un ramoscello così tranquillo. (
 
Lord_Shadows >> :
E c'era un ramoscello così tranquillo. (

>> Penso che rimarrà così. I colleghi sono ancora in modalità combattimento :o)

 
grasn писал(а) >>

a Yurixx

Non lo faccio e tutto funziona, voglio dire senza inizializzazione in init()

Inizializzare un array è una cosa, dichiarare una dimensione è un'altra. Se dichiarate un array come Arr[], allora un elemento viene allocato in memoria. Potete lavorarci quanto volete, e il sistema non vi dirà dell'errore quando indirizzate elementi con numero >0, ma i calcoli saranno errati. Per mettere tutto a posto, è necessario impostare una dimensione specifica utilizzando l'operazione ArrayResize(). Quando si alloca la memoria in questo caso tutti gli elementi saranno riempiti di zeri, quindi se non avete bisogno di niente di speciale, potete anche non inizializzarlo (anche se un buon stile lo richiede).

.

Non credo che sia molto pratico, perché è abbastanza ovvio che ci sonopiù calcoli. Ulteriori cicli possono essere aggiunti a quanto sopra. Ma comunque, dovremmo controllare tutto, se solo potessimo avere qualche raccomandazione dagli sviluppatori... :о)

Il consiglio di Lea non porta ad altri calcoli. Potresti voler indagare più attentamente. E se riesci a coinvolgere gli sviluppatori in questo problema elementare, sarai un eroe. :-)

.

Per esempio (e questo è l'esempio più semplice) per trovare gli estremi locali (non sul grafico) con le condizioni y[n]>y[n+1] e y[n]<y[n-1] e corrispondentemente per il minimo. Capisco che è possibile risolvere in diversi modi, per esempio così:

  • Creare un array della stessa lunghezza della serie originale, codificare in esso 0 e 1 la presenza dell'estremo.
  • Eseguire la prima iterazione calcolando il numero di estremi
  • Ricalcolare il numero di estremi
  • Inizializza l'array con questo valore
  • Scrivere i valori nella nuova matrice

Questo si chiama mano sinistra sull'orecchio destro. Lo faccio sempre nei miei programmi, ma lavoro in una volta sola per evitare di sprecare risorse di calcolo e tempo. La legge è: se si vince in memoria, si perde in tempo e calcolo. La mia opinione personale è che la memoria è meno critica per il trading. Pertanto, potete facilmente creare anche due array della stessa lunghezza e scrivere il valore dell'estremo in un array e la sua coordinata nell'altro mentre si formano.

Sergei, è meglio iniziare con lo scenario più complicato. Altrimenti non capirò il motivo di tutto questo trambusto. :-)))

Consiglio di trattare con molta cautela il consiglio di Urain di "dichiarare e usare direttamente gli array dove è necessario usarli". L'uso degli array è determinato dalla natura del compito, non da come combattere con il file di swap.

 
Yurixx >>:
grasn писал(а) >>

Ну например (и это самый простой пример) поиск локальных экстремумов (не на графике) по условию y[n]>y[n+1] и y[n]<y[n-1] и соответственно для минимума. Я понимаю, что можно решить несколькими способами, например таким:

  • Создать массив такой же длины, как и исходный ряд, кодировать в нем 0 и 1 наличие экстремума.
  • Выполнить первую итерацию собрав расчет экстремумов
  • Пересчитать количество экстремумов
  • Инициализировать массив этой величиной
  • Записать значения в новый массив

Это называется левой рукой за правое ухо. Я постоянно делаю это в своих программах, но работаю в один проход, чтобы не тратить зря вычислительные ресурсы и время. Закон такой: выигрываешь в памяти - проигрываешь во времени и вычислениях. Лично мне кажется, что память менее критична для трейдинга. Поэтому можешь смело создавать даже два массива такой же длины и писать в один значение экстремума, а во второй его координату, непосредственно по ходу их формирования.

Eh, questo è un po' fuori tema ;-). Di solito cerco di usare al massimo quelle capacità (API, librerie, ecc.) che già esistono per compiti specifici. In particolare, non sarebbe più produttivo usare le funzioni ArrayMinimum/Maximum per trovare gli estremi? Inoltre, la scelta del metodo per la memorizzazione degli estremi dovrebbe ancora essere determinata dalle operazioni successive da eseguire con essi. In particolare, suppongo che gli estremi dovranno essere successivamente violati in qualche calcolo e in questo caso il modo proposto da grasn è il migliore in quanto viene eseguito in un unico ciclo e permette di iterare facilmente gli estremi in seguito.
 
grasn писал(а) >>

per lasciare

No, non ho cercato tali punti e non ho ancora idea di come trovarli. Ho usato una nozione come quella di "memoria delle serie temporali". Questo è un termine un po' specifico, si può trovare nelle reti neurali e nell'analisi frattale, ma bisogna sempre guardare il contesto della sua applicazione. Intendo l'influenza dei conteggi storici sulle realizzazioni future del processo. In parole povere, questo parametro risponde alla domanda "quanto tempo prendere la serie storica".

PS: A proposito, mi ricordo che hai promesso di migliorare la tua libreria lineare e di pubblicare una nuova versione...

Capisco, grazie per la risposta.

Ho praticamente portato il lavoro sulla libreria a uno stadio finale due mesi fa (ho buttato via le funzioni inutili, rifatto quelle esistenti). Anche se non ho ancora fatto il calcolo della condizionalità della matrice. Sarò più libero tra circa due settimane e allora cercherò di risolvere il problema.

Ho iniziato a scrivere un articolo in quel momento, ma non avevo abbastanza tempo. Attualmente il 50% delle descrizioni delle funzioni è pronto (si tratta di 6 gruppi di funzioni su 16; per il momento scriverò solo la documentazione sulle funzioni, gli esempi del loro uso seguiranno).

 

Non sono molto bravo con le previsioni, quindi ho deciso di sperimentare con M1 oggi, a partire da lunedì:

Non riesco a vedere il grafico principale :)

Ma un'iper-ottimizzazione ogni minuto e una previsione per 3 ore avanti.


 
Piboli >> :

Non sono molto bravo con le previsioni, quindi ho deciso di sperimentare con M1 oggi, a partire da lunedì:

Non riesco a vedere il grafico principale :)

Ma l'ottimizzazione eccessiva ogni minuto e le previsioni per 3 ore avanti.



Come si fa a ri-ottimizzare? E dove prendete le vostre previsioni, non dal deduttore per caso?

 
mpeugep >> :

Come si fa a ri-ottimizzare? E dove prendete le vostre previsioni, non dal deduttore per caso?


Povero Piboli, gli è stato chiesto già quattro volte ^_^, sì, fa le sue previsioni a Deductor
 

la previsione è più o meno la stessa (quella con la massima entropia) :o) Un piccolo perfezionamento, rimangono le seguenti traiettorie, con quella che viene "incanalata" che è la più probabile.



per lasciare

Понятно

Ho fatto del mio meglio :o)

Fondamentalmente ho portato la libreria al suo stadio finale due mesi fa (tolto le funzioni inutili, rifatto quelle esistenti). Anche se non ho ancora fatto i calcoli della condizionalità della matrice.

Ma c'è scritto

Il codice sarà pubblicato più tardi.

Ma la versione non è cambiata :o(