Friday 7 July 2017

Algoritma Eksponensial Moving Average


Saya perlu melacak jam kerja 7 hari terakhir di sebuah loop membaca file datar Ini digunakan untuk mengukur kelelahan dari daftar pekerjaan. Mungkin sekarang saya memiliki sesuatu yang berhasil, tapi tampaknya agak verbose dan saya tidak yakin apakah ada sa Pola yang s lebih ringkas. Saat ini, saya memiliki kelas Java dengan array statis untuk menampung data x hari terakhir, lalu saat saya membaca file, saya memotong elemen pertama dan memindahkan 6 lainnya selama seminggu untuk mengembalikan total total Oleh satu Pengolahan array statis ini dilakukan dengan caranya sendiri yaitu pertanyaan saya. Ini adalah pendekatan desain yang masuk akal, atau adakah sesuatu yang menyilaukan jelas dan mudah dilakukan dalam tugas ini. Terima kasih guys. asked 30 Agustus 11 pukul 14 33.Terima kasih banyak Guys Saya punya pesan menggunakan objek tingkat yang lebih tinggi dan memanfaatkan metode yang relevan atau buffer melingkar Jawaban bagus, semuanya Ketika Anda memikirkannya, Anda selalu membutuhkan akses ke keseluruhan rangkaian sehingga Anda bisa menyingkirkan entri pertama itu. - yang saya tidak yakin dengan saya sendiri, saya lega karena saya Saya tidak merindukan beberapa 1 liner dan pada dasarnya pada jalur yang masuk akal, jika tidak efisien dan singkat Inilah yang saya sukai dari situs ini berkualitas tinggi, jawaban yang relevan dari orang-orang yang mengetahui tingkah mereka Pete855217 30 Agustus 11 pukul 15 05. Mengapa? Anda menginisialisasi runningTotal untuk null Apa jenisnya Dimana dideklarasikan Akan lebih baik jika Anda memasukkan beberapa contoh kode yang menyerupai kode Java aktual. Beranjak, kritik saya adalah fungsi yang Anda lakukan tidak terlalu banyak. Suatu fungsi, atau metode, seharusnya Jadilah kohesif Lebih tepat, mereka harus melakukan satu hal dan satu hal saja. Masih lagi, apa yang terjadi dalam lingkaran Anda saat x 5 Anda menyalin runningTotal 6 ke runningTotal 5 tapi kemudian Anda memiliki dua salinan dengan nilai yang sama pada posisi 5 dan 6. Dalam desain Anda, function. moves Anda mengocok barang-barang dalam array Anda. Menghitung total. Mencetak barang ke kesalahan standar. Keluarkan totalnya. Terlalu banyak. Saran pertama saya adalah tidak memindahkan barang-barang ke dalam array. Sebaliknya, terapkan sebuah Penyangga melingkar dan menggunakannya bukan Array Ini akan menyederhanakan desain Anda Saran kedua saya adalah memecah hal-hal ke dalam fungsi yang bersifat kohesif. Membuat struktur data sebagai buffer melingkar yang memungkinkan Anda menambahkannya dan itu memasukkan entri tertua setiap kali mencapai kapasitasnya. Struktur menerapkan interator. have fungsi yang menghitung total pada iterator Anda tidak peduli jika Anda menghitung total dari array, daftar atau melingkar bufer. don t menyebutnya total Call itu jumlah, yang adalah apa yang Anda komputasi Itulah yang saya lakukan. Itu info bagus luis, namun ingatlah fungsi ini adalah bagian kecil dari fungsionalitas kelas, dan akan terlalu banyak menambahkan terlalu banyak kode untuk membuatnya sempurna. Anda secara teknis benar, dan saya Mengerti kode saya tidak terlalu banyak tapi pada saat yang sama kadang-kadang lebih baik untuk berbuat salah di sisi kode yang lebih kecil dan lebih jelas daripada pergi untuk kesempurnaan Mengingat keterampilan Java saya, bahkan membuat pseudocode yang Anda gambarkan kompilasi akan membuat saya meniup anggaran saya untuk ini, Tapi terima kasih untuk R deskripsi yang jelas Pete855217 31 Agustus 11 at 2 23.Hmmm, ini bukan tentang kesempurnaan, tapi tentang praktik industri mapan yang telah kita ketahui selama 3 dekade terakhir Kode bersih selalu menjadi salah satu yang dipartisi Kami memiliki beberapa dekade bukti yang menunjukkan ini Adalah cara untuk pergi dalam kasus umum dalam hal efisiensi biaya, pengurangan cacat, pemahaman, dll kecuali jika itu adalah kode membuang jauh untuk hal satu kali Tidak perlu melakukan hal ini ketika seseorang memulai analisis masalah apa pun Dengan cara ini Coding 101, memecahkan masalah dan kode berikut, tidak berlebihan atau sulit 31 Agustus 11 di 15 55. Tugas Anda terlalu sederhana dan pendekatan yang Anda adopsi tentu saja bagus untuk pekerjaan Namun, jika Anda ingin menggunakan Desain yang lebih baik, Anda harus menyingkirkan semua pergerakan angka itu dengan lebih baik menggunakan antrian FIFO dan memanfaatkan metode push and pop dengan baik sehingga kode tersebut tidak mencerminkan pergerakan data apapun, hanya dua tindakan logika dari data baru dan menghapus data yang lebih tua. Dari 7 hari. Terjawab 30 Agustus 1 1 pada 14 49.I pada dasarnya memiliki nilai array seperti ini. Array di atas disederhanakan, saya mengumpulkan 1 nilai per milidetik dalam kode sebenarnya dan saya perlu mengolah keluaran pada algoritme yang saya tulis untuk menemukan puncak terdekat sebelum Sebuah titik dalam waktu Logika saya gagal karena dalam contoh saya di atas, 0 36 adalah puncak sebenarnya, tapi algoritme saya akan terlihat mundur dan melihat angka terakhir 0 25 sebagai puncaknya, karena ada penurunan ke 0 24 sebelum itu. Adalah untuk mengambil nilai-nilai ini dan menerapkan algoritma kepada mereka yang akan memperlancar mereka sedikit sehingga saya memiliki nilai linier yang lebih banyak, yaitu saya ingin hasil saya melengkung, tidak bergerigi. Saya telah diberitahu untuk menerapkan filter rata-rata bergerak eksponensial ke Nilai saya Bagaimana saya bisa melakukan ini? Sangat sulit bagi saya untuk membaca persamaan matematis, saya jauh lebih baik dengan kode. Bagaimana cara memproses nilai dalam array saya, menerapkan perhitungan rata-rata bergerak eksponensial bahkan sampai mereka keluar. 20 27. Untuk menghitung rata-rata bergerak eksponensial, Anda perlu menyimpan beberapa keadaan Sekitar dan Anda memerlukan parameter tuning Ini memerlukan kelas kecil dengan asumsi Anda menggunakan Java 5 atau yang lebih baru. Mengkonfirmasi dengan parameter peluruhan yang Anda inginkan mungkin melakukan tuning harus antara 0 dan 1 dan kemudian gunakan rata-rata untuk memfilter. Saat membaca halaman Beberapa kekambuhan mathmatical, semua Anda benar-benar perlu tahu ketika mengubahnya menjadi kode adalah bahwa matematikawan suka menulis indeks menjadi array dan urutan dengan subskrip Mereka memiliki beberapa notasi lainnya juga, yang tidak membantu Namun, EMA cukup sederhana seperti Anda Hanya perlu mengingat satu nilai lama tidak ada susunan negara yang rumit yang diperlukan. Dijawab pada 8 Februari 12 di 20 42. TKKocheran Cukup banyak Tidak baik bila semuanya bisa sederhana Jika dimulai dengan urutan baru, dapatkan averager baru Perhatikan bahwa beberapa istilah pertama Dalam urutan rata-rata akan melompat-lompat sedikit karena efek batas, tapi Anda juga bisa mendapatkan rata-rata bergerak lainnya. Namun, keuntungan yang bagus adalah Anda bisa membungkus logika rata-rata bergerak ke rata-rata dan bereksperimen tanpa d. Isturbing sisa program Anda terlalu banyak Donal Fellows Feb 9 12 at 0 06.Saya mengalami kesulitan untuk memahami pertanyaan Anda, tapi saya akan mencoba untuk menjawab pula.1 Jika algoritma Anda menemukan 0 25 bukan 0 36, maka itu adalah Salah Ini salah karena mengasumsikan kenaikan atau penurunan monotonik yang selalu naik atau selalu turun Kecuali Anda menilai SEMUA data Anda, poin data Anda - seperti yang Anda tunjukkan - tidak linier Jika Anda benar-benar ingin menemukan Nilai maksimum antara dua titik dalam waktu, lalu iriskan array Anda dari tmin ke tmax dan temukan maks dari subarray itu.2 Sekarang, konsep moving averages sangat sederhana sehingga saya dapat melihat daftar berikut 1 4, 1 5, 1 4 , 1 5, 1 5 Saya dapat menghaluskannya dengan mengambil rata-rata dua angka 1 45, 1 45, 1 45, 1 5 Perhatikan bahwa angka pertama adalah rata-rata 1 5 dan 1 4 detik dan angka pertama yang kedua Daftar adalah rata-rata 1 4 dan 1 5 daftar ketiga dan kedua daftar ketiga daftar baru rata-rata 1 5 dan 1 4 keempat dan ketiga, dan sebagainya Pada saya bisa membuatnya periode tiga atau empat, atau n Perhatikan bagaimana data jauh lebih halus Cara yang baik untuk melihat moving averages di tempat kerja adalah pergi ke Google Finance, pilih saham Tryla Tesla Motors yang cukup mudah menguap dan klik pada teknikal di Bagian bawah grafik Select Moving Average dengan periode tertentu, dan moving average eksponensial untuk membandingkan perbedaannya. Estimasi moving average hanyalah elaborasi lain, tapi bobot data yang lebih tua kurang dari data baru ini adalah cara untuk bias smoothing. Ke arah belakang Harap baca entri Wikipedia. Jadi, ini lebih merupakan komentar daripada sebuah jawaban, tapi kotak komentar kecil itu hanya untuk keberuntungan kecil. Jika Anda mengalami masalah dengan matematika, Anda bisa pergi dengan rata-rata bergerak sederhana saja. Eksponensial Jadi, keluaran yang Anda dapatkan akan menjadi persyaratan x terakhir yang dibagi dengan x Pseudocode yang tidak teruji. Perhatikan bahwa Anda perlu menangani bagian awal dan akhir data karena dengan jelas Anda tidak dapat menghitung rata-rata 5 istilah terakhir saat berada di posisi ke 2 Data poin T Juga, ada cara yang lebih efisien dalam menghitung jumlah rata-rata bergerak ini - yang terbaru terlama, tapi ini untuk mendapatkan konsep tentang apa yang sedang terjadi. 8 Feb 12 12 di 20 41.I m dalam proses pembuatan forex trading Algoritma dan ingin mencoba tembakan saya saat menghitung EMA Exponential Moving Averages Hasil saya nampaknya benar dibandingkan dengan perhitungan yang saya lakukan dengan tangan jadi saya yakin metode berikut berhasil, tapi hanya ingin mendapatkan satu set ekstra mata untuk memastikan tidak Kehilangan sesuatu. Perhatikan bahwa ini hanya mengembalikan EMA untuk harga terbaru, ia tidak mengembalikan array EMA seperti yang tidak sesuai dengan kebutuhan saya untuk aplikasi saya. Perekaman adalah alat yang baik untuk pekerjaan yang tepat, namun di sini digunakan Untuk mencapai perulangan sederhana Seperti kode tersebut. ini lebih sulit dibaca dan dipikirkan. Semakin lambat karena banyak kode di ema hanya perlu dijalankan sekali. Anda akan gagal dengan nilai jendela cukup besar karena tumpukan python yang melimpah stack. Please Setidaknya mendokumentasikan parameter masing-masing Fungsi, misalnya jendela itu adalah panjang jendela, dan posisi itu mundur ke belakang dari akhir data Sebenarnya semuanya akan lebih jelas lagi jika posisi adalah indeks ke depan normal menjadi data. Tunggu pengecualian saat Anda menemukan parameter memiliki nilai yang tidak valid. Returning None malah hanya akan menyebabkan pengecualian yang lebih membingungkan nanti Sebenarnya, jika saya mencoba 600 saya mendapatkan rekursi yang tak terbatas karena sma kembali Tidak ada yang membuat ema memanggil sma lagi dan lagi. Poin sebelumnya juga mengungkap bahwa jika len data window 2 bukan Cek validitas yang benar. 1 dalam data - window 2 1 - semakin tidak tepat untuk saya, saya kira Anda menginginkan data - bertambah 2-gelombang. Pernyataan kembali sebelumnya adalah hal yang aneh karena pada saat itu Anda telah menghitung yang baru. Currentema Ini adalah kasus dasar rekursi, dan biasanya menangani kasus dasar pertama. Proposal saya untuk ema. answered 26 November 14 di 18 56.Pretty dangkal review. Anda tidak perlu menulis kelas untuk apa Anda Melakukan dan saya sarankan Anda lihat Video ini Kelas Anda tidak merangkum data apapun dan Anda hanya menggunakannya untuk memiliki fungsi Anda dalam entitas yang sama. Kurasa segalanya akan lebih mudah dipahami jika Anda mendefinisikan metode kelas agar jelas bahwa Anda tidak benar-benar bergantung pada contoh apa pun Namun, pilihan yang lebih baik lagi adalah mendefinisikan fungsi di modul indikator. Dijawab pada 24 November 14 di 18 04.Terima kasih atas saran yang saya berikan kepada mereka sebagai metode kelas dan berdebat akan bolak-balik antara bahkan menggunakan kelas atau hanya mendefinisikan Fungsi dalam modul indikator yang sekarang saya akan lakukan ChrisC 25 Nov 14 di 19 12.Just menonton video juga, hal-hal hebat ChrisC 25 Nov 14 di 19 43. Your Answer.2017 Stack Exchange, Inc.

No comments:

Post a Comment