Friday 14 July 2017

Moving Average Strategy Backtest


Moving Averages: Strategi 13 Oleh Casey Murphy. Analis Senior ChartAdvisor Investor yang berbeda menggunakan moving averages untuk berbagai alasan. Beberapa menggunakannya sebagai alat analisis utama mereka, sementara yang lain hanya menggunakannya sebagai pembangun kepercayaan untuk mendukung keputusan investasi mereka. Pada bagian ini, hadir dengan baik beberapa jenis strategi yang berbeda - menggabungkannya ke dalam gaya trading Anda terserah Anda Crossover Crossover adalah jenis sinyal yang paling dasar dan disukai di antara banyak pedagang karena menghilangkan semua emosi. Jenis crossover yang paling mendasar adalah ketika harga aset berpindah dari satu sisi rata-rata bergerak dan ditutup di sisi lain. Crossover harga digunakan oleh trader untuk mengidentifikasi pergeseran momentum dan dapat digunakan sebagai strategi masuk atau keluar dasar. Seperti yang dapat Anda lihat pada Gambar 1, sebuah salib di bawah rata-rata bergerak dapat menandakan dimulainya tren turun dan kemungkinan akan digunakan oleh pedagang sebagai sinyal untuk menutup posisi lama yang ada. Sebaliknya, titik di atas rata-rata bergerak dari bawah mungkin menunjukkan awal dari sebuah tren kenaikan baru. Tipe kedua crossover terjadi ketika rata-rata jangka pendek melewati rata-rata jangka panjang. Sinyal ini digunakan oleh pedagang untuk mengidentifikasi bahwa momentum bergeser ke satu arah dan pergerakan yang kuat cenderung mendekati. Sinyal beli dihasilkan ketika rata-rata jangka pendek melintasi di atas rata-rata jangka panjang, sementara sinyal jual dipicu oleh persimpangan rata-rata jangka pendek di bawah rata-rata jangka panjang. Seperti yang dapat Anda lihat dari grafik di bawah ini, sinyal ini sangat objektif, itulah sebabnya mengapa sangat populer. Triple Crossover dan Moving Average Ribbon Rata-rata pergerakan tambahan dapat ditambahkan ke grafik untuk meningkatkan validitas sinyal. Banyak pedagang akan menempatkan rata-rata pergerakan lima, 10, dan 20 hari ke dalam grafik dan menunggu sampai rata-rata lima hari melewati yang lain ini umumnya adalah tanda beli utama. Menunggu rata-rata 10 hari untuk menyeberang di atas rata-rata 20 hari sering dijadikan konfirmasi, sebuah taktik yang sering mengurangi jumlah sinyal palsu. Meningkatnya jumlah moving averages, seperti yang terlihat pada metode triple crossover, adalah salah satu cara terbaik untuk mengukur kekuatan tren dan kemungkinan tren akan berlanjut. Ini menimbulkan pertanyaan: Apa yang akan terjadi jika Anda terus menambahkan rata-rata bergerak Beberapa orang berpendapat bahwa jika satu rata-rata bergerak berguna, maka 10 atau lebih harus lebih baik lagi. Ini membawa kita ke teknik yang dikenal sebagai pita rata-rata bergerak. Seperti yang dapat Anda lihat dari grafik di bawah ini, banyak rata-rata bergerak ditempatkan pada bagan yang sama dan digunakan untuk menilai kekuatan dari tren saat ini. Bila semua rata-rata bergerak bergerak ke arah yang sama, tren dikatakan kuat. Pembalikan dikonfirmasi saat rata-rata melintang dan menuju ke arah yang berlawanan. Ketanggapan terhadap perubahan kondisi dihitung dengan jumlah periode waktu yang digunakan dalam moving averages. Semakin pendek periode waktu yang digunakan dalam perhitungan, semakin sensitif rata-ratanya terhadap sedikit perubahan harga. Salah satu pita yang paling umum dimulai dengan rata-rata pergerakan 50 hari dan menambahkan rata-rata dalam kenaikan 10 hari sampai rata-rata akhir 200. Rata-rata jenis ini bagus untuk mengidentifikasi tren turun jangka panjang. Filter Filter adalah teknik yang digunakan dalam analisis teknis untuk meningkatkan kepercayaan diri terhadap suatu perdagangan tertentu. Sebagai contoh, banyak investor dapat memilih untuk menunggu sampai sebuah persimpangan keamanan di atas rata-rata bergerak dan paling sedikit 10 di atas rata-rata sebelum melakukan pemesanan. Ini adalah upaya untuk memastikan crossover valid dan untuk mengurangi jumlah sinyal palsu. Kelemahan dari mengandalkan filter terlalu banyak adalah beberapa keuntungan diberikan dan hal itu bisa menyebabkan perasaan seperti Anda merindukan kapal. Perasaan negatif ini akan menurun seiring berjalannya waktu karena Anda selalu menyesuaikan kriteria yang digunakan untuk filter Anda. Tidak ada aturan atau hal yang harus diwaspadai saat menyaringnya hanya alat tambahan yang memungkinkan Anda berinvestasi dengan percaya diri. Moving Average Envelope Strategi lain yang menggabungkan penggunaan moving averages dikenal sebagai amplop. Strategi ini melibatkan merencanakan dua band di sekitar rata-rata bergerak, terhuyung-huyung oleh tingkat persentase tertentu. Misalnya, pada bagan di bawah, sebuah amplop 5 ditempatkan di sekitar rata-rata pergerakan 25 hari. Pedagang akan melihat band-band ini untuk melihat apakah mereka bertindak sebagai daerah pendukung atau resistance kuat. Perhatikan bagaimana pergerakannya sering membalikkan arah setelah mendekati salah satu level. Sebuah pergerakan harga di luar band dapat menandakan masa kelelahan, dan pedagang akan melihat pembalikan menuju rata-rata tengahnya. Mengikuti Crossover Rata-rata Bergerak dengan Python dengan panda. Pada artikel sebelumnya tentang Penelitian Backtesting Environments Dengan Python Dengan Panda kita menciptakan sebuah objek. Berorientasi pada penelitian backtesting lingkungan dan diuji pada strategi peramalan acak. Pada artikel ini kami akan menggunakan mesin yang kami perkenalkan untuk melakukan penelitian mengenai strategi aktual, yaitu Moving Average Crossover on AAPL. Strategi Crossover Average Crossover Teknik Moving Average Crossover adalah strategi momentum simplistik yang sangat terkenal. Hal ini sering dianggap sebagai contoh Hello World untuk perdagangan kuantitatif. Strategi yang digariskan di sini hanya panjang saja. Dua filter rata-rata bergerak sederhana yang terpisah dibuat, dengan berbagai periode waktu tunggu, dari rangkaian waktu tertentu. Sinyal untuk membeli aset terjadi ketika moving average moving average lebih pendek rata-rata bergerak rata-rata. Jika rata-rata yang lebih lama kemudian melebihi rata-rata yang lebih pendek, aset tersebut dijual kembali. Strategi ini berjalan dengan baik ketika deret waktu memasuki periode tren yang kuat dan kemudian perlahan membalikkan tren. Untuk contoh ini, saya telah memilih Apple, Inc. (AAPL) sebagai rangkaian waktu, dengan tampilan singkat 100 hari dan tampilan balik 400 hari yang panjang. Ini adalah contoh yang disediakan oleh zipline algorithmic trading library. Jadi jika kita ingin menerapkan backtester kita sendiri, kita perlu memastikan bahwa itu sesuai dengan hasil di zipline, sebagai sarana dasar untuk melakukan validasi. Implementasi Pastikan mengikuti tutorial sebelumnya disini. Yang menggambarkan bagaimana hirarki objek awal untuk backtester dibangun, jika kode di bawah ini tidak akan berhasil. Untuk implementasi khusus ini saya menggunakan library berikut: Implementasi macross. py membutuhkan backtest. py dari tutorial sebelumnya. Langkah pertama adalah mengimpor modul dan objek yang diperlukan: Seperti pada tutorial sebelumnya, kita akan mengelompokkan kelas dasar Strategi abstrak untuk menghasilkan MovingAverageCrossStrategy. Yang berisi semua rincian tentang bagaimana menghasilkan sinyal saat rata-rata bergerak AAPL saling silang. Objek membutuhkan shortwindow dan longwindow untuk beroperasi. Nilai telah ditetapkan ke default masing-masing 100 hari dan 400 hari, yang merupakan parameter yang sama yang digunakan pada contoh utama zipline. Rata-rata bergerak dibuat dengan menggunakan fungsi rollingmanan pandas pada harga penutupan barClose dari saham AAPL. Setelah rata-rata pergerakan individu telah dibangun, Seri sinyal dihasilkan dengan menetapkan kolom sebesar 1,0 bila rata-rata bergerak pendek lebih besar daripada rata-rata bergerak yang panjang, atau 0,0 sebaliknya. Dari posisi inilah pesanan bisa dihasilkan untuk mewakili sinyal trading. MarketOnClosePortfolio adalah subkelas dari Portofolio. Yang ditemukan di backtest. py. Hal ini hampir sama dengan implementasi yang dijelaskan di tutorial sebelumnya, dengan pengecualian bahwa perdagangan sekarang dilakukan secara Close-to-Close, bukan Open-to-Open. Untuk rincian tentang bagaimana objek Portofolio didefinisikan, lihat tutorial sebelumnya. Saya telah meninggalkan kode ini untuk kelengkapan dan menjaga agar tutorial ini tetap mandiri: Setelah kelas MovingAverageCrossStrategy dan MarketOnClosePortfolio telah ditetapkan, fungsi utama akan dipanggil untuk mengikat semua fungsi bersama-sama. Selain itu kinerja strategi akan diperiksa melalui sebidang kurva ekuitas. Objek pandas DataReader mendownload harga OHLCV dari saham AAPL untuk periode 1 Januari 1990 sampai 1 Januari 2002, pada saat mana sinyal DataFrame dibuat untuk menghasilkan sinyal lama. Selanjutnya portofolio dihasilkan dengan basis modal awal 100.000 USD dan imbal hasil dihitung pada kurva ekuitas. Langkah terakhir adalah menggunakan matplotlib untuk merencanakan plot dua gambar dari harga AAPL, yang dilapisi dengan rata-rata bergerak dan sinyal buysell, serta kurva ekuitas dengan sinyal buysell yang sama. Kode pemodelan diambil (dan dimodifikasi) dari contoh penerapan zipline. Output grafis dari kode tersebut adalah sebagai berikut. Saya menggunakan perintah paste IPython untuk memasukkan ini langsung ke konsol IPython saat berada di Ubuntu, sehingga output grafis tetap terlihat. The upticks merah muda mewakili pembelian saham, sedangkan downticks hitam mewakili menjual kembali: Seperti dapat dilihat strategi kehilangan uang selama periode, dengan lima perdagangan round-trip. Hal ini tidak mengherankan mengingat perilaku AAPL selama periode tersebut, yang pada tren sedikit menurun, diikuti oleh kenaikan yang signifikan yang dimulai pada tahun 1998. Periode lookback dari sinyal rata-rata bergerak agak besar dan ini berdampak pada keuntungan perdagangan akhir , Yang sebaliknya mungkin telah membuat strategi menguntungkan. Dalam artikel selanjutnya kita akan menciptakan cara yang lebih canggih untuk menganalisis kinerja, serta menggambarkan bagaimana mengoptimalkan periode lookback dari sinyal rata-rata bergerak individual. Memulai dengan Quantitative Trading Secara tipikal, dua moving averages dapat digunakan untuk membuat strategi forex (EA untuk MT4) dengan aturan berikut: Buy ketika moving average bergerak rata-rata berada di atas moving average moving average Sell bila moving average jangka panjang di atas Moving average periode pendek Pada grafik berikut dari Terminal MetaTrader, garis kuning adalah moving average periode pendek (Period9) dan garis merah adalah moving average jangka panjang (Periode 18). Menyadari grafik, kita bisa menulis ulang aturan trading atau sinyal forex seperti: Beli bila garis kuning berada di atas garis merah Jual bila garis kuning berada di bawah garis merah Alih-alih menghabiskan waktu lama mengkodekan strategi forex ini, dengan Molanis Strategy Builder Anda dapat membuat diagram perdagangan yang mewakili strategi rata-rata bergerak dalam beberapa menit. Cukup seret dan lepaskan dua blok Analisis Teknis, satu blok Beli dan satu blok Jual. Hubungkan mereka dan atur parameter blok untuk mendapatkan diagram seperti berikut ini: Diagram perdagangan ini memiliki dua jalur perdagangan. Yang kiri disorot. Ini berjalan dari blok START ke blok END. Orang bisa membacanya seperti: Beli 1 lot EURCAD (dengan 100 pip Take Profit dan 50 pip Stop Loss) ketika moving average moving average (9) berada di atas moving average moving average (18). Ingatlah untuk membaca diagram perdagangan dalam arah yang berlawanan dengan arus perdagangan. Jalur perdagangan yang benar bisa dibaca sebagai: Jual 1 lot EURCAD (dengan 100 pip Take Profit dan 50 pip Stop Loss) bila moving average jangka panjang (18) berada di atas moving average moving average (9). Membangkitkan kode MQL untuk MetaTrader hanya dengan satu klik Pada Diagram Diagram Trading, klik Menghasilkan Kode MQL4 untuk mendapatkan jendela Kode MQL4. Molanis Strategy Builder memungkinkan Anda untuk membuka expert advisor Anda secara langsung dengan MetaTrader atau menyimpannya sebagai file MQ4. Jangan lewatkan tutorial video kami

No comments:

Post a Comment