Tuesday 1 August 2017

Testing A Trading System


Trading Systems Coding: Testing, Troubleshooting and Optimizing Sekarang Anda memiliki sistem perdagangan yang dirancang dan diberi kode, sekarang saatnya untuk mengujinya untuk memastikan bahwa pengkodean Anda bebas dari kesalahan logis dan teknis. Kami juga akan melihat sesuatu yang dikenal sebagai optimasi - sebuah fitur dalam beberapa program perdagangan yang memungkinkan Anda mengatur peraturan perdagangan agar sesuai dengan stok yang Anda rencanakan untuk diperdagangkan. Menguji Sistem Perdagangan Anda Sebagian besar aplikasi perdagangan yang mendukung bahasa pemrograman juga mendukung alat pengujian. Alat ini dibagi menjadi dua kategori: 1. Alat uji teknis teknis mencari kesalahan teknis dalam kode Anda. Misalnya, jika Anda lupa menambahkan titik koma setelah sebuah pernyataan, alat uji teknis akan memberi tahu Anda bahwa pernyataan Anda tidak valid. Lokasi alat uji teknis tergantung pada aplikasi perdagangan yang digunakan. MetaTrader menampilkan kesalahan atau hasil yang salah saat Anda mencoba mengkompilasi kode Anda, sementara memperdagangkan aplikasi seperti Tradecision memiliki utilitas cek kode yang terpasang pada antarmuka yang memungkinkan Anda memeriksa kesalahan kode sebelum menerapkannya. 2. Alat uji Logika Logis mencari kesalahan logis dalam kode Anda. Misalnya, jika Anda menggunakan tanda lebih besar daripada tanda ganti huruf di bawah (yang bukan kesalahan teknis), alat uji logis akan menunjukkan bahwa hasil Anda tidak masuk akal. Alat pengujian logis yang paling populer adalah alat backtesting. Alat ini memungkinkan Anda untuk mengambil data masa lalu dan menerapkan sistem trading Anda ke data tersebut. Ini memberi Anda gambaran tentang hal berikut: Apakah sistem perdagangan Anda menguntungkan? 13 Kondisi apa yang terbukti paling menguntungkan 13 Jika ada kesalahan dalam peraturan Anda? (Untuk informasi lebih lanjut, lihat Backtesting: Menafsirkan Masa Lalu.) Mengatasi Masalah Perdagangan Anda Sistem Seperti halnya jenis pemrograman lainnya, pemecahan masalah bisa menjadi tugas yang membosankan dan sulit. Menemukan kesalahan dalam kode Anda memerlukan penyortiran secara sistematis melalui kode Anda untuk mengidentifikasi kesalahan sintaksis, walaupun seringkali kecil, dapat menghentikan program Anda. Berikut adalah beberapa kesalahan umum yang harus dicari: Titik koma yang tidak ada setelah pernyataan - Ini harus dilakukan setelah setiap pernyataan. 13 Variabel yang tidak ditentukan - Ingat bahwa Anda harus menyatakannya sebelum menggunakannya 13. Kesalahan ejaan - Jika ada nama atau fungsi yang salah dieja, aplikasi perdagangan akan mengembalikan kesalahan (lihat contoh di bawah). 13 Penggunaan salah () - Ingat bahwa memberikan satu nilai ke nilai lain, sedangkan berarti sama dengan. 13 Penggunaan fungsi built-in yang salah - Konsultasikan dokumentasi aplikasi trading atau antarmuka pemrograman aplikasi Anda (API) untuk memastikan Anda menggunakan sintaks yang benar. Beberapa aplikasi perdagangan berisi fitur yang akan membiarkan Anda menguji kode Anda sebelum menggunakan atau mengkompilasinya. Fitur ini memungkinkan Anda untuk melihat apa kesalahan itu dan pada garis yang dapat ditemukan. Ambil Tradecision misalnya: Di sini kita dapat melihat bahwa Tradecision memberi kita lokasi (garis dan kolom) dari kesalahan, deskripsi kesalahan dan jenis kesalahan (dalam hal ini, sintaksisnya). Jika kita melihat ungkapan, kita dapat melihat bahwa di kolom 8 xrossBelow bukanlah fungsi yang valid. Jika kita mengganti x (yang ada di kolom 8) dengan huruf c, maka kita akan memiliki kode yang valid. Jika kita melihat MetaTrader, kita dapat melihat bahwa kesalahan muncul saat kita mencoba mengkompilasi program: Di sini kita dapat melihat bahwa dalam deskripsi yang dikatakan variabel BuyNow tidak didefinisikan. Double klik pada pesan kesalahan ini akan membawa kita ke lokasi spesifik dari kesalahan dalam kode. Seperti yang Anda lihat, sebagian besar aplikasi perdagangan memberi Anda cara mudah untuk menemukan kesalahan teknis dan memperbaikinya. Memperbaiki kesalahan hanya melibatkan secara sistematis melalui setiap pesan kesalahan dan kemudian mengkompilasi ulang kode andor menerapkan sistem perdagangan ke grafik Anda. Mengoptimalkan Sistem Perdagangan Anda Beberapa aplikasi perdagangan membiarkan Anda memilih variabel yang akan dioptimalkan. Tradecision, misalnya, memungkinkan Anda dengan mudah memilih variabel dan menggantinya dengan kode yang akan mencoba optimasi. Optimalisasi itu sendiri hanyalah sebuah proses yang menemukan nilai optimal untuk elemen sistem perdagangan tertentu berdasarkan hasil dan kinerja masa lalu. Perhatikan bahwa hasil optimasi berlebihan dalam sistem perdagangan yang tidak dapat menyesuaikan diri dengan kondisi pasar, penting untuk hanya mengoptimalkan beberapa variabel penting, tidak setiap variabel Berikut adalah fitur pengoptimalan seperti pada Tradecision: Anda dapat melihat bahwa kami menyatakan Dua variabel baru dan set sama dengan. Artinya program trading akan mengganti ini dengan jumlah optimal. Selanjutnya, Anda dapat melihat bahwa kami menggunakan variabel baru dalam strategi trading kami. Akhirnya, kami menetapkan rentang angka (sehingga program tidak akan mencari hingga tak terhingga). Beberapa program perdagangan lainnya memiliki fitur yang beroperasi dengan cara yang sama, memungkinkan Anda untuk mengganti nilai numerik dengan dan memberi tahu aplikasi perdagangan untuk mengoptimalkannya. Kesimpulan Sekarang Anda seharusnya telah mengembangkan sistem perdagangan kerja di mana Anda dapat memiliki kepercayaan diri. Di bagian selanjutnya dari seri ini, Anda akan belajar menerapkan sistem perdagangan Anda ke grafik dan bagaimana menggunakannya untuk membuat keputusan perdagangan9. Kembali Pengujian Seni pengujian kembali trading Seperti yang telah saya sebutkan sebelumnya, salah satu hal yang sangat saya sukai dari trading adalah, tidak seperti bisnis lainnya, Anda dapat sepenuhnya menguji model bisnis Anda (trading plan) tanpa mempertaruhkan uang sungguhan. Dalam trading, proses penilaian ini disebut back testing. Pengujian kilat adalah area yang sekarang paling terbengkalai oleh para pedagang. Saya telah berbicara tentang pentingnya manajemen psikologi dan uang di bab sebelumnya dan memiliki banyak pelatih perdagangan lainnya. Begitu banyak, sekarang ada perkumpulan informasi dan kesadaran disekitarnya. Anda hanya perlu menjelajah internet untuk melihat seberapa banyak fokus ditempatkan di area ini sebagaimana seharusnya. Tapi semua perhatian ini sepertinya mengorbankan pengujian kembali. Akibatnya dalam trading back testing, menurut saya, kini telah menjadi area trading yang paling baru dipahami dan dihargai. Mengapa pengujian kembali sangat penting Pengambilan kembali trading sangat penting karena berdampak langsung pada entri dan keluaran Anda, manajemen uang dan psikologi dengan cara berikut. Entri dan pengujian kembali memungkinkan Anda menguji keseluruhan kinerja sistem dengan menggunakan data historis. Dengan informasi itu, Anda bisa melakukan penyesuaian yang diperlukan untuk menghasilkan hasil yang Anda cari. Manajemen uang kembali pengujian memungkinkan Anda untuk menguji berbagai model manajemen uang untuk melihat mana yang terbaik dengan sistem Anda. Psikologi seperti yang telah dibahas sebelumnya dalam buku ini, memahami kekuatan dan kelemahan sistem Anda meskipun hanya ada di atas kertas akan meningkatkan kepercayaan trading Anda. Ini akan memiliki efek yang tak terhitung pada kinerja Anda saat Anda mulai berdagang secara nyata. Apa pun kriteria analisis teknis yang Anda gunakan untuk berdagang dengan baik itu bergerak rata-rata, kandar, kejatuhan volatilitas, retracemen Fibonacci atau sistem perdagangan lainnya yang perlu Anda uji kembali dengan seksama, untuk menghilangkan kemungkinan keraguan tentang kemampuannya. Tanpa melakukan trading back testing, kurangnya kepercayaan diri muncul dan biasanya memaksa trader mempertanyakan sistem trading mereka sendiri. Mereka menyerah pada godaan untuk mengubah rencana perdagangan mereka seringkali dengan konsekuensi yang menghancurkan. Godaan ini biasanya berasal dari serangkaian kehilangan perdagangan atau kesempatan untuk mengganti sistem perdagangan mereka dengan indikator jagoan baru yang merupakan mode terbaru yang dibahas di forum obrolan. Apa pun yang terdengar terlalu bagus untuk menjadi kenyataan akan menarik perhatian seorang pedagang yang tidak puas dengan sistem perdagangannya, hanya karena dia belum benar-benar menguji sistemnya sejak awal. Dia belum membangun kepercayaan diri yang diperlukan untuk berhasil menukar sistem yang telah dikembangkannya. Akankah strategi trading saya menguntungkan Ini adalah pertanyaan yang paling banyak ditanyakan di dunia trading. Penulis Mark Jurik telah berhasil menjawabnya dalam bukunya Computerized Trading, seperti yang ditunjukkan pada Kotak 9.1. Sumber: Jurik, M 1999, Perdagangan Terkomputerisasi: Memaksimalkan Perdagangan Hari dan Keuntungan Bermalam, New York Institute of Finance, New York. Tapi apa yang trading back testing persis Trading backtesting adalah proses pengujian strategi trading menggunakan data historis daripada mengujinya secara real time dengan uang sungguhan. Metrik yang diperoleh dari pengujian dapat digunakan sebagai indikasi seberapa baik strategi akan dilakukan jika diterapkan pada perdagangan masa lalu. Menafsirkan hasil ini kemudian memberi pedagang metrik yang cukup untuk menilai potensi sistem perdagangan. Logikanya, kita tahu bahwa hasil dari jenis pengujian ini tidak akan dapat memprediksi keuntungan masa depan dengan akurasi yang tepat, namun dapat memberikan indikator apakah Anda bahkan harus mengejar sistem perdagangan atau tidak. Terlebih lagi, jika Anda memutuskan untuk terus maju dan menukar sistem, ini akan memberi panduan tentang apa yang diharapkan. Tapi pertanyaannya tetap: bagaimana Anda bisa menguji kinerja sistem perdagangan dari waktu ke waktu Hanya ada dua cara untuk melakukannya secara manual atau dengan perangkat lunak komputer. Sejujurnya, perangkat lunak komputer adalah satu-satunya pilihan nyata. Saya telah mencoba kedua metode pengujian dan pengujian manual tidak hanya memakan waktu tapi sangat sulit untuk ditiru dan diuji secara efektif. Manfaat yang didapat dari trading backtesting software tidak bisa dibesar-besarkan. Ini akan menghemat waktu Anda dan memberi kesempatan tak terbatas untuk menyempurnakan dan menguji sistem Anda. Sebuah pengeluaran kecil di modal untuk membeli perangkat lunak pengujian balik yang baik akan berpotensi menyelamatkan ribuan Anda di pasar, ini adalah investasi yang sangat bijak jika Anda mempertimbangkan untuk merancang sistem perdagangan yang sukses dan mekanis. Uji balik mekanis Harap dipahami, selama sistem perdagangan mekanik Anda bekerja secara eksklusif dengan data harga (terbuka, tinggi, rendah, dekat, volume), Anda akan dapat menggunakan perangkat lunak pengujian ulang. Misalnya, katakanlah Anda membuat sistem perdagangan mekanis dengan aturan entri berikut: Aturan: Belilah keamanan saat rata-rata pergerakan harga penutupan 10 hari di atas rata-rata harga penutupan 30 hari dari harga penutupan. Aturan ini dapat diuji dengan mudah melalui data historis. Di sisi lain, peraturan sinyal pembelian Anda mungkin sedikit lebih rumit seperti: Aturan: Belilah keamanan saat rata-rata pergerakan 10 hari dari harga penutupan melintasi di atas rata-rata pergerakan 30 hari harga penutupan dan rasio PE 75 atau lebih rendah dari nilainya tiga bulan sebelumnya. Aturan ini mengenalkan data yang tidak sering dipasok atau dipelihara dalam database informasi harga. Untuk berhasil kembali menguji ini akan melibatkan perolehan data historis mengenai suatu keamanan serta rasio harga terhadap pendapatan (rasio PE). Biasanya, data historis pada kelompok ekuitas hanya mencakup tingkat terbuka, tinggi, rendah, dekat dan volume. Untuk setiap periode Karena keterbatasan ini, banyak sistem perdagangan mekanis dirancang dengan indikator teknis harga semata. Sayangnya sebagian besar sistem perdagangan mekanis berdasarkan data fundamental berada di luar cakupan investor ritel karena kurangnya data historis yang tersedia untuk melakukan uji perdagangan kembali yang lengkap. Perangkat lunak pengujian ulang Untungnya, akhir-akhir ini, banyak paket charting memiliki perangkat lunak pengujian ulang yang terpasang. Jika Anda mengikuti proses pemilihan paket charting di bab sebelumnya, Anda seharusnya sudah menemukan satu dengan kemampuan pengujian kembali yang disertakan atau menemukan yang kompatibel. Dengan paket off-the-shelf lainnya. Bagi Anda yang memutuskan untuk membeli MetaStock di Bab 8, tradeSim 8211 ultimate-trading-systemstradesim mungkin adalah simulatororanal yang paling realistis dan benar yang pernah saya temukan. Dengan cepat dapat kembali menguji dan mengevaluasi sistem perdagangan, baik keamanan tunggal atau portofolio keamanan ganda. Saya percaya bahwa tading back testing adalah satu-satunya cara untuk menghilangkan keraguan diri. Setelah Anda menetapkan bahwa Anda memiliki sistem perdagangan yang andal dan kuat, maka Anda akan yakin untuk memperdagangkannya. Demikian pula dengan perangkat lunak charting Anda, pastikan Anda tahu paket Anda kembali ke depan. Anda tidak akan bisa mendapatkan yang terbaik darinya kecuali Anda benar-benar mengerti cara kerjanya dan apa yang dapat Anda lakukan dengannya. Solusi Alternatif Sayangnya, saya telah melihat banyak klien yang tidak pernah mendapatkannya sehubungan dengan pengujian kembali. Bagi banyak orang, perangkat lunak pengujian ulang terlalu teknis. Jika Anda termasuk dalam kategori itu, jangan menyerah. Ini merupakan langkah kritis dalam proses perancangan sistem. Untuk yang kurang teknis, saya telah menemukan solusi yang disebut Trading Performance Analyzer ultimate-trading-systemstpa. Mudah digunakan dan sempurna untuk menganalisa sistem anda sebelum melakukan trading secara real time. Catatan penting: Jika Anda mendapati diri Anda melakukan pengujian dan pengujian ulang dengan harapan tersandung peluru perak itu, ingatlah, Anda tidak akan pernah menciptakan sistem perdagangan yang memiliki tingkat keberhasilan 100. Banyak yang telah mencoba (termasuk saya sendiri) dan semua orang telah gagal. Anda harus mencari sistem perdagangan yang bagus dengan penarikan minimal dan rasio rujukan yang bagus. Banyak sistem perdagangan memiliki lebih banyak kehilangan perdagangan daripada mereka menang namun mereka tetap menghasilkan uang. Bagaimana pengelolaan uang (Lihat Bab 6.) Bagian akhir dari teka-teki gambar desain sistem adalah mengambil sistem perdagangan yang telah Anda rancang di bab sebelumnya dan mengujinya. Dengan menguji sistem Anda, Anda baru saja memasukkan diri di antara 1 pedagang teratas, memastikan Kesuksesan anda Selamat Membeli paket pengujian kembali trading: TradeSim 8211 ultimate-trading-systemstradesim Trading Performance Analyzer 8211 ultimatetradingsystemstpa Pelajari perangkat lunak pengujian kembali pilihan Anda di dalam dan luar. Kembali tes sistem yang baru Anda dirancang termasuk aturan masuk, keluar, dan pengelolaan uang Anda. Sudahkah Anda memeriksa Portfolio123 Untuk 50 dolar per bulan, Anda memilah variabel fundamental dan teknis, mendukungnya kembali, melakukan pengecekan ketahanan (entri acak ratusan kali untuk memastikan Anda tidak memilih hasilnya), dan pengujian simulasi dengan peraturan pembelian dan penjualan terpisah. , Selip, alam semesta adat, bla, bla, bla. Anda bisa menggunakannya selama 45 hari sebagai percobaan gratis jika menggunakan kode HKURTIS saat mendaftar untuk mengujinya. Sebelum Portfolio123, saya pikir hanya Wizard Penelitian Zacks adalah alternatif biaya rendah 8211 tapi ratusan dolar untuk versi yang disiram turun, bias bertahan, dan masalah lainnya 8211 tidak, terima kasih. IMO perangkat lunak kelas institusional untuk sekitar 120 biaya. Jesuraj 7 Maret 2012 pukul 5:07 am Hi Dave, kebetulan saya membaca aritcle yang sangat bagus ini. Di Metastock, saya ingin membukukan keuntungan hanya separuh dari posisi saya dan saya tidak dapat menemukan cara untuk melakukan ini. Bisa tolong beritahu saya apakah pengujian semacam itu mungkin dilakukan di Metastock. Terima kasih dan salam JesurajHow untuk mendukung sistem perdagangan dan menghindari penyesuaian kurva Untuk menilai seberapa baik sistem perdagangan yang diberikan harus bekerja di masa depan, kami mendukungnya kembali pada data pasar masa lalu. Backtesting menerapkan seperangkat aturan perdagangan ke data historis untuk memperkirakan bagaimana peraturan tersebut akan dilakukan jika kita benar-benar telah memperdagangkannya. Hasil historis hipotetis yang baik tidak menjamin bahwa seperangkat aturan akan berjalan dengan baik di masa depan. Namun, hasil historis hipotetis yang buruk hampir pasti berarti sebuah sistem tidak boleh diperdagangkan secara real time. Nilai yang dirasakan dari backtesting berakar pada kepercayaan bahwa kecenderungan historis berulang. Pedagang telah menguji strategi data historis dari generasi ke generasi. Namun, praktiknya menjadi populer seiring dengan munculnya komputer pribadi dan perangkat lunak pengujian sistem yang dibangun khusus. Seperti System Writer, yang berkembang menjadi TradeStation. Perangkat lunak ini dan database data historis memungkinkan mereka yang tidak memiliki latar belakang penulisan kode untuk menguji gagasan sistem perdagangan. Pemahaman dan penerimaan sistem perdagangan yang lebih luas, serta frustrasi yang banyak ditemui saat mencoba membangun sistem perdagangan sendiri, membantu pasar sistem pihak ketiga berkembang sepanjang tahun 1990an. Futures Truth adalah perusahaan independen yang telah melacak sistem perdagangan yang tersedia secara komersial sejak tahun 1980an. Saat ini, ia melacak lebih dari 500 sistem. Futures Truth menguji sistem perdagangan secara real time, bukan pada data historis. Hal ini mencegah modifikasi peraturan dari waktu ke waktu dan mensimulasikan eksekusi aturan dengan lebih baik dalam kondisi pasar aktual, seperti periode volatilitas yang tinggi. Menurut Futures Truth, hanya sekitar 45 dari sistem yang dilacak yang menguntungkan dalam jangka panjang, sementara hanya 20 yang menunjukkan rasio riskreward yang baik. Namun, angka ini kemungkinan lebih baik daripada populasi yang lebih luas karena hanya vendor yang benar-benar percaya diri dalam logika mereka sehingga menyerahkannya pada Futures Truth untuk analisis real-time dan kritik publik. Begitu banyak sistem gagal karena kekurangan premis yang valid. Sebagai gantinya, parameter masuk dan keluar berasal dari data mining. Data mining hanya memindai data historis untuk aturan yang akan berhasil di masa lalu. Seringkali, peraturan semacam itu sesuai dengan masa lalu dan tidak memiliki harapan untuk bekerja lebih baik daripada acak pada data yang tidak terlihat. Sebagai gantinya, pengembangan sistem harus dimulai dengan teori yang bisa diuji, dianalisis dan disesuaikan untuk aplikasi. Konsep ini juga menyiratkan perspektif yang berbeda pada pengujian sistem itu sendiri: Tujuan backtesting adalah tidak menghasilkan kumpulan statistik keuntungan dan kerugian hipotetis. Ini adalah untuk menguji keabsahan teori dan ketepatan aturan dalam menangkap premis. Pengujian sistem adalah proses multifaset dari data, skala waktu, hingga urutan asumsi masuk, hingga spesifikasi kontrak dan pengendalian risiko. Gagal pada salah satu dari ini dapat merusak mdash tes yang valid atau, memanipulasinya dapat menghasilkan hasil yang jauh lebih unggul daripada yang akan kita capai secara real time. Anda harus melakukannya dengan benar jika Anda berharap untuk memvalidasi mdash atau bila sesuai, membatalkan mdash sistem Anda. Alat perdagangan Ada dua elemen untuk backtesting: Perangkat yang tepat mdash software dan data mdash dan metode ilmiah untuk mengembangkan sistem dengan menggunakan alat tersebut. Letrsquos memulai dengan melihat alat-alat perdagangan. Banyak pilihan tersedia untuk menguji ide Anda. Mereka berbeda dalam kemudahan mengubah gagasan menjadi kode dan bagaimana menangani detail, yang dapat memberi dampak besar pada hasilnya. Misalnya, jika sebuah sistem masuk pada limit order, beberapa perangkat lunak mencatat pengisian jika harga itu disentuh. Namun, hampir tidak ada jaminan bahwa pesanan semacam itu pasti sudah terisi dalam perdagangan sesungguhnya, dan juga tidak ada jaminan yang akan diperolehnya. Memasuki berhenti menjamin sebuah entri, tapi bukan harga. Masalah lainnya adalah mencatat harga riil. Sementara kebanyakan perangkat lunak yang dikembangkan secara profesional tidak lagi memiliki masalah ini, namun tetap menjadi perhatian orang-orang yang menguji sistem secara manual di spreadsheet, seperti Microsoft Excel. Misalnya, jika sebuah sistem membeli berhenti sama dengan mendekati plus sepertiga dari rentang rata-rata selama tiga periode terakhir, dan jika kisaran rata-rata adalah 10, maka kita membeli di dekat plus 3.333. Jika kita melakukan trading dengan E-mini SampP 500, ia diperdagangkan dalam ukuran 0,25 tick. Ini berarti entry differential harus round sampai 3,50. Pedagang awal mungkin tidak menyadari hal ini jika menghitung angka secara manual, dan belum lama ini banyak program profesional yang membuat kesalahan yang sama. Seiring waktu, kesalahan seperti itu bisa menambah perbedaan yang cukup besar. Namun, dalam gambaran besar, rincian prosedural semacam itu kecil. Masalah besar adalah data. Artikel terkait

No comments:

Post a Comment