Saturday 15 July 2017

Pindah Rata Matlab Contoh


29 September, 2013 Rata-rata bergerak dengan konvolusi Apa yang dimaksud dengan moving average dan apakah gunanya untuk bagaimana moving averaging dilakukan dengan menggunakan konvolusi Moving average adalah operasi sederhana yang biasanya digunakan untuk menekan noise dari sinyal: kita tetapkan nilai setiap titik ke arah Rata-rata nilai di lingkungannya. Dengan rumus: Disini x adalah input dan y adalah sinyal output, sedangkan ukuran jendela adalah w, seharusnya aneh. Rumus di atas menggambarkan operasi simetris: sampel diambil dari kedua sisi titik sebenarnya. Berikut adalah contoh kehidupan nyata. Titik di mana jendela diletakkan sebenarnya berwarna merah. Nilai di luar x seharusnya nol: Untuk bermain-main dan melihat efek rata-rata bergerak, lihatlah demonstrasi interaktif ini. Cara melakukannya dengan konvolusi Seperti yang mungkin Anda ketahui, menghitung rata-rata pergerakan sederhana sama dengan konvolusi: pada kedua kasus, sebuah jendela tergelincir sepanjang sinyal dan elemen di jendela diringkas. Jadi, cobalah untuk melakukan hal yang sama dengan menggunakan konvolusi. Gunakan parameter berikut: Output yang diinginkan adalah: Sebagai pendekatan pertama, mari kita coba apa yang kita dapatkan dengan menggabungkan sinyal x dengan kernel k berikut: Outputnya persis tiga kali lebih besar dari yang diharapkan. Bisa juga dilihat, bahwa nilai output adalah rangkuman ketiga elemen di jendela. Hal ini karena selama konvolusi jendela meluncur, semua elemen di dalamnya dikalikan dengan satu dan kemudian diringkas: yk 1 cdot x 1 cdot x 1 cdot x Untuk mendapatkan nilai y yang diinginkan. Output harus dibagi dengan 3: Dengan formula termasuk pembagiannya: Tapi bukankah optimal melakukan pembagian selama konvolusi Inilah ide dengan menata ulang persamaan: Jadi kita akan menggunakan kernel k berikut: Dengan cara ini kita akan Mendapatkan output yang diinginkan: Secara umum: jika kita ingin melakukan moving average dengan konvolusi yang memiliki ukuran jendela w. Kita akan menggunakan kernel k berikut: Fungsi sederhana untuk melakukan moving average adalah: Contoh penggunaan adalah: Download movAv. m (lihat juga movAv2 - versi terbaru yang memungkinkan pembobotan) Deskripsi Matlab mencakup fungsi yang disebut movavg dan tsmovavg (time-series moving Rata) di Financial Toolbox, movAv dirancang untuk mereplikasi fungsi dasar ini. Kode di sini memberikan contoh bagus untuk mengelola indeks di dalam loop, yang bisa membingungkan untuk memulai. Saya sengaja menyimpan kode pendek dan sederhana agar proses ini tetap jelas. MovAv melakukan moving average sederhana yang dapat digunakan untuk memulihkan data yang bising dalam beberapa situasi. Ia bekerja dengan mengambil rata-rata input (y) di atas jendela waktu geser, ukurannya ditentukan oleh n. Semakin besar n, semakin besar jumlah perataan efek n relatif terhadap panjang vektor masukan y. Dan efektif (baik, semacam) menciptakan filter frekuensi lowpass - lihat contoh dan bagian pertimbangan. Karena jumlah smoothing yang diberikan oleh masing-masing nilai n relatif terhadap panjang vektor input, nilainya selalu bernilai untuk menguji nilai yang berbeda untuk melihat apa yang sesuai. Ingat juga bahwa n poin hilang pada masing-masing rata-rata jika n adalah 100, 99 poin pertama dari vektor input tidak berisi data yang cukup untuk rata-rata 100pt. Hal ini dapat dihindari agak oleh rata-rata susun, misalnya, kode dan grafik di bawah membandingkan sejumlah rata-rata jendela panjang yang berbeda. Perhatikan bagaimana kelancaran 1010pt dibandingkan dengan rata-rata 20pt tunggal. Dalam kedua kasus tersebut 20 titik data hilang secara total. Buat xaxis x1: 0,01: 5 Menghasilkan noise noiseReps 4 noise repmat (randn (1, ceil (numel (x) noiseReps)), noiseReps, 1) noise reshape (noise, 1, length (noise) noiseReps) Menghasilkan ydata noise yexp X) 10noise (1: length (x)) Perfrom averages: y2 movAv (y, 10) 10 pt y3 movAv (y2, 10) 1010 pt y4 movAv (y, 20) 20 pt y5 movAv (y, 40) 40 pt Y6 movAv (y, 100) 100 pt Plot figure plot (x, y, y2, y3, y4, y5, y6) legenda (data mentah, 10pt moving average, 1010pt, 20pt, 40pt, 100pt) xlabel (x) ylabel Y) judul (Perbandingan moving averages) movAv. m kode fungsi run-through output movAv (y, n) Baris pertama mendefinisikan nama fungsi, input dan output. Masukan x harus berupa vektor data untuk melakukan rata-rata, n harus jumlah titik untuk melakukan rata-rata di atas output akan berisi data rata-rata yang dikembalikan oleh fungsinya. Preallocate output outputNaN (1, numel (y)) Temukan titik tengah n ruas tengah (n2) Pekerjaan utama fungsi dilakukan dalam loop, tapi sebelum memulai dua hal disiapkan. Pertama, keluarannya adalah pra-alokasi sebagai NaN, ini melayani dua tujuan. Pertama, preallokasi pada umumnya adalah praktik yang baik karena mengurangi juggling memori yang harus dilakukan Matlab, kedua, sangat memudahkan untuk menempatkan data rata-rata ke dalam output dengan ukuran yang sama dengan vektor input. Ini berarti xaxis yang sama dapat digunakan kemudian untuk keduanya, yang sesuai untuk merencanakan, sebagai alternatif NaN dapat dilepas nanti dalam satu baris kode (output output (Variabel midPoint akan digunakan untuk menyelaraskan data pada vektor output. N 10, 10 poin akan hilang karena, untuk 9 titik pertama vektor masukan, tidak ada cukup data untuk mengambil nilai rata-rata 10 poin. Karena outputnya akan lebih pendek dari pada input, maka perlu diselaraskan dengan benar. Digunakan sehingga jumlah data yang sama hilang pada awal dan akhir, dan input dijaga sejajar dengan output oleh buffer NaN yang dibuat saat preallocating output. Untuk 1: length (y) - n Temukan kisaran indeks untuk mengambil rata-rata Over (a: b) ban Menghitung mean output (amidPoint) mean (y (a: b)) end Dalam for loop itu sendiri, mean diambil alih setiap segmen berturut-turut dari input. Loop akan berjalan untuk a. Didefinisikan sebagai 1 sampai dengan panjang input (y), minus data yang akan hilang (n). Jika input 100 point lo Ng dan n adalah 10, loop akan berjalan dari (a) 1 sampai 90. Ini berarti indeks pertama dari segmen akan dirata-ratakan. Indeks kedua (b) hanya satu-1. Jadi pada iterasi pertama, a1. N10. Jadi b 11-1 10. Rata-rata pertama diambil alih y (a: b). Atau x (1:10). Rata-rata segmen ini, yang merupakan satu nilai tunggal, disimpan dalam output di indeks amidPoint. Atau 156. Pada iterasi kedua, a2. B 210-1 11. Jadi mean diambil alih x (2:11) dan disimpan dalam output (7). Pada iterasi terakhir dari loop untuk input dengan panjang 100, a91. B 9010-1 100 sehingga mean diambil alih x (91: 100) dan disimpan dalam output (95). Ini menghasilkan output dengan total n (10) nilai NaN pada indeks (1: 5) dan (96: 100). Contoh dan pertimbangan Moving averages berguna dalam beberapa situasi, tapi tidak selalu pilihan terbaik. Berikut adalah dua contoh dimana mereka belum tentu optimal. Kalibrasi Mikrofon Kumpulan data ini mewakili tingkat masing-masing frekuensi yang dihasilkan oleh speaker dan dicatat oleh mikrofon dengan respons linier yang diketahui. Output speaker bervariasi dengan frekuensi, namun kami dapat memperbaiki variasi ini dengan data kalibrasi - output dapat disesuaikan secara level untuk menjelaskan fluktuasi dalam kalibrasi. Perhatikan bahwa data mentahnya berisik - ini berarti bahwa perubahan kecil pada frekuensi tampaknya memerlukan perubahan level yang besar dan tidak menentu. Apakah ini realistis Atau apakah ini merupakan produk dari lingkungan rekaman Yang masuk akal dalam hal ini untuk menerapkan rata-rata bergerak yang menghaluskan kurva tingkat frekuensi untuk memberikan kurva kalibrasi yang sedikit kurang tidak menentu. Tapi mengapa tidak optimal dalam contoh ini Data lebih banyak akan lebih baik - beberapa kalibrasi berjalan rata-rata akan menghancurkan kebisingan di sistem (selama acak) dan memberikan kurva dengan detail yang kurang halus hilang. Rata-rata bergerak hanya dapat memperkirakan hal ini, dan dapat menghilangkan beberapa penurunan frekuensi dan puncak yang lebih tinggi dari kurva yang benar-benar ada. Gelombang sinus Menggunakan rata-rata bergerak pada gelombang sinus menyoroti dua poin: Masalah umum memilih sejumlah titik yang masuk akal untuk melakukan rata-rata di atas. Yang sederhana, tapi ada metode analisis sinyal yang lebih efektif daripada rata-rata sinyal osilasi dalam domain waktu. Dalam grafik ini, gelombang sinus asli diplot dengan warna biru. Kebisingan ditambahkan dan diplot sebagai kurva oranye. Rata-rata bergerak dilakukan pada berbagai titik untuk melihat apakah gelombang asli dapat dipulihkan. 5 dan 10 poin memberikan hasil yang masuk akal, namun jangan menghilangkan noise seluruhnya, karena jumlah titik yang lebih banyak mulai kehilangan detail amplitudo karena rata-rata meluas melebihi fase yang berbeda (ingat oscilat gelombang sekitar nol, dan rata-rata (-1 1) 0).Sebuah pendekatan alternatif adalah dengan membangun filter lowpass daripada yang bisa diterapkan pada sinyal di domain frekuensi. Im tidak akan membahas detail karena melampaui lingkup artikel ini, namun karena suaranya jauh lebih tinggi daripada frekuensi dasar gelombang, akan cukup mudah jika membuat filter lowpass daripada yang akan mengeluarkan frekuensi tinggi. Noise. Moving Averages: Apakah Mereka Diantara indikator teknis yang paling populer, moving averages digunakan untuk mengukur arah dari tren saat ini. Setiap jenis moving average (biasanya ditulis dalam tutorial ini sebagai MA) adalah hasil matematis yang dihitung dengan rata-rata sejumlah titik data sebelumnya. Setelah ditentukan, rata-rata yang dihasilkan kemudian diplot ke bagan untuk memungkinkan pedagang melihat data yang merapikan daripada berfokus pada fluktuasi harga sehari-hari yang melekat di semua pasar keuangan. Bentuk paling sederhana dari rata-rata bergerak, yang secara tepat dikenal sebagai moving average sederhana (SMA), dihitung dengan mengambil mean aritmetika dari serangkaian nilai yang diberikan. Misalnya, untuk menghitung rata-rata pergerakan 10 hari dasar, Anda akan menambahkan harga penutupan dari 10 hari terakhir dan kemudian membagi hasil dengan 10. Pada Gambar 1, jumlah harga selama 10 hari terakhir (110) adalah Dibagi dengan jumlah hari (10) sampai pada rata-rata 10 hari. Jika trader ingin melihat rata-rata 50 hari, jenis perhitungan yang sama akan dilakukan, tapi itu akan mencakup harga selama 50 hari terakhir. Rata-rata yang dihasilkan di bawah (11) memperhitungkan 10 data terakhir untuk memberi gambaran kepada pedagang tentang bagaimana harga aset dibandingkan dengan 10 hari terakhir. Mungkin Anda bertanya-tanya mengapa pedagang teknis menyebut alat ini sebagai moving average dan bukan hanya mean biasa. Jawabannya adalah bahwa saat nilai baru tersedia, titik data tertua harus dikeluarkan dari himpunan dan titik data baru harus masuk untuk menggantikannya. Dengan demikian, kumpulan data terus bergerak untuk memperhitungkan data baru saat tersedia. Metode perhitungan ini memastikan bahwa hanya informasi terkini yang dipertanggungjawabkan. Pada Gambar 2, setelah nilai 5 yang baru ditambahkan ke himpunan, kotak merah (mewakili 10 titik data terakhir) bergerak ke kanan dan nilai terakhir 15 dijatuhkan dari perhitungan. Karena nilai yang relatif kecil dari 5 menggantikan nilai tinggi 15, Anda akan mengharapkan untuk melihat rata-rata penurunan data, yang terjadi pada kasus ini dari 11 menjadi 10. Rata-rata Moving Averages Like Once MA telah dihitung, mereka diplot ke grafik dan kemudian terhubung untuk menciptakan garis rata-rata bergerak. Garis melengkung ini biasa ditemukan pada grafik pedagang teknis, tapi bagaimana penggunaannya dapat bervariasi secara drastis (lebih lanjut tentang ini nanti). Seperti yang dapat Anda lihat pada Gambar 3, adalah mungkin untuk menambahkan lebih dari satu moving average ke setiap grafik dengan menyesuaikan jumlah periode waktu yang digunakan dalam perhitungan. Garis melengkung ini mungkin tampak mengganggu atau membingungkan pada awalnya, tapi Anda akan terbiasa dengan mereka seiring berjalannya waktu. Garis merah hanyalah harga rata-rata selama 50 hari terakhir, sedangkan garis biru adalah harga rata-rata selama 100 hari terakhir. Sekarang setelah Anda memahami apa itu rata-rata pergerakan dan tampilannya, perkenalkan jenis rata-rata bergerak yang berbeda dan periksa bagaimana perbedaannya dengan rata-rata bergerak sederhana yang disebutkan sebelumnya. Rata-rata pergerakan sederhana sangat populer di kalangan pedagang, namun seperti semua indikator teknis, memang ada kritiknya. Banyak orang berpendapat bahwa kegunaan SMA terbatas karena setiap titik dalam rangkaian data berbobot sama, terlepas dari mana hal itu terjadi dalam urutannya. Kritikus berpendapat bahwa data terbaru lebih signifikan daripada data yang lebih tua dan harus memiliki pengaruh lebih besar pada hasil akhir. Sebagai tanggapan atas kritik ini, para pedagang mulai memberi bobot lebih pada data terakhir, yang sejak saat ini menyebabkan penemuan berbagai jenis rata-rata baru, yang paling populer adalah moving average eksponensial (EMA). (Untuk bacaan lebih lanjut, lihat Dasar-Dasar Rata-rata Bergerak Rata-rata dan Perbedaan antara SMA dan EMA) Exponential Moving Average Rata-rata pergerakan eksponensial adalah jenis rata-rata bergerak yang memberi bobot lebih pada harga terakhir dalam upaya untuk membuatnya lebih responsif. Untuk informasi baru Mempelajari persamaan yang agak rumit untuk menghitung EMA mungkin tidak perlu bagi banyak pedagang, karena hampir semua paket charting melakukan perhitungan untuk Anda. Namun, bagi Anda ahli matematika matematika di luar sana, inilah persamaan EMA: Bila menggunakan rumus untuk menghitung titik pertama EMA, Anda mungkin memperhatikan bahwa tidak ada nilai yang tersedia untuk digunakan sebagai EMA sebelumnya. Masalah kecil ini bisa diatasi dengan memulai perhitungan dengan simple moving average dan melanjutkan dengan rumus di atas dari sana. Kami telah menyediakan contoh spreadsheet yang mencakup contoh kehidupan nyata tentang bagaimana menghitung rata-rata bergerak sederhana dan rata-rata pergerakan eksponensial. Perbedaan Antara EMA dan SMA Sekarang setelah Anda memiliki pemahaman yang lebih baik tentang bagaimana SMA dan EMA dihitung, mari kita lihat bagaimana rata-rata ini berbeda. Dengan melihat perhitungan EMA, Anda akan melihat bahwa penekanan lebih banyak ditempatkan pada titik data terkini, menjadikannya sebagai jenis rata-rata tertimbang. Pada Gambar 5, jumlah periode waktu yang digunakan pada masing-masing rata-rata identik (15), namun EMA merespons lebih cepat terhadap perubahan harga. Perhatikan bagaimana EMA memiliki nilai lebih tinggi saat harga naik, dan jatuh lebih cepat dari pada SMA saat harga sedang menurun. Responsivitas inilah yang menjadi alasan utama mengapa banyak trader lebih memilih untuk menggunakan EMA di atas SMA. Apa arti Hari yang Berbeda Berarti Moving averages adalah indikator yang benar-benar dapat disesuaikan, yang berarti bahwa pengguna dapat dengan bebas memilih jangka waktu yang mereka inginkan saat membuat rata-rata. Periode waktu paling umum yang digunakan dalam moving averages adalah 15, 20, 30, 50, 100 dan 200 hari. Semakin pendek rentang waktu yang digunakan untuk menciptakan rata-rata, semakin sensitif akan perubahan harga. Semakin lama rentang waktu, kurang sensitif, atau lebih merapikan, rata-rata akan. Tidak ada kerangka waktu yang tepat untuk digunakan saat mengatur rata-rata bergerak Anda. Cara terbaik untuk mengetahui mana yang paling sesuai untuk Anda adalah bereksperimen dengan sejumlah periode waktu yang berbeda sampai Anda menemukan strategi yang sesuai dengan strategi Anda. Moving Averages: Bagaimana Menggunakannya?

No comments:

Post a Comment