Tuesday, 17 October 2017

Php Mobile Media Array


In primo luogo, si utilizza 5 in un paio di posti nel programma, non vedo alcuna giustificazione per questo. Potrebbe essere che la vostra aspettativa di input dell'utente porta sui mettere 5 in cui il numero si dovrebbe davvero usare, dipende da input dell'utente Forse si dovrebbe utilizzare la dimensione della finestra invece Im indovinare un po 'qui. Inoltre, come lppEdd ha sottolineato, non si è leggendo i numeri da l'input solo la dimensione della finestra. Successivamente, si dichiara la matrice di dimensione n. che credo fosse la dimensione della finestra, non la dimensione dell'array. Credo che la vera soluzione a questo problema sta usando i nomi delle variabili migliori e più esplicative. Il tuo codice non può essere compilato poiché non l'ha dichiarato il giudizio medio matrice che si tenta di memorizzare la media mobile in. In quinto luogo, quando si desidera che il media come un doppio. è necessario convertire raddoppiare prima di dividere (questa è una trappola classico che ha già generato molte domande su Stack Overflow). Spero che questo si ottiene inoltre un paio di passi. risposto 2 giorni fa La prima cosa che si vede è che lui sta usando nextInt (), che restituisce un solo valore intero, non un array. In sostanza si sarebbe utilizzando una matrice riempita di zeri. ndash LppEdd 2 giorni fa Your risposta 2017 Stack Exchange, IncYour interna per è l'iterazione tutta la matrice di modo che è il motivo per cui si ottiene sempre la stessa media (quello per l'intero array), si deve scorrere da 0 al numero attuale di quella esterna per anziché. La vostra media mobile viene aggiornato in base a j del vostro interiore per questo significa che si sostituisce i valori precedenti ogni nuovo ciclo, questo dovrebbe essere all'interno del esterna per invece di quello interno utilizzando i come indice. Si state dividendo sumj per calcolare le medie, ogni nuovo ciclo j interno si dividere per 0 la prima somma. Credo che si intende utilizzare J1, invece, l'indice non è lo stesso di punte di lunghezza corrente per la risoluzione: Evitare l'uso di variabili per le matrici di loop, è necessario utilizzare Array. length invece. Per una questione di riprodurre il problema ci potrebbe dare il problema isolato anziché il codice corrente. vale a dire: immaginate se l'errore è nei vostri input, come potremmo credere davvero usato li risposto 4 ottobre 13 alle 20:54 Si loop su tutti i dati ogni volta. Si dovrebbe avere for (int j (igtaverageLengthi-averageLength2: 0) JLT iaverageLength2 jltnumDataPoints ampamp j) (o qualcosa di simile) per la media più interno. Inoltre, movingAverageisumj deve essere modificato per gestire il caso in cui j è 0. In particolare, dovrebbe probabilmente movingAverageisumaverageLength e dovrebbe essere applicato alla fessura movingAveragei all'esterno del ciclo di media. ha risposto 4 ottobre 13 al 20:42 La prossima volta, prendere le osservazioni circa l'assegnazione fuori questione prima di postare esso. Ma dal momento che ti sembra abbastanza nuovo a questo, pensare a come si dovrebbe passare attraverso i dati, e fargli fare quello. Si dovrebbe cercare di assicurarsi che ogni ciclo si ferma al punto giusto, e ricordare che se si sarebbe fermato quando non ci sono più numeri, (come quando si sta facendo il ciclo interno e si può ottenere solo altri 3 numeri invece di 4) il programma ha bisogno di fermarsi troppo. Assicurarsi che il codice sta controllando per questo. risponde 4 13 Ottobre alle 20:56 senza alcun ulteriore dettaglio, probabilmente avete bisogno di una media mobile ponderata. In qualsiasi punto Ai nell'input array A di lunghezza N (con 0ltiltN), questo è semplicemente la media delle voci K precedenti della matrice, fino al Ai. Se vi arent K tali valori, quindi la media dei valori (I1) da A0 attraverso Ai. inclusiva. Un po 'di pensiero vi mostrerà che non avete bisogno di sommare tutti i valori K ogni volta. Basta tenere la somma e, quando ci si sposta al punto successivo (si tratta di una media mobile), sottrarre il thats valore sostituiti e aggiungere il nuovo valore che lo sostituirà. (Durante le prime K-1 punti, youll sufficiente aggiungere il nuovo valore alla somma e aumentare il contatore di 1.) In qualsiasi punto in questo processo, la media mobile è la somma divisa per il valore corrente. risponde 4 13 Ottobre alle 21:05 In una media mobile, è necessario avere un qualche tipo di dimensione della finestra. La dimensione della finestra è averageLength, così sarà simile a questa: Il ciclo for dalle ore i dati attuali e risale punti dati averageLength e li aggiunge in su. Si avrà solo una media mobile quando si ha si ha quando si dispone di punti di dati sufficienti e la media sarà la somma divisa per la lunghezza media. Nota: Non testato codice appena sudo, ma questa è l'idea. ha risposto 4 ottobre 13 alle 21:05 La vostra risposta 2017 Stack Exchange, Inctraderema il traderema () funzione non funziona correttamente. si calcola semplicemente media di voci dell'ultimo periodo. Seguire il seguente codice per traderema: la funzione EMACalculator (limite, array) EMApreviousday array0 printr (array) multiplier1 (2limit1) EMAarray () EMA array0 Chiudere array1 mentre (limite) echoEMA è Eman EMA (Close - EMApreviousday) multiplier1 EMApreviousday EMApreviousday EMA LIMIT - - ritorno EMA cui limite accettare il periodo di ema e la matrice. accettare array di dati per ema calculation. If si desidera controllare se ci sono ad esempio solo le stringhe in un array, è possibile utilizzare una combinazione di arraysum e arraymap in questo modo:. Funzione onlystringsinarray (arr) ritorno arraysum (arraymap (IsString arr) ) count (arr) matrice arr1 (uno. due. tre) serie arr2 (foo. bar. Array ()) serie arr3 (foo. array (), bar) di matrice arr4 (array (), foo. bar) vardump (onlystringsinarray (arr1), onlystringsinarray (arr2), onlystringsinarray (arr3), onlystringsinarray (arr4)) gt Questo vi darà il seguente risultato: bool (true) bool (false) bool (false) bool (false)

No comments:

Post a Comment