Tuesday 8 August 2017

Kode matrik eksponensial moving average


Dengan menggunakan MATLAB, bagaimana saya dapat menemukan rata-rata pergerakan hari ke-3 dari kolom matriks tertentu dan menambahkan rata-rata bergerak ke matriks tersebut. Saya mencoba menghitung rata-rata pergerakan 3 hari dari bawah ke atas matriks. Saya telah memberikan kode saya: Dengan matriks dan topeng berikut ini: Saya telah mencoba menerapkan perintah konv tapi saya menerima kesalahan. Inilah perintah konv yang saya coba gunakan pada kolom ke 2 matriks a: Output yang saya inginkan diberikan dalam matriks berikut: Jika Anda memiliki saran, saya akan sangat menghargainya. Terima kasih Untuk kolom 2 dari matriks a, saya menghitung rata-rata pergerakan 3 hari sebagai berikut dan menempatkan hasilnya pada kolom 4 dari matriks a (saya mengganti nama matriks sebagai 39desiredOutput39 hanya untuk ilustrasi). Rata-rata 3 hari dari 17, 14, 11 adalah 14 rata-rata 3 hari 14, 11, 8 adalah 11 rata-rata 3 hari 11, 8, 5 adalah 8 dan rata-rata 3 hari 8, 5, 2 adalah 5. Tidak ada nilai di baris 2 bawah untuk kolom ke-4 karena penghitungan untuk rata-rata pergerakan 3 hari dimulai dari bawah. Hasil 39valid39 tidak akan ditampilkan sampai setidaknya 17, 14, dan 11. Mudah-mudahan ini masuk akal ndash Aaron 12 Jun 13 at 1:28 Secara umum akan membantu jika Anda menunjukkan kesalahannya. Dalam hal ini Anda melakukan dua hal yang salah: Pertama, konvolusi Anda perlu dibagi tiga (atau panjang rata-rata bergerak) Kedua, perhatikan ukuran c. Anda tidak bisa hanya cocok c ke a. Cara khas untuk mendapatkan rata-rata bergerak adalah dengan menggunakan yang sama: tapi itu tidak seperti yang Anda inginkan. Sebagai gantinya Anda terpaksa menggunakan beberapa baris: Pada dasarnya saya memiliki sejumlah nilai seperti ini: Array di atas disederhanakan, saya mengumpulkan 1 nilai per milidetik dalam kode sebenarnya dan saya perlu mengolah keluaran pada algoritma yang saya tulis untuk Temukan puncak terdekat sebelum titik 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 menjadi 0,24 sebelum itu. Tujuannya 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: Id seperti hasil saya melengkung, tidak bergerigi) Saya telah diberitahu untuk menerapkan filter rata-rata bergerak eksponensial ke nilai-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 bertanya pada 8 Februari 12 di 20:27 Untuk menghitung rata-rata pergerakan eksponensial. Anda perlu menyimpan beberapa keadaan di sekitar dan Anda memerlukan parameter penyetelan. Ini memerlukan kelas kecil (dengan asumsi Anda menggunakan Java 5 atau yang lebih baru): Instantiate dengan parameter peluruhan yang Anda inginkan (mungkin mengambil tuning harus antara 0 dan 1) dan kemudian gunakan rata-rata () untuk memfilter. Saat membaca sebuah halaman tentang beberapa kekambuhan mathmatical, semua yang Anda benar-benar perlu ketahui saat mengubahnya menjadi kode adalah matematikawan suka menulis indeks menjadi array dan urutan dengan subskrip. (Beberapa notasi lain juga, yang tidak membantu). Namun, EMA cukup sederhana karena Anda hanya perlu mengingat satu nilai lama tanpa susunan negara yang rumit. Jawab Feb 8 12 jam 20:42 TKKocheran: Cukup banyak. Tidak masalah jika hal-hal sederhana (Jika dimulai dengan urutan baru, dapatkan rata-rata baru.) Perhatikan bahwa beberapa istilah pertama dalam urutan rata-rata akan melompat sedikit karena efek batas, namun Anda mendapatkan yang lain dengan rata-rata bergerak lainnya. terlalu. Namun, keuntungan yang bagus adalah Anda dapat membungkus logika rata-rata bergerak menjadi rata-rata dan bereksperimen tanpa mengganggu keseluruhan program Anda. Ndash Donal Fellows Feb 9 12 at 0:06 Saya mengalami kesulitan untuk memahami pertanyaan Anda, tapi saya akan mencoba menjawabnya juga. 1) Jika algoritma Anda menemukan 0,25 bukan 0,36, maka itu salah. Ini salah karena mengasumsikan kenaikan atau penurunan monotonik (yang selalu naik atau selalu turun). Kecuali Anda rata-rata SEMUA data Anda, poin data Anda --- seperti yang Anda sampaikan - tidak bersifat nonlinier. Jika Anda benar-benar ingin menemukan nilai maksimum antara dua titik dalam waktu, maka iris array Anda dari tmin ke tmax dan temukan maks dari subarray itu. 2) Sekarang, konsep moving averages sangat sederhana: bayangkan bahwa saya memiliki daftar berikut: 1.4, 1.5, 1.4, 1.5, 1.5. Saya bisa 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 (angka kedua dan pertama) yang kedua (daftar baru) adalah rata-rata 1,4 dan 1,5 (daftar ketiga dan kedua) yang ketiga (daftar baru) rata-rata 1,5 dan 1,4 (Keempat dan ketiga), dan seterusnya. Saya bisa membuatnya periode tiga atau empat, atau n. Perhatikan bagaimana datanya jauh lebih mulus. Cara yang baik untuk melihat moving averages di tempat kerja adalah pergi ke Google Finance, pilih saham (coba Tesla Motors cukup mudah menguap (TSLA)) dan klik pada bagian teknis di bagian bawah grafik. Pilih Moving Average dengan periode tertentu, dan moving average eksponensial untuk membandingkan perbedaannya. Rata-rata pergerakan eksponensial hanyalah penjabaran lain dari hal ini, namun bobot data yang lebih tua kurang dari data baru ini adalah cara untuk meratakan perataan ke arah belakang. Silahkan baca entri Wikipedia. Jadi, ini lebih merupakan komentar daripada sebuah jawaban, tapi kotak komentar kecil itu hanya untuk mungil. Semoga berhasil. Jika Anda mengalami masalah dengan matematika, Anda bisa pergi dengan rata-rata bergerak sederhana daripada eksponensial. Jadi output yang Anda dapatkan akan menjadi hal 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 5 persyaratan terakhir saat Anda berada di titik data kedua Anda. Juga, ada cara yang lebih efisien untuk menghitung rata-rata pergerakan ini (jumlah penjumlah - tertua terbaru), namun ini adalah untuk mendapatkan konsep tentang apa yang terjadi. Jawab 8 Feb 12 12 di 20: 41Emplementasi Bergerak Rata-rata - EMA BREAKING DOWN Exponential Moving Average - EMA EMA 12 dan 26 hari adalah rata-rata jangka pendek yang paling populer, dan indikator tersebut digunakan untuk menciptakan indikator seperti konvergensi konvergensi rata-rata bergerak ( MACD) dan persentase harga osilator (PPO). Secara umum, EMA 50 dan 200 hari digunakan sebagai sinyal tren jangka panjang. Pedagang yang menggunakan analisis teknis menemukan rata-rata bergerak sangat berguna dan berwawasan bila diterapkan dengan benar namun menimbulkan malapetaka jika digunakan dengan tidak semestinya atau disalahartikan. Semua rata-rata bergerak yang umum digunakan dalam analisis teknis adalah, pada dasarnya, indikator lagging. Akibatnya, kesimpulan yang diambil dari penerapan rata-rata bergerak ke bagan pasar tertentu adalah untuk mengkonfirmasi pergerakan pasar atau untuk menunjukkan kekuatannya. Sangat sering, pada saat garis indikator rata-rata bergerak membuat perubahan untuk mencerminkan pergerakan yang signifikan di pasar, titik optimal masuk pasar telah berlalu. EMA memang berfungsi untuk mengurangi dilema ini sampai batas tertentu. Karena perhitungan EMA menempatkan lebih banyak bobot pada data terbaru, ia memeluk tindakan harga sedikit lebih ketat dan karena itu bereaksi lebih cepat. Hal ini diinginkan bila EMA digunakan untuk mendapatkan sinyal masuk perdagangan. Menafsirkan EMA Seperti semua indikator rata-rata bergerak, tren ini jauh lebih sesuai untuk pasar tren. Bila pasar berada dalam uptrend yang kuat dan berkelanjutan. Garis indikator EMA juga akan menunjukkan tren naik dan sebaliknya untuk tren turun. Pedagang yang waspada tidak hanya memperhatikan arah garis EMA tapi juga hubungan tingkat perubahan dari satu bar ke bar berikutnya. Misalnya, karena aksi harga dari uptrend yang kuat mulai merata dan membalikkan, tingkat perubahan EMA dari satu batang ke bar berikutnya akan mulai berkurang sampai saat garis indikator rata dan tingkat perubahannya nol. Karena efek lagging, pada titik ini, atau bahkan beberapa bar sebelumnya, tindakan harga seharusnya sudah berbalik arah. Oleh karena itu, mengikuti bahwa penurunan yang konsisten secara konsisten dalam perubahan EMA dapat digunakan sebagai indikator yang dapat mengatasi dilema yang disebabkan oleh efek lagging moving averages. Kegunaan Umum EMA EMA biasanya digunakan bersamaan dengan indikator lain untuk mengkonfirmasi pergerakan pasar yang signifikan dan untuk mengukur validitasnya. Bagi pedagang yang berdagang intraday dan pasar yang bergerak cepat, EMA lebih bisa diterapkan. Cukup sering trader menggunakan EMA untuk menentukan bias trading. Misalnya, jika EMA pada grafik harian menunjukkan tren kenaikan yang kuat, strategi pedagang intraday mungkin hanya diperdagangkan dari sisi panjang pada grafik intraday.

No comments:

Post a Comment