Sunday 20 August 2017

How to build algorithmic trading system


Dasar-Dasar Perdagangan Algorithmik: Konsep dan Contoh Algoritma adalah seperangkat instruksi yang didefinisikan secara jelas yang bertujuan untuk melaksanakan tugas atau proses. Perdagangan Algoritma (perdagangan otomatis, perdagangan kotak hitam, atau perdagangan algo-trading) adalah proses menggunakan komputer yang diprogram untuk mengikuti serangkaian instruksi yang ditetapkan untuk menempatkan perdagangan agar menghasilkan keuntungan dengan kecepatan dan frekuensi yang tidak mungkin dilakukan. Pedagang manusia Kumpulan aturan yang ditetapkan didasarkan pada timing, price, quantity atau model matematis. Terlepas dari peluang keuntungan bagi trader, algo-trading membuat pasar lebih likuid dan membuat perdagangan lebih sistematis dengan mengesampingkan dampak emosional manusia pada aktivitas perdagangan. Anggaplah seorang pedagang mengikuti kriteria perdagangan sederhana ini: Beli 50 saham dari saham ketika rata-rata pergerakan 50 hari di atas rata-rata pergerakan 200 hari Menjual saham saat rata-rata pergerakan 50 hari di bawah rata-rata pergerakan 200 hari Dengan menggunakan dua instruksi sederhana ini, mudah untuk menulis program komputer yang secara otomatis memantau harga saham (dan indikator rata-rata bergerak) dan menempatkan pesanan beli dan jual saat kondisi pasti terpenuhi. Pedagang tidak perlu lagi berjaga-jaga untuk harga langsung dan grafik, atau dimasukkan ke dalam pesanan secara manual. Sistem perdagangan algoritmik secara otomatis melakukannya untuknya, dengan mengidentifikasi peluang trading dengan benar. (Untuk informasi lebih lanjut mengenai moving average, lihat: Simple Moving Averages Membuat Trends Stand Out.) Algo-trading memberikan keuntungan sebagai berikut: Perdagangan dilaksanakan dengan harga terbaik. Penempatan order perdagangan instan dan akurat (dengan demikian kemungkinan eksekusi yang tinggi pada tingkat yang diinginkan) Perdagangan Berjangka waktu dengan benar dan seketika, untuk menghindari perubahan harga yang signifikan Mengurangi biaya transaksi (lihat contoh penerapan kekurangan di bawah ini) Pemeriksaan otomatis simultan pada beberapa kondisi pasar Mengurangi risiko kesalahan manual dalam menempatkan perdagangan Backtest algoritma, berdasarkan data historis dan real time yang ada Dikurangi Kemungkinan kesalahan oleh pedagang manusia berdasarkan faktor emosional dan psikologis Bagian terbesar dari perdagangan algo hari ini adalah perdagangan frekuensi tinggi (HFT), yang mencoba memanfaatkan penempatan sejumlah besar pesanan pada kecepatan yang sangat cepat di beberapa pasar dan beberapa keputusan. Parameter, berdasarkan instruksi yang telah diprogram sebelumnya. (Perdagangan valas yang lebih banyak, lihat: Strategi dan Rahasia Perusahaan Perdagangan Frekuensi Tinggi (HFT)) Algo-trading digunakan dalam berbagai bentuk aktivitas perdagangan dan investasi, termasuk: Investor jangka menengah hingga jangka panjang atau perusahaan penjual beli (dana pensiun , Reksadana, perusahaan asuransi) yang membeli saham dalam jumlah banyak namun tidak ingin mempengaruhi harga saham dengan investasi besar dan volume. Pedagang berjangka pendek dan pelaku jualan (pelaku pasar, spekulan, dan arbitrase) mendapat keuntungan dari pelaksanaan perdagangan otomatis di samping itu, alat bantu perdagangan algo untuk menciptakan likuiditas yang cukup bagi penjual di pasar. Pedagang yang sistematis (pengikut tren, pedagang pasang, hedge fund dll) merasa jauh lebih efisien untuk memprogram peraturan perdagangan mereka dan membiarkan program bertransaksi secara otomatis. Perdagangan algoritma menyediakan pendekatan yang lebih sistematis terhadap perdagangan aktif daripada metode yang didasarkan pada intuisi atau naluri pedagang manusia. Strategi Perdagangan Algoritmik Setiap strategi untuk perdagangan algoritmik memerlukan peluang teridentifikasi yang menguntungkan dalam hal peningkatan pendapatan atau pengurangan biaya. Berikut adalah strategi perdagangan umum yang digunakan dalam algo-trading: Strategi trading algoritmik yang paling umum mengikuti tren dalam moving averages. Saluran berjerawat Pergerakan tingkat harga dan indikator teknis terkait. Ini adalah strategi termudah dan paling sederhana untuk diterapkan melalui perdagangan algoritmik karena strategi ini tidak melibatkan prediksi atau perkiraan harga. Perdagangan dimulai berdasarkan terjadinya tren yang diinginkan. Yang mudah dan lugas untuk diimplementasikan melalui algoritma tanpa masuk ke kompleksitas analisis prediktif. Contoh yang disebutkan di atas tentang rata-rata pergerakan 50 dan 200 hari adalah tren yang populer mengikuti strategi. (Untuk informasi lebih lanjut tentang strategi perdagangan tren, lihat: Strategi Sederhana untuk Memanfaatkan Tren.) Membeli saham yang tercatat ganda dengan harga lebih rendah di satu pasar dan sekaligus menjualnya dengan harga lebih tinggi di pasar lain menawarkan selisih harga sebagai keuntungan bebas risiko Atau arbitrase Operasi yang sama dapat direplikasi untuk instrumen saham versus futures, karena perbedaan harga memang ada dari waktu ke waktu. Menerapkan algoritma untuk mengidentifikasi perbedaan harga tersebut dan menempatkan pesanan memungkinkan peluang menguntungkan secara efisien. Dana indeks telah menetapkan periode penyeimbangan ulang untuk membawa kepemilikan mereka setara dengan indeks benchmark masing-masing. Hal ini menciptakan peluang menguntungkan bagi pedagang algoritmik, yang memanfaatkan perdagangan yang diharapkan yang menawarkan keuntungan 20-80 basis poin bergantung pada jumlah saham dalam dana indeks, sebelum penyeimbangan dana indeks. Perdagangan semacam itu dimulai melalui sistem perdagangan algoritmik untuk eksekusi tepat waktu dan harga terbaik. Banyak model matematis yang telah terbukti, seperti strategi perdagangan delta-netral, yang memungkinkan perdagangan kombinasi pilihan dan keamanan mendasarnya. Dimana perdagangan ditempatkan untuk mengimbangi delta positif dan negatif sehingga delta portofolio dipertahankan pada nol. Strategi pengembalian rata-rata didasarkan pada gagasan bahwa harga aset tinggi dan rendah merupakan fenomena sementara yang kembali ke nilai rata-rata mereka secara berkala. Mengidentifikasi dan menentukan kisaran harga dan menerapkan algoritma berdasarkan pada yang memungkinkan perdagangan ditempatkan secara otomatis saat harga aset turun masuk dan keluar dari kisaran yang ditentukan. Strategi harga rata-rata tertimbang volume memecah pesanan besar dan melepaskan potongan pesanan yang ditentukan secara dinamis dari pesanan ke pasar dengan menggunakan profil volume historis tertentu. Tujuannya adalah untuk melaksanakan order mendekati Volume Weighted Average Price (VWAP), sehingga menguntungkan pada harga rata-rata. Strategi harga rata-rata tertimbang waktu mematahkan pesanan besar dan melepaskan potongan pesanan yang ditentukan secara dinamis dari pesanan ke pasar dengan menggunakan slot waktu yang dibagi rata antara waktu mulai dan akhir. Tujuannya adalah untuk melaksanakan perintah mendekati harga rata-rata antara waktu mulai dan akhir, sehingga meminimalkan dampak pasar. Sampai urutan perdagangan terisi penuh, algoritma ini terus mengirimkan sebagian pesanan, sesuai dengan rasio partisipasi yang ditentukan dan sesuai dengan volume yang diperdagangkan di pasar. Strategi langkah terkait mengirim pesanan pada persentase volume pasar yang ditentukan pengguna dan meningkatkan atau menurunkan tingkat partisipasi ini saat harga saham mencapai tingkat yang ditentukan pengguna. Strategi pelemahan implementasi bertujuan untuk meminimalkan biaya eksekusi suatu pesanan dengan melakukan perdagangan dari pasar real-time, sehingga menghemat biaya pesanan dan mendapatkan keuntungan dari biaya peluang eksekusi yang tertunda. Strategi ini akan meningkatkan tingkat partisipasi yang ditargetkan ketika harga saham bergerak dengan baik dan menurunkannya saat harga saham bergerak negatif. Ada beberapa kelas algoritma khusus yang mencoba mengidentifikasi kejadian di sisi lain. Algoritma sniffing ini, yang digunakan, misalnya, oleh pembuat pasar sell side memiliki kecerdasan bawaan untuk mengidentifikasi adanya algoritma pada sisi pembelian dengan pesanan besar. Deteksi seperti itu melalui algoritma akan membantu pembuat pasar mengidentifikasi peluang ketertiban besar dan memungkinkannya mendapatkan keuntungan dengan memenuhi pesanan dengan harga lebih tinggi. Ini kadang-kadang diidentifikasi sebagai front-running berteknologi tinggi. (Untuk informasi lebih lanjut tentang praktik perdagangan dan penipuan frekuensi tinggi, lihat: Jika Anda Membeli Saham Secara Online, Anda Terlibat dalam HFTs.) Persyaratan Teknis untuk Trading Algoritma Menerapkan algoritma yang menggunakan program komputer adalah bagian terakhir, dipukuli dengan backtesting. Tantangannya adalah mengubah strategi yang teridentifikasi menjadi proses terkomputerisasi terpadu yang memiliki akses ke akun trading untuk menempatkan pesanan. Berikut ini adalah yang diperlukan: Pengetahuan pemrograman komputer untuk memprogram strategi perdagangan yang dibutuhkan, pemrogram yang dipekerjakan atau perangkat lunak perdagangan pra-dibuat Konektivitas jaringan dan akses ke platform perdagangan untuk menempatkan pesanan Akses ke umpan data pasar yang akan dipantau oleh algoritme untuk mendapatkan kesempatan Perintah Kemampuan dan infrastruktur untuk mendukung kembali sistem yang pernah dibangun, sebelum diluncurkan di pasar riil Data historis yang ada untuk backtesting, tergantung pada kompleksitas peraturan yang diterapkan dalam algoritma Berikut adalah contoh komprehensif: Royal Dutch Shell (RDS) terdaftar di Amsterdam Stock Exchange (AEX) dan London Stock Exchange (LSE). Mari kita membangun sebuah algoritma untuk mengidentifikasi peluang arbitrase. Berikut adalah beberapa pengamatan yang menarik: Perdagangan AEX dalam Euro, sementara perdagangan LSE di Sterling Pounds Karena perbedaan waktu satu jam, AEX dibuka satu jam lebih awal dari LSE, diikuti oleh perdagangan bursa secara bersamaan selama beberapa jam berikutnya dan kemudian diperdagangkan hanya di LSE selama Jam terakhir saat AEX ditutup Dapatkah kita menjelajahi kemungkinan perdagangan arbitrase pada saham Royal Dutch Shell yang terdaftar di dua pasar ini dalam dua mata uang yang berbeda Program komputer yang dapat membaca harga pasar saat ini Harga feed dari kedua LSE dan AEX A feed valuta untuk Nilai tukar GBP-EUR Ketertiban menempatkan kemampuan yang dapat mengarahkan pesanan ke pertukaran yang benar Kemampuan pengujian kembali pada umpan harga historis Program komputer harus melakukan hal berikut: Baca umpan harga yang masuk dari saham RDS dari kedua bursa Dengan menggunakan kurs valuta asing yang tersedia . Mengubah harga satu mata uang ke mata uang lainnya Jika ada selisih harga yang cukup besar (diskon biaya broker) yang mengarah ke peluang yang menguntungkan, maka letakkan pesanan beli pada kurs dengan harga lebih rendah dan pesan jual pada harga yang lebih tinggi Jika pesanan dieksekusi sebagai Yang diinginkan, keuntungan arbitrase akan mengikuti Simple and Easy Namun, praktik perdagangan algoritmik tidak sesederhana itu untuk dipelihara dan dijalankan. Ingat, jika Anda bisa menempatkan perdagangan yang dihasilkan secara algo, demikian juga para pelaku pasar lainnya. Akibatnya, harga berfluktuasi dalam milenium dan bahkan mikrodetik. Dalam contoh di atas, apa yang terjadi jika perdagangan beli Anda akan dieksekusi, tapi menjual perdagangan tidak seperti harga jual berubah pada saat pesanan Anda menyentuh pasar Anda akan akhirnya duduk dengan posisi terbuka. Membuat strategi arbitrase Anda tidak berharga Ada risiko dan tantangan tambahan: misalnya, risiko kegagalan sistem, kesalahan konektivitas jaringan, kelambanan waktu antara pesanan dan eksekusi perdagangan, dan yang terpenting dari semua algoritma yang tidak sempurna. Algoritma yang lebih kompleks, backtesting yang lebih ketat diperlukan sebelum dilakukan. Analisis kuantitatif kinerja algoritma memainkan peran penting dan harus diperiksa secara kritis. Its menarik untuk pergi untuk otomatisasi dibantu oleh komputer dengan gagasan untuk menghasilkan uang dengan mudah. Tapi kita harus memastikan sistem diuji secara menyeluruh dan batas yang dibutuhkan ditetapkan. Analitik pedagang harus mempertimbangkan belajar pemrograman dan membangun sistem mereka sendiri, untuk yakin tentang pelaksanaan strategi yang tepat dengan cara yang sangat mudah. Penggunaan hati-hati dan pengujian menyeluruh terhadap algo-trading dapat menciptakan peluang yang menguntungkan. Bagaimana Algoritma Perdagangan Diciptakan Perdagangan kuantitatif tidak dapat diakses semata-mata oleh pedagang institusi pedagang pedagang eceran juga terlibat. Sementara keterampilan pemrograman direkomendasikan jika Anda ingin menghasilkan algoritma, bahkan yang dibutuhkan selalu diperlukan. Program dan layanan tersedia yang menulis kode pemrograman untuk strategi berdasarkan masukan yang Anda berikan. Kode yang dihasilkan oleh programservice kemudian dicolokkan ke platform trading dan perdagangan dimulai. Tapi sebelum ini bisa terjadi, trader algoritmik yang ingin tampil maju melalui beberapa langkah untuk menentukan apa yang ingin mereka capai dengan algoritma. dan bagaimana. Kerangka Waktu dan Kendala Sementara algoritma yang diprogram dengan baik dapat berjalan dengan sendirinya, beberapa pengawasan manusia direkomendasikan. Karena itu, pilih jangka waktu dan frekuensi perdagangan yang bisa Anda monitor. Jika Anda memiliki pekerjaan penuh waktu dan algoritma Anda diprogram untuk membuat ratusan perdagangan sehari pada grafik satu menit saat Anda sedang bekerja, itu mungkin tidak ideal. Anda mungkin ingin memilih kerangka jangka panjang yang sedikit lebih panjang untuk perdagangan Anda, dan frekuensi perdagangan kurang sehingga Anda dapat menyimpannya di atasnya. Profitabilitas dalam tahap pengujian algoritma doesnt berarti akan terus menghasilkan return tersebut selamanya. Terkadang Anda perlu masuk dan mengubah algoritma trading jika hasilnya mengungkapnya tidak berfungsi dengan baik lagi. Ini juga merupakan komitmen waktu bahwa siapa pun yang melakukan trading algoritmik harus menerima. Kendala keuangan juga menjadi masalah. Komisi mengumpulkan sangat cepat dengan strategi perdagangan frekuensi tinggi jadi pastikan Anda dengan broker biaya terendah yang ada, dan bahwa potensi keuntungan dari setiap waran perdagangan membayar komisi tersebut, berpotensi berkali-kali dalam sehari. Modal awal juga menjadi pertimbangan. Pasar dan produk keuangan yang berbeda membutuhkan modal dalam jumlah yang berbeda. Jika stok perdagangan hari Anda memerlukan minimal 25.000 (lebih disarankan) tapi forex trading atau futures Anda berpotensi bisa dimulai dengan jumlah yang lebih rendah. Kendala pasar adalah masalah lain. Tidak setiap pasar cocok untuk perdagangan algoritmik. Pilihlah saham, ETF, forex pair atau futures dengan likuiditas yang cukup untuk menangani order yang akan dihasilkan oleh algoritma ini. Kembangkan atau Tune Fine Strategi Setelah kendala waktu dan keuangan dipahami, kembangkan atau selesaikan strategi yang dapat diprogram. Anda mungkin memiliki strategi yang Anda trading secara manual, tapi mudah dikodekan jika strategi Anda sangat subjektif, dan bukan berbasis aturan, pemrograman strategi tidak mungkin dilakukan. Strategi berbasis aturan adalah strategi kode yang paling mudah dilakukan dengan entri, stop loss dan target harga berdasarkan data kuantitatif atau pergerakan harga. Karena strategi berbasis aturan mudah disalin dan diuji, tersedia banyak pilihan jika Anda tidak memiliki gagasan sendiri. Quantpedia adalah salah satu sumber daya tersebut, menyediakan makalah akademik dan hasil perdagangan untuk berbagai metode perdagangan kuantitatif. Aturan yang digariskan dapat dikodekan dan kemudian diuji untuk profitabilitas pada data masa lalu dan saat ini. Pengkodean algoritma memerlukan keahlian pemrograman atau akses ke perangkat lunak atau seseorang yang dapat memberi kode untuk Anda. Menguji Algoritma Trading Langkah yang paling penting adalah pengujian. Begitu strategi trading telah dikodekan, jangan trade real capital dengan itu sampai sudah teruji. Pengujian mencakup membiarkan algoritma berjalan pada data harga historis, menunjukkan bagaimana algoritma dilakukan selama ribuan perdagangan. Jika fase pengujian historis menguntungkan, dan statistik yang dihasilkan dapat diterima untuk toleransi risiko Anda seperti penarikan maksimum, rasio kemenangan, risiko kehancuran. Untuk examplethen lanjutkan untuk menguji algoritma dalam kondisi live di demo account. Sekali lagi, fase ini harus menghasilkan ratusan perdagangan sehingga Anda bisa mengakses kinerjanya. Jika algoritma ini menguntungkan pada data harga historis, dan melakukan trading live demo account, gunakan trade real capital namun dengan waspada. Kondisi hidup berbeda dari pengujian historis atau demo, karena perintah algoritme benar-benar mempengaruhi pasar dan bisa menyebabkan selip. Sampai diverifikasi, algoritma bekerja di pasar sebenarnya, seperti yang terjadi dalam pengujian, menjaga mata waspada. Selama algoritma beroperasi dalam parameter statistik yang ditetapkan selama pengujian, tinggalkan algoritma saja. Algoritma memiliki keuntungan trading tanpa emosi. Tapi trader yang terus-menerus mengutak-atik dengan algoritma tersebut meniadakan manfaat itu. Algoritma memang membutuhkan perhatian sekalipun. Monitor kinerja, dan jika kondisi pasar berubah begitu banyak sehingga algoritma tidak lagi bekerja sebagaimana mestinya, maka penyesuaian mungkin diperlukan. Perdagangan algoritma bukan usaha set-dan-lupakan yang membuat Anda kaya dalam semalam. Sebenarnya, perdagangan kuantitatif bisa sama banyak bekerja seperti trading secara manual. Jika Anda memilih untuk membuat algoritma, perhatikan bagaimana waktu, kendala keuangan dan pasar dapat mempengaruhi strategi Anda, dan rencanakan dengan tepat. Mengubah strategi saat ini menjadi aturan berbasis yang dapat lebih mudah diprogram, atau memilih metode kuantitatif yang telah diuji dan diteliti. Kemudian, jalankan fase pengujian Anda sendiri dengan menggunakan data historis dan terkini. Jika itu keluar, maka jalankan algoritma dengan uang sungguhan di bawah pengawasan ketat. Sesuaikan jika diperlukan, tapi jika tidak membiarkannya melakukan tugasnya. Sebagai ilmuwan komputer Anda, Anda berada pada posisi sempurna untuk memulai perdagangan algoritmik. Ini adalah sesuatu yang saya saksikan langsung di Quantiacs1. Dimana para ilmuwan dan insinyur dapat terjun langsung ke perdagangan otomatis tanpa pengalaman sebelumnya. Dengan kata lain, pemrograman daging merupakan bahan utama yang dibutuhkan untuk memulai. Untuk mendapatkan pemahaman umum tentang tantangan apa yang menanti Anda setelah membuat sistem perdagangan algoritmik, lihat pos Quora ini. Membangun sistem perdagangan dari bawah ke atas akan memerlukan beberapa pengetahuan latar belakang, platform perdagangan, data pasar, dan akses pasar. Meskipun bukan keharusan, memilih platform perdagangan tunggal yang menyediakan sebagian besar sumber daya ini akan membantu Anda mempercepat kecepatan. Yang sedang berkata, keterampilan yang Anda kembangkan akan dapat dialihkan ke bahasa pemrograman dan hampir semua platform. Percaya atau tidak, membangun strategi trading otomatis tidak didasarkan pada menjadi ahli pasar. Meskipun demikian, belajar mekanika pasar dasar akan membantu Anda menemukan strategi perdagangan yang menguntungkan. Pilihan, Futures, dan Derivat Lainnya oleh John C. Hull - Buku pertama yang bagus untuk memasuki keuangan kuantitatif, dan mendekati dari sisi matematika. Quantitative Trading oleh Ernie Chan - Ernie Chan memberikan buku pengantar terbaik untuk perdagangan kuantitatif dan menuntun Anda melalui proses pembuatan algoritma perdagangan di MATLAB dan Excel. Trading Algoritma Futures via Machine Learning - Rincian 5 halaman untuk menerapkan model pembelajaran mesin sederhana ke indikator analisis teknis yang umum digunakan. Heres sebuah daftar bacaan gabungan PDF dengan rincian lengkap dari buku, video, kursus, dan forum perdagangan. Cara terbaik untuk belajar adalah dengan melakukan, dan dalam kasus perdagangan otomatis yang turun ke charting dan coding. Titik awal yang baik adalah contoh sistem perdagangan yang ada dan teknik analisis teknik pameran yang ada. Selain itu, seorang ilmuwan komputer terampil memiliki keunggulan tambahan untuk dapat menerapkan pembelajaran mesin ke perdagangan algoritmik. Berikut adalah beberapa sumber daya tersebut: TradingView - Platform grafik visual yang fantastis dengan sendirinya, TradingView adalah taman bermain yang bagus untuk merasa nyaman dengan analisis teknis. Ini memiliki manfaat tambahan untuk memungkinkan Anda membuat strategi perdagangan naskah dan melihat gagasan perdagangan orang lain. Forum Perdagangan Otomatis - Komunitas online yang hebat untuk mengeposkan pertanyaan pemula dan menemukan jawaban atas masalah ku yang umum saat memulai. Forum kuota adalah tempat yang tepat untuk direndam dalam strategi, alat, dan teknik. Seminar YouTube tentang ide trading dengan contoh kode kerja di Github. Pembelajaran Mesin: Presentasi lebih banyak tentang perdagangan otomatis dapat ditemukan di Quantiacs Quant Club. Kebanyakan orang dari latar belakang ilmiah (entah itu ilmu komputer atau teknik) telah terpapar Python atau MATLAB, yang merupakan bahasa populer untuk keuangan kuantitatif. Quantiacs telah menciptakan kotak peralatan open source yang menyediakan backtesting dan 15 tahun data pasar historis secara gratis. Bagian yang terbaik adalah semuanya dibangun di atas kedua Python dan MATLAB yang memberi Anda pilihan untuk mengembangkan sistem Anda. Heres contoh tren-mengikuti strategi trading di MATLAB. Ini semua adalah kode yang dibutuhkan untuk menjalankan sistem perdagangan otomatis, yang menampilkan kekuatan MATLAB dan Quantiacs Toolbox. Quantiacs memungkinkan Anda menukar 44 futures dan semua saham dari SampP 500. Selain itu, berbagai perpustakaan tambahan seperti TensorFlow didukung. (Penafian: Saya bekerja di Quantiacs) Begitu Anda siap menghasilkan uang secara kuantitatif, Anda dapat mengikuti kontes perdagangan otomatis Quantiacs terbaru, dengan total 2.250.000 investasi tersedia: Dapatkah Anda bersaing dengan quants terbaik 28,3k Views middot View Upvotes Middot Tidak untuk Reproduksi Jawaban ini telah sepenuhnya ditulis ulang Berikut adalah 6 basis pengetahuan utama untuk membangun sistem perdagangan algoritmik. Anda harus berkenalan dengan mereka semua untuk membangun sistem perdagangan yang efektif. Beberapa istilah yang digunakan mungkin sedikit teknis, namun Anda harus bisa memahaminya dengan Googling. Catatan: (Sebagian besar) ini tidak berlaku jika Anda ingin melakukan Perdagangan Frekuensi Tinggi 1. Teori Pasar Anda perlu memahami bagaimana pasar bekerja. Lebih khusus lagi, Anda harus memahami inefisiensi pasar, hubungan antara aset yang berbeda dengan produk dan perilaku harga. Gagasan perdagangan berasal dari inefisiensi pasar. Anda perlu mengetahui bagaimana mengevaluasi inefisiensi pasar yang memberi Anda keunggulan trading dibandingkan dengan yang tidak. Merancang robot yang efektif memerlukan pemahaman bagaimana sistem perdagangan otomatis bekerja. Intinya, strategi perdagangan algoritmik terdiri dari 3 komponen inti: 1) Entri, 2) Keluar dan 3) Ukuran Posisi. Anda perlu merancang 3 komponen ini dalam kaitannya dengan inefisiensi pasar yang Anda potret (dan tidak, ini bukan proses yang mudah). Anda tidak perlu tahu matematika tingkat lanjut (meskipun akan membantu jika Anda bertujuan untuk membangun strategi yang lebih kompleks). Kemampuan berpikir kritis yang baik dan pemahaman statistik yang bagus akan membawa Anda jauh. Desain melibatkan backtesting (pengujian untuk trading edge and robustness) dan optimasi (memaksimalkan kinerja dengan pemasangan kurva minimal). Anda harus tahu bagaimana mengelola portofolio strategi perdagangan algoritmik juga. Strategi dapat saling melengkapi atau bertentangan ini dapat menyebabkan kenaikan eksposur risiko yang tidak terencana atau hedging yang tidak diinginkan. Alokasi modal penting juga apakah Anda membagi modal secara setara selama interval reguler atau memberi penghargaan kepada para pemenang dengan modal lebih Jika Anda tahu produk apa yang ingin Anda jual, temukan platform perdagangan yang sesuai untuk produk ini. Kemudian pelajari bahasa pemrograman API dari platform ini. Jika Anda memulai, saya akan merekomendasikan Quantopian (hanya saham), Quantconnect (saham dan FX) atau Metatrader 4 (FX dan CFD mengenai indeks ekuitas, saham dan komoditas). Bahasa pemrograman yang digunakan adalah Python, C dan MQL4 masing-masing. 4. Pengelolaan Data Sampah di tempat sampah. Data yang tidak akurat menyebabkan hasil tes tidak akurat. Kami membutuhkan data yang cukup bersih untuk pengujian yang akurat. Membersihkan data adalah trade-off antara biaya dan akurasi. Jika menginginkan data yang lebih akurat, Anda perlu meluangkan lebih banyak waktu (waktu uang) untuk membersihkannya. Beberapa masalah yang menyebabkan data kotor termasuk data yang hilang, duplikat data, data salah (bad ticks). Masalah lain yang menyebabkan data yang menyesatkan mencakup dividen, pemecahan saham dan futures rollover dll. 5. Manajemen Resiko Ada 2 jenis risiko utama: Risiko pasar dan risiko operasional. Risiko pasar melibatkan risiko yang terkait dengan strategi trading Anda. Apakah itu mempertimbangkan skenario kasus terburuk Bagaimana jika sebuah acara angsa hitam seperti Perang Dunia 3 terjadi Apakah Anda melakukan lindung nilai atas risiko yang tidak diinginkan Apakah posisi Anda terlalu tinggi Selain mengelola risiko pasar, Anda perlu melihat risiko operasional. Sistem crash, kehilangan koneksi internet, algoritma eksekusi yang buruk (yang mengarah ke harga eksekusi yang buruk, atau perdagangan yang tidak terjawab karena ketidakmampuan menangani selisih permintaan) dan pencurian oleh hacker adalah masalah yang sangat nyata. 6. Live Execution Backtesting dan live trading sangat berbeda. Anda harus memilih broker yang tepat (MM vs STP vs ECN). Berita Pasar Forex dengan Forum Forex Trading amp Forex Brokers Reviews adalah teman terbaik Anda, baca review broker di sana. Anda memerlukan infrastruktur yang tepat (VPN aman dan penanganan downtime dll) dan prosedur evaluasi (monitor kinerja robot Anda dan analisis mereka dalam kaitannya dengan optimasi inefficiencybacktests pasar) untuk mengelola robot Anda sepanjang masa. Anda perlu tahu kapan harus melakukan intervensi (memodifikasi startup pada robot Anda) dan kapan tidak melakukannya. Evaluasi dan Optimalisasi Strategi Perdagangan Pardo (Wawasan yang bagus tentang metode dalam membangun dan menguji strategi perdagangan) Mempromosikan jalan Anda menuju Kebebasan Finansial Van K Tharp (judul umpan yang konyol-klik di samping, buku ini adalah ikhtisar yang bagus untuk sistem perdagangan mekanis) Quantitative Trading Ernest Chan (Pengantar untuk perdagangan algo di tingkat eceran) Perdagangan dan Bursa: Mikrostruktur Pasar untuk Praktisi Larry Harris (Struktur mikro pasar adalah ilmu tentang bagaimana pertukaran berfungsi dan apa yang sebenarnya terjadi ketika sebuah perdagangan ditempatkan. Penting untuk mengetahui informasi ini Meskipun Anda baru memulai) Algorithmic Trading amp DMA Barry Johnson (Mengecam algoritma eksekusi bank. Hal ini tidak berlaku secara langsung untuk perdagangan algo Anda tapi ada baiknya untuk diketahui) The Quants Scott Patterson (Kisah Perang dari beberapa kuasi teratas. Sebagai waktu tidur baca) Quantopian (Kode, penelitian, dan diskusikan gagasan dengan masyarakat. Menggunakan Python) Dasar-dasar Algo Trading Algo Trading101 (Penafian: Saya memiliki sitemap ini. Pelajari teori desain robot, teori pasar dan coding. Menggunakan MQL4) - Bergabunglah dengan tantangan (Pelajari konsep-konsep trading dan teori backtesting Mereka baru-baru ini mengembangkan backtesting dan platform trading mereka sendiri, jadi bagian ini masih baru bagi saya, namun pengetahuan mereka berdasarkan konsep trading itu bagus.) BlogsForums yang Direkomendasikan (ini termasuk keuangan , Forum perdagangan dan perdagangan algo): Bahasa Pemrograman yang Direkomendasikan: Jika Anda tahu produk apa yang ingin Anda jual, temukan platform trading yang sesuai untuk produk ini. Kemudian pelajari bahasa pemrograman API dari platform ini. Jika Anda memulai, saya akan merekomendasikan Quantopian (hanya saham), Quantconnect (saham dan FX) atau Metatrader 4 (FX dan CFD mengenai indeks ekuitas, saham dan komoditas). Bahasa pemrograman yang digunakan adalah Python, C dan MQL4 masing-masing. 16.8k Views middot Lihat Upvotes middot Bukan untuk Reproduksi Saya memiliki latar belakang sebagai programmer dan menyiapkan tim agilescrum sebelum saya mulai melihat perdagangan algoritmik. Dunia perdagangan algoritmik sangat mempesonakan saya, namun hal itu bisa sedikit berlebihan. Saya mulai mendapatkan beberapa perspektif dengan terjun ke platform Quantopian, menonton rangkaian ceramah kuantitatif dan menjalankan sistem perdagangan algo berbasis masyarakat dan adaptasi berbasis di lingkungan mereka. Seperti yang di bawah ini: Saya kemudian menyadari untuk masuk lebih dalam lebih cepat, saya harus bertemu orang-orang yang suka menciptakan strategi perdagangan, namun tidak dapat memprogram - untuk mencocokkan diri saya sebagai manajer tim dan programmer agile sistem perdagangan. Jadi saya menulis sebuah buku tentang cara membuat tim untuk menerapkan algoritma trading Anda. Membangun Sistem Perdagangan Cara Agile: Cara Membangun Sistem Perdagangan Algoritma yang Menang sebagai Tim. Di komunitas Quantopian, saya melihat orang-orang cerdas keuangan mencari orang untuk menerapkan strategi trading mereka, namun di mana takut meminta pemrogram untuk menerapkan gagasan mereka. Karena mereka berpotensi bisa mulai menjalankan ide trading mereka tanpa mereka. Saya membahas masalah ini di buku saya. Untuk menghindari pemrogram melarikan diri dengan ide Anda: buatlah spesifikasi untuk ide trading Anda yang menggunakan kerangka pengkodean yang disesuaikan dengan jenis strategi yang ingin Anda kembangkan. Ini mungkin kedengarannya sulit, tapi bila Anda tahu semua langkah bayi dan bagaimana cara mereka menyesuaikan diri, sangat mudah dan menyenangkan untuk dikelola. Jika Anda menyukai jawaban ini, silakan pilih dan ikuti. 2.7k Views middot Lihat Upvotes middot Bukan untuk Reproduksi Meskipun ini adalah topik yang sangat luas dengan referensi untuk membangun algoritma, pengaturan infrastruktur, alokasi aset dan manajemen risiko namun saya hanya akan fokus pada bagian pertama bagaimana seharusnya bekerja untuk membangun algoritma kita sendiri. , Dan melakukan hal yang benar. 1. Membangun Strategi. Beberapa poin penting yang perlu diperhatikan di sini adalah: Catch Big Trends - Strategi yang bagus harus dalam semua kasus, menghasilkan uang saat pasar sedang tren. Pasar berjalan dengan tren bagus yang hanya bertahan 15-20 kali, tapi inilah saat semua kucing dan anjing (pedagang dari semua kerangka waktu, intraday, harian, mingguan, jangka panjang) sedang berbelanja dan mereka semua Memiliki satu tema yang umum. Banyak pedagang juga membangun strategi pengembalian rata-rata di mana mereka mencoba menilai kondisi ketika harga telah bergerak jauh dari rata-rata, dan melakukan perdagangan melawan tren namun harus dibangun bila Anda berhasil membangun dan menukar beberapa tren yang baik mengikuti sistem. . Kemungkinan menumpuk - Orang sering bekerja untuk mencoba membangun sistem yang memiliki rasio winloss yang sangat baik tapi bukan pendekatan yang tepat. Misalnya seorang algo dengan pemenang 70 dengan rata-rata keuntungan 100 per perdagangan dan rata-rata kerugian 200 per perdagangan hanya akan menghasilkan 100 per 10 perdagangan (10trade net). Tapi algo dengan pemenang 30 dengan rata-rata keuntungan 500 per perdagangan dan kerugian 100 per perdagangan akan menghasilkan keuntungan bersih sebesar 800 untuk 10 perdagangan (80trade). Jadi tidak perlu rasio winloss itu bagus, bukan kemungkinan menumpuk yang seharusnya lebih baik. Ini berjalan dengan mengatakan kerugian quotKeep kecil, tapi biarkan pemenang Anda runquot. QuotIn investasi, apa yang nyaman jarang menguntungkan. quot - Robert Arnott Drawdown - Drawdown tidak dapat dihindari, jika Anda mengikuti jenis strategi apa pun. Jadi saat merancang algo don039t mencoba mengurangi penarikan atau melakukan beberapa kondisi khusus khusus untuk mengurus penarikan tersebut. Kondisi spesifik ini di masa depan dapat bertindak sebagai penghambat jalan dalam menangkap tren besar dan algo Anda mungkin berkinerja buruk. Manajemen Risiko - Saat membangun strategi, Anda harus selalu memiliki pintu keluar, apa pun yang dipilih pasar. Pasar adalah tempat peluang dan Anda harus merancang algo untuk mengeluarkan Anda dari perdagangan sesegera mungkin jika tidak sesuai dengan selera risiko Anda. Biasanya dikatakan bahwa Anda harus mengambil risiko 1-2 dari modal di setiap perdagangan, dan optimal dalam banyak cara, walaupun Anda bisa mendapatkan 10 transaksi palsu berturut-turut sehingga modal Anda akan turun hanya 20. Tapi ini bukan Kasus dalam skenario pasar aktual. Beberapa perdagangan rugi akan terjadi antara 0-1, sementara beberapa mungkin akan mencapai 3-4, jadi lebih baik untuk mendefinisikan modal kerugian rata-rata per perdagangan dan modal maksimum yang dapat Anda kendalikan dalam perdagangan, karena pasar benar-benar acak dan tidak dapat dinilai. . Sekali-sekali, pasar melakukan sesuatu yang sangat bodoh sehingga membuat Anda tersesat. quot - Jim Cramer 2. Menguji dan mengoptimalkan Slippage Strategi. Ketika kita menguji strategi data historis, kita berada di bawah asumsi bahwa perintah akan dieksekusi pada harga yang telah ditentukan tiba oleh algo. Tapi ini tidak akan menjadi masalah, karena kita harus berurusan dengan pembuat pasar dan HFT algo039s sekarang. Pesanan Anda di dunia sekarang ini tidak akan pernah dieksekusi dengan harga yang diinginkan, dan akan ada selip. Ini harus disertakan dalam pengujian. Market Impact : Volume traded by the algo is another major factor to be considered while doing back-testing and collecting historical results. As volume increases the orders placed by algo will have considerable market impact and the average price of filled order will be much different. Your algo may produce complete different results in actual market conditions, if you will not study the volume dynamics your algo has. Optimization : Most traders suggest you not to do curve fitting and over optimization and they are correct as the markets are a function of random variables and no two situation will ever be the same. So optimizing parameters for particular situations is a bad idea. I would suggest you to go for Zonal Optimization . It is a technique which i follow, buy identifying zones which have similar characteristics in terms of volatility and volume. Optimize these areas seperately, rather than optimizing for the whole period. The above are some of the most basic and most important steps that i follow, when converting a basic thought into an algorithm and checking it039s validity. quot Everyone has the brainpower to follow the stock market. If you made it through fifth-grade math, you can do it. quotPeter Lynch 17.2k Views middot View Upvotes middot Not for Reproduction Short answer: Learn mathematics applied to trading, the structure of markets and optionally be a top networkdistributed systems programmer. There are three potentially parallel tracks that can be taken to learn algorithmic trading from scratch depending on the ultimate purpose of why you wish to learn it. Here they are in increasing order of difficulty which also correlates to how much it becomes your part of your livelihood. The earlier ones will open the opportunities for the following ones. You may stop at any step along the way once you039ve learned enough or got a job doing it. If you want to be a quant, mostly use math software and not actually be a programmer of an algo system, then the short answer is get a PhD in Mathematics, Physics or some math-heavy related engineering topic. Try to get internships at top hedge funds, prop shops or investment banks. If you can get employed by a successful firm then you will be taught there otherwise, it simply won039t happen. But in any case, you still should finish the 039Self Study039 section below to make sure you really want to go through the effort of getting a PhD. Unless you are a genius, if you don039t have a PhD you won039t be able to compete with those that do unless you specialize in the programming of trading systems. If you wish to be more on the programming side, try applying for employment after each step, but no often than once a year per firm. Self Study The first step is to understand what algorithmic trading really is and what systems are required to support it. I039d recommend reading through quotAlgorithmic Trading amp DMAquot (Johnson, 2010), something I personally did and can recommend. That will let you understand at a basic level. Next you should program your own order book, a simple market data simulator and one algorithm implementation on your on with Java or CC. For extra credit that would help with getting employment you should write your own networking communication layer from scratch too. At this point you may be able finish answering the question on your own. But for completeness and curiosity, feel free to continue: The next book to tackle is quotTrading amp Exchanges: Market Microstructure for Practitionersquot (Harris, 2003). This will go into finer details of how the markets work. It is another book I039ve read, but not completely studied because I was a systems programmer and not a quant nor a manager on the business side. Finally, if you want to start to learn the mathematics on how the markets work, work through the text and problems in quotOptions, Futures, and Other Derivativesquot (Hull, 2003). I made it through about half of that textbook either in preparation for or as part of internal training at one of my former employers. I believe I originally found out about that book because it was either suggested or required reading for one of well regarded MS Financial Mathematics programs. To potentially get a better chance at employment through a new-grad feeder program, complete a MS Financial Mathematics program if you wish to be a programmer for a trading platform or a team of quants. If you want to be the one designing the algos, then you need to take the PhD route explained earlier. If you still haven039t finished college, then by all means, try to get an internship at the same type of places. Employment No matter how much you learn in books and school, nothing will compare with the little details you learn while working for a firm. If you don039t know all the edge cases and know when your model stops working, you will lose money. I hope that answers your question and that along the way of learning you discover if you really wish to transition from study to actual day-to-day work. 18.5k Views middot View Upvotes middot Not for Reproduction Interactive Brokers Interactive Brokers has a really top-notch investing platform and decent pricing. It039s definitely a powerful tool, so you could probably get cheaper alternatives from the discount brokers like Etrade and Scottrade, but if you039re serious about algorithmic trading, IB is where it039s at. InvestFly Success is all about practice and testing your hypothesis and algorithms. Back-test, test the markets and compare it to others. I prefer Investfly - Virtual Stock Exchange, Stock Market Game amp Trading Strategies. but there are a ton of good programs out there. Idea Generation Don039t start from ground zero-- I like to get ideas from Motif Investing ( Online Brokerage, Investment Ideas, Stock Trading ) and Seeking Alpha, but always look at the big picture and think about how these things apply to your own hypothesis and formulas. Cheers and good luck 4.5k Views middot View Upvotes middot Not for Reproduction If investment is a process, then the logical conclusion is automation. Algorithms are nothing else than the extreme formalisation of an underlying philosophy. This is the visual expression of a trading edge Trading edge Win Avg Win - Loss Avg Loss It changed my life and the way I approach the markets. Visualise your distribution, always. It will help You clarify your concepts, shed light on your logical flaws, but first let039s start with philosophy and belief elicitation 1. Why is it important to clarify your beliefs We trade our beliefs. More importantly, we trade our subconscious beliefs. quotIf You don039t know who you are, markets are an expensive place to find outquot, Adam Smith Many people do not take the time to elicit their beliefs and operate on borrowed beliefs. Unanswered questions and faulty logic is the reason why some systematic traders tweak their system around each drawdown. i used to be like that for many years. Belief elicitation exercises: The Work by Byron Katie. After i completed a 2 beliefs a day challenge for 100 days, i could explain my style to any grandmother 5 why. Ask yourself a question with why and dive deeper. Mindsets: expansive and subtractive or smoothie Vs band-aid There are two types of mindset, and we need both at different times: Expansive to explore concepts, ideas, tricks etc Subtractive: to simplify and clarify concepts Systematic traders who fail at being subtractive have a smoothie approach. They throw all kinds of stuff into their strategy and then blend it with an optimizer. Bad move: complexity is a form of laziness Overly subtractive systematic traders have a band aid mentality. They hard-code everything and then good luck patching quotEssentialist tradersquot understand that it is a dance between periods of exploration and times of hard core simplification. Simple is not easy It has taken me 3,873 hours, and i accept it may take a lifetime2. Exit: start with the end in mind Counter-intuitive truth The only time when you know if a trade was profitable is after exit, right So, focus on the exit logic first. In my opinion, the main reason why people fail to automate their strategy is that they focus too much on entry and not enough on exit. The quality of your exits shapes your PampL distribution, see chart above Spend enormous time on stop loss as it affects 4 components of your trading system: Win, Loss, Avg Loss, trading frequency The quality of your system will be determined by the quality of your stop loss, 3. Money is made in the money management module Equal weight is a form of laziness. The size of your bets will determine the shape of your returns. Understand when your strategy does not work and reduce size. Conversely, increase size when it works. I will write more about position sizing on my website, but there are many resources across the internet 3. Last and very least, Entry After you have watched a full season of quotdesperate housewivesquot or quotbreaking badquot, had some chocolate, walked the dog, fed the fish, called your mom, then it039s time to think about entry. Read the above formula, stock picking is not a primary component. One may argue that proper stock picking may increase win. Maybe, but it is worthless if there is neither proper exit policy, nor money management. In probabilistic terms, after you have fixed exit, entry becomes a sliding scale probability 4. What to focus on when testing There is no magical moving average, indicator value. When testing your system, focus on three things: False positives: they erode performance. Find simple (elegant) ways to reduce them, work on the logic periods when the strategy does not work: no strategy works all the time. Be prepared for that and prepare contingency plans in advance. Tweaking the system during a drawdown is like learning to swim in a storm Buying power and money management: this is another counter-intuitive fact. Your system may generate ideas but you do not have the buying power to execute. Please, have a look at the chart above I build all my strategies from the short side first. The best test of robustness for a strategy is the short side: Thin volume brutally volatile shorter cycle Platforms I started out on WealthLab developer. It has a spectacular position sizing library. This is the only platform that allows portfolio wide backtetsing and optimisation. I test all my concepts on WLD. Highly recommend. It has one drawback, it does not connect position sizer with real live trading. Amibroker is good too. It has an API that connects to Interactive brokers and a decent poisition sizer. We program on Metatrader for Forex. Unfortunately, Metatrader has gone down the complexity rabbit hole. there is a vibrant community out there. MatLab, the weapon of choice for engineers. No comment. Tradestation Perry Kaufman wrote some good books about TS. There is a vibrant community out there. It is easier than most other platforms Final advice If You want to learn to swim, You have to jump in the water. Many novices want to send their billion dollar ideas to some cheap programmers somewhere. It does not work like that. You need to learn the language, the logic. Brace for a long journey 14.7k Views middot View Upvotes middot Not for Reproduction Look at TradeLink (C) or ActiveQuant (Java). TradeLink039s code is more elegant. I039m typing this on a cell phone, so please excuse my brevity. basically, look at what comes in vs what goes out as an initial way to frame the problem. Di. market data, exhangemarket events (executions to trades that your system placed, acks, rejects, trading-halted notification, etc). Di luar. Orders, modifications to ordes. quotBuy 100 15.5, IOCquot, for example. IOC immediate or cancel. In between. strategy decisions based on information gathered from real-time data, in conjunction with historical data and any other inputs (trader039s command from his GUI to trade moreless aggressively, etc). Things like. place an order, amend an existing order, etc Now you can begin to address the technical architecture of such a system. Of key importance would be the ability to express the strategy easily, elegantly, despite the complexity of event-processing involved (there are several interesting race conditions that can confuse your system with regards to the state of the market your orders, for example). I used to do this for a living and can probably go on endlessly But typing on a cell phone is a deterrent. Hope you found this useful. Contact me if you need further guidance. 21.2k Views middot View Upvotes middot Not for Reproduction Updated 100w ago middot Upvoted by Patrick J Rooney. 5 years trading professionally I specialize in advanced o To start with the basics, get a hold of Amibroker ( AmiBroker - Download ). Amibroker has an easy to learn language and powerful backtest engine where you can prototype your ideas. Also get Howard Bandy 039s book Quantitative Trading Systems. This book is a really good introduction to the concepts of quant developing. You039ll also need at least a basic knowledge of statistics. There are plenty of good MOOC courses available for this for free. Such as this one Statistics One - Princeton University Coursera It039s also worth following The Whole Street. which is a mashup of all the quant blogs, many of whom publish Amibroker code with their ideas. From there, it039s then worth learning Python ( learn python - Google Search ), and also doing Andrew Ng039s excellent Stanford University Machine Learning course, which runs for free on Coursera . If you then want to put your own algorithms to the test, good sites for that are Quantconnect or Quantopian . Finally, this guy has some good advice on turning it into your career quantstart Good luck with the journey Partially taken from Alan Clement039s answer to How can a software developer in finance become a quant developer 16.2k Views middot View Upvotes middot Not for Reproduction How can I build an Order Routing System for an algorithmic trading platform Can a single person actually profitably engage in algorithmic trading Where can I get resources to start learning Python for Algorithmic trading How can I begin algorithmic trading in JavaScript What currencies should I use What APIs should I use How do I get started Why is capitalism highly exposed to trade cycles What is a trade cycle Which broker is good for algorithmic trading I have a solid understanding of stocksderivatives amp have Python skills. I want to develop an automated algorithmic trading system. Where do I start What are the best returns from algorithm trading

No comments:

Post a Comment