Valuta Asing Apa Valuta Asing Valuta Asing adalah pertukaran satu mata uang dengan mata uang lain atau konversi satu mata uang ke mata uang lain. Devisa juga mengacu pada pasar global dimana mata uang diperdagangkan hampir sepanjang waktu. Pusat perdagangan terbesar adalah London, New York, Singapura dan Tokyo. Istilah valuta asing biasanya disingkat forex dan kadang-kadang seperti FX. BREAKING DOWN Foreign Exchange Transaksi valuta asing mencakup segala hal mulai dari konversi mata uang oleh seorang musafir di kios bandara hingga pembayaran miliaran dolar yang dilakukan oleh perusahaan, lembaga keuangan dan pemerintah. Transaksi berkisar dari impor dan ekspor hingga posisi spekulatif tanpa barang atau jasa yang mendasarinya. Meningkatnya globalisasi telah menyebabkan peningkatan jumlah transaksi valuta asing dalam beberapa dekade terakhir. Pasar valuta asing global adalah pasar keuangan terbesar di dunia, dengan volume harian rata-rata dalam triliunan dolar. Transaksi valuta asing bisa dilakukan untuk pengiriman spot atau forward. Tidak ada pasar terpusat untuk transaksi forex, yang dieksekusi di atas meja dan sepanjang waktu. Spot Market Spot untuk sebagian besar mata uang adalah dua hari kerja pengecualian utama adalah dolar A. S. versus dolar Kanada, yang mengendap pada hari kerja berikutnya. Pasangan lainnya menetap dalam dua hari kerja. Selama periode yang memiliki banyak liburan, seperti Paskah atau Natal, transaksi spot bisa memakan waktu selama enam hari untuk menyelesaikannya. Harga ditetapkan pada tanggal perdagangan tapi uang dipertukarkan pada tanggal nilai. Dolar A. S. adalah mata uang yang paling aktif diperdagangkan. Pasangan yang paling umum adalah dollar versus euro. Yen Jepang, pound Inggris dan Swiss franc. Pasangan perdagangan yang tidak termasuk dolar disebut sebagai salib. Persilangan yang paling umum adalah euro versus pound dan yen. Pasar spot bisa sangat fluktuatif. Pergerakan dalam jangka pendek didominasi oleh technical trading, yang fokus pada arah dan kecepatan pergerakan. Orang yang fokus pada teknikal sering disebut sebagai chartis. Pergerakan mata uang jangka panjang didorong oleh faktor fundamental seperti suku bunga relatif dan pertumbuhan ekonomi. Forward Market Sebuah forward trading adalah perdagangan yang mengendap lebih jauh di masa depan daripada spot. Harga forward adalah kombinasi dari spot rate plus atau minus forward points yang mewakili perbedaan suku bunga antara kedua mata uang tersebut. Sebagian besar memiliki kedewasaan kurang dari satu tahun ke depan tapi lebih lama mungkin. Seperti dengan spot, harga ditetapkan pada tanggal transaksi tapi uang ditukar pada tanggal jatuh tempo. Kontrak forward dibuat khusus sesuai dengan persyaratan dari counterparty. Mereka dapat untuk jumlah dan menetap pada tanggal yang tidak akhir pekan atau liburan di salah satu negara. Futures Market Sebuah transaksi futures mirip dengan forward yang mengendap kemudian dari kesepakatan spot, tapi untuk ukuran standar dan tanggal penyelesaian dan diperdagangkan di pasar komoditas. Pertukaran bertindak sebagai counterparty. Bagian 988 DEFINISI Bagian 988 Transaksi keuangan yang melibatkan kerugian atau keuntungan modal atas investasi yang dilakukan dalam mata uang asing. Bagian 988 berhubungan dengan IRS Section 988, yang diterapkan untuk semua tahun pajak setelah tanggal 31 Desember 1986. Aturan per IRS, sebagian besar keuntungan dari transaksi mata uang asing harus diperlakukan sebagai pendapatan biasa, baik yang diperoleh oleh individu atau perusahaan. Keuntungan dan kerugian dari transaksi ini biasanya dilihat di luar keuntungan atau kerugian karena perubahan nilai tukar antara dolar A. S. dan mata uang asing. 988 Transaksi mencakup pemegang obligasi luar negeri di sekitarnya (yang akan menerima bunga dan prinsip dalam mata uang nonfungsional dalam negeri), futures mata uang asing atau derivatif lainnya, serta biaya yang masih harus dibayar atau penerimaan dalam mata uang asing. BREAKING DOWN Bagian 988 Efek yang paling umum terjadi adalah: posisi futures, posisi valuta asing dan obligasi internasional. Misalnya, jika bank A. S. menerbitkan obligasi yang berdenominasi di euro. Itu dianggap sebagai transaksi 988. Jika seorang investor melakukan pemilihan sebelum transaksi dilakukan, dia mungkin dapat mengklasifikasikan keuntungan atau kerugian dari investasi tertentu sebagai capital gain daripada pendapatan biasa. Hal ini paling sering berlaku untuk meneruskan transaksi kontrak, opsi dan futures. Update: Saya memperbarui kode sehingga bekerja dengan Oandas API baru. Dapatkan di sini Waktu untuk berbicara tentang broker, bagaimana menempatkan perdagangan secara pemrograman dan yang terpenting bagaimana tidak mendapatkan scammed. Broker tidak lebih dari perusahaan yang memungkinkan Anda menukar (membeli atau menjual) aset di pasar melalui platform mereka. Apa yang sangat penting untuk algotrading adalah: Broker menawarkan API agar kami dapat memesan Anda dapat memiliki akun demo untuk mengelola lingkungan pementasan dan eksperimen Penyebarannya sekecil mungkin. Dalam kasus kami, kami benar-benar tidak peduli dengan penyebaran Seperti yang biasa kita lakukan dalam Trading Frekuensi Tinggi dalam waktu dekat. Meski pialang sudah diatur, sudah terjadi beberapa kejadian dalam beberapa tahun terakhir, apakah broker dilipat karena kondisi tertentu. Berhati-hatilah jika Tidak ada ulasan broker di internet (atau kebanyakan mereka buruk) Jika broker menawarkan beberapa leverage gila (seperti 1: 200) Jika broker nampaknya berada di negara yang sangat aneh Apa yang bisa terjadi Adalah bahwa Anda mulai menghasilkan uang dan Anda tidak dapat menarik mereka keluar. Serius. Situasi hebat. Tapi mari kita beralih ke catatan yang lebih bahagia yang membuka rekening dan menempatkan perdagangan program pertama kita. Whooha Saya menggunakan Oanda sebagai broker (saya tidak berafiliasi dengan mereka) dan mereka menawarkan API yang lumayan bagus, perpustakaan di github dan akun demo gratis. Setelah masuk ke akun demo Anda, buka Kelola Akses API. Di sana Anda dapat menemukan kunci API yang akan digunakan di sistem kami untuk menempatkan perdagangan. PASTIKAN ANDA TIDAK BERBAGI KUNCI INI. Kode untuk ini dan semua posting lainnya ada di github dan Anda bisa menginstalnya dan menjalankannya dengan mudah. Update: Oanda merilis sebuah mesin eksekusi (kickass) baru yang disebut v20 dan mereka telah merilis sebuah API baru (diperbaiki). Pos ini telah diperbarui untuk menggunakan API baru namun jika (dengan alasan apapun) Anda ingin memeriksa kode lama, itu ada di sini. Anda beruntung Anda Menghubungkan ke Oanda memerlukan file conf - yang dapat Anda hasilkan dengan menggunakan skrip yang disediakan Oanda di sini atau Anda bisa membuatnya sendiri. Mengapa Anda menginginkan Pertama-tama ketika menyangkut kredensial (dan uang saya), saya lebih memilih untuk mengetahui semua hal yang sedang terjadi. Dan saya tidak suka menginstal PyYAML hanya untuk membaca file conf. Jangan ragu untuk menggunakan salah satu metode. Sekarang, bersiaplah untuk takjub. Kode ini lurus ke depan. Kami menginisialisasi API: dan sekarang memungkinkan melakukan pemesanan (beli 5000 unit EURUSD) Cek harga saat ini semudah Super mudah. Jangan khawatir tentang apa itu EURUSD atau berapa banyak unit yang kita beli atau apa order pasarnya. Untuk saat ini, kami telah menempatkan perdagangan pertama kami dari laptop kami dan kami akan membangun API kami sendiri untuk menempatkan perdagangan. Barang seru Anda bisa membaca dokumentasi Oandas di sini untuk melihat apa lagi yang dapat Anda lakukan dengan API mereka dan temukan perpustakaan Python di sini. Contoh contoh tersedia dari halaman gyub Oandas di sini. Datang berikutnya, terhubung ke sistem algotrading LIVE sejati, berlari dari RaspberryPI saya di rumah. Anda bisa melihat program akhir (hampir) berjalan dan berbicara lebih banyak tentang Forex dan strategi. Jika Anda memiliki lebih banyak umpan balik, ping saya di jonromero atau masuk ke buletin. Legal outro Ini adalah tutorial teknik tentang bagaimana membangun platform algotrading untuk eksperimen dan FUN. Ada saran disini bukan nasihat finansial. Jika Anda kehilangan uang (atau semua) Anda karena Anda mengikuti saran perdagangan atau menggunakan sistem ini dalam produksi, Anda tidak dapat menyalahkan blog acak ini (dan juga saya). Nikmati risiko Anda sendiri. Ini lebih merupakan cara membangun strategi algotrading Anda sendiri - edisi Ethereal dan bukan membuat blog dengan cepat. Ini juga merupakan contoh nyata dengan pengembalian nyata (dan kesalahan produksi riil yang menghabiskan biaya saya) di mana Anda dapat melihat bagaimana mengidentifikasi peluang, mengapa algotrading hebat dan mengapa manajemen risiko dapat menyelamatkan pantat Anda. Saya mendapatkan pertanyaan ini hampir setiap hari. Bagaimana saya bisa menemukan strategi yang baik Bagaimana cara membangun saya sendiri Apakah saya perlu memiliki gelar PhD dalam matematika Statistik Newsflash: Jika saya dapat menulis strategi, siapa pun dapat menulis strategi. Percayalah pada itu Satu-satunya trik adalah mencari yang sederhana. Update: Posting ini telah ditulis ulang setidaknya lima kali (seperti drama DAO yang meningkat) dan ini adalah contoh sempurna dari strategi yang melakukan lingkaran penuh. Saya mulai terlibat dengan Ethereum sejak awal karena saya sangat menyukai algoritme yang Anda jalankan pada hal yang halal. Ketika TheDAO keluar, saya membaca semuanya dan menyukai gagasan itu. Anda tidak perlu mengerti apa itu Ethereal, theDAO, blockchain pada saat ini (saya berjanji akan mengoceh pada posting lain). Ide yang sama berlaku untuk Forex, bahkan bola Pokemon. Empat langkah - kapten saya jelas - sistem saya pribadi, punya cara tertentu agar saya bekerja. Langkah pertama . Identifikasi sebuah ide. Ide saya dalam kasus ini adalah bahwa ada beberapa pertukaran yang menawarkan token Ethereal dan DAO. Bagaimana jika ada arbitrase di antara mereka Langkah dua. Uji coba ide secara manual Jika ada sesuatu yang agak berhasil, saya menyukai sesuatu. Yang harus saya lakukan adalah menjalankan semua langkah secara manual dan menuliskan biaya, kondisi atau apapun yang harus didokumentasikan. Langkah ketiga. Mengotomatiskan Algoritma ini bukanlah algoritma perdagangan frekuensi tinggi. Ada sejumlah besar risiko waktu (yang bisa Anda hilangkan juga lihat nanti) tapi yang saya lakukan bisa dilakukan secara manual. Masalahnya adalah saya harus menghabiskan sepanjang waktu di depan komputer saya, memeriksa apakah ada kondisi arbitrase dan jika ada, saya harus bertindak cepat dan tanpa mengacaukannya. Oh dan saya harus merekrut lima teman saya untuk skala ini. Singkat cerita, saya menghabiskan Hari Presiden untuk menulis sebuah program sederhana yang akan memutar ulang semua langkah manual saya. Program ini akan macet dan tidak lebih dari 100 baris kode. Ini adalah tahap pengumpulan data dimana saya melihat apakah ada kelebihan yang bisa diberikan algoritma kepada saya. Keuntungan bisa jadi: Sesuatu yang otomatis dan berjalan 1000 kali per detik atau 1000 kali secara paralel Sesuatu yang berpikir lebih cepat daripada yang saya bisa Sesuatu yang tidak memiliki perasaan untuk mengacaukan sistem saya Jika setidaknya ada satu atau lebih kondisi terpenuhi, saya akan Mulai membangun dan menulis ulang algo. Langkah keempat. Semua dalam saya bercanda dan Anda akan melihat sedikit mengapa manajemen risiko sangat penting dalam bisnis ini. Mari kita membahas sedikit tentang apa arbitrase ini. Idenya adalah: Saya bertanya-tanya apakah Kraken dan Shapeshift memiliki harga yang berbeda untuk aset yang sama. Ini adalah kasus arbitrase klasik (Kraken dan Shapeshift dipertukarkan). Saya bisa menukarkan DAO untuk ETH di Kraken, mentransfer ETH ke Shapeshift, menukarkan ETH untuk DAO dan mengirim mereka kembali ke Kraken dan karena ketidakkonsistenan biaya, saya akan berakhir dengan DAO lebih banyak daripada pada awalnya saya mulai mengeluarkan uang bebas risiko, jenis uang terbaik . Anda bisa menghasilkan uang selama ETHDAO dari Kraken DAOETH dari ShapeShift gt 1 (biaya gas). Rumus yang sangat sederhana, benar Setiap siklus, adalah 2 sampai 10 pengembalian modal saya. Setelah beberapa saat, saya mulai mencapai batas Shapeshift dan saya harus menjalankannya secara paralel. Pertanyaannya adalah apa yang akan Anda lakukan jika Anda memiliki algoritma yang menghasilkan 10 uang Anda setiap 20 menit. Hal terbodoh yang bisa Anda lakukan adalah mengumpulkan banyak uang ke dalamnya. Jika Anda tidak terbiasa dengan kata Yunani hybris. Anggap dirimu beruntung Hybris adalah ketika Anda berpikir bahwa Anda tak terkalahkan, lebih baik daripada dewa. Dan ini adalah NO NO terbesar yang bisa Anda lakukan dalam trading. Setelah beberapa minggu, theDAO diretas. 160 juta dolar dicuri (atau harus saya katakan beku) dan tidak ada yang tahu apa yang akan terjadi. Bagi saya, ini terjadi, 10 menit sebelum naik pesawat terbang ke New York. Hybris. Atau seperti orang-orang di AS katakan: Persetan. Saya pintar (beruntung) cukup memiliki kebiasaan manajemen risiko yang baik (terima kasih Forex). Saya tidak pernah, pernah mempertaruhkan lebih dari 2 modal saya meskipun tampaknya merupakan kesepakatan terbaik. Untungnya, uang itu dipulihkan dan saya bisa menarik diri dari DAO saya ke Ethereum (tapi iya, saya membeli WiFi dalam penerbangan untuk mengikuti apa yang sedang terjadi). Seluruh pengalaman ini merupakan pengingat bahwa selalu ada hal-hal yang tidak dapat Anda prediksi. Hal-hal yang tidak dapat Anda kendalikan Ini adalah risiko yang sistematis dan tidak mungkin saya melihatnya datang. Tombol push dan algoritma bangunan tidak cukup. Pengelolaan risiko yang tepat dan mengetahui kapan Anda perlu minum pil dingin adalah apa yang bisa membuat Anda tetap bertahan dalam permainan. Pada postingan berikutnya, saya akan memposting keseluruhan algoritma dan pergi baris demi baris. Saya juga berencana untuk membahas sedikit lebih banyak tentang theDAO dan Ethereal. Jika Anda tidak ingin melewatkan semua ini dan mendapatkan info tambahan lagi, silakan masuk ke buletin di mana saya berbicara tentang fintech, algoritma, dan pasar. Omong-omong, jika Anda ingin membuat kripto kognitif Anda sendiri dan belajar lebih banyak tentang Ethereal, saya memiliki posting bagus dengan kode yang diposting di sini. Selanjutnya: Menyelam ke dalam program algotrading ETHDAO Jika Anda memiliki lebih banyak umpan balik, ping saya di jonromero atau masuk ke buletin. Legal outro Ini adalah tutorial teknik tentang bagaimana membangun platform algotrading untuk eksperimen dan FUN. Ada saran disini bukan nasihat finansial. Jika Anda kehilangan uang (atau semua) Anda karena Anda mengikuti saran perdagangan atau menggunakan sistem ini dalam produksi, Anda tidak dapat menyalahkan blog acak ini (dan juga saya). Nikmati risiko Anda sendiri. Mesin belajar dan trading adalah topik yang sangat menarik. Ini juga merupakan topik di mana Anda bisa menghabiskan banyak waktu untuk menulis kode dan membaca koran dan kemudian seorang anak bisa mengalahkan Anda saat bermain Mario Kart. Di posting selanjutnya, kita akan membicarakannya: Optimalkan entri dan keluar. Ini dan hanya ini bisa membuat banyak perbedaan dalam roll bank Anda. Hitung ukuran posisi (jika Anda tidak menyukai kriteria Kelly) Temukan kemungkinan korelasi antara pasangan yang berbeda (pair trading). Saya suka korelasi EURUSD vs GBPJPY Hitung garis penguat amp pendukung Tapi apakah algoritma pembelajaran Mesin Belajar Mesin adalah algoritma di mana mesin dapat mengidentifikasi pola pada data Anda. Yeap, sesederhana itu. Misalnya, temukan semua binatang di foto ini dan gambarlah di sekitar mereka. Juga, beri nama binatang itu. Gila aku tahu Untuk trading seperti yang bisa Anda bayangkan, sangat mirip: Agar mesin bisa belajar, Anda perlu mengajarinya apa yang benar atau salah (diawasi pembelajaran) atau berikan dataset yang besar dan biarkan menjadi liar (tidak diawasi). Untuk mengidentifikasi objek ini lurus ke depan tapi bagaimana dengan perdagangan, saya melihat sekeliling untuk melihat apakah ada program pembelajaran mesin yang dapat mengidentifikasi jalur SR tapi tidak berhasil. Jadi saya memutuskan untuk menulis program pembelajaran mesin pertama di python yang mengidentifikasi jalur dukungan dan resistensi dengan Python. Horeay pertama yang lain Tapi bagaimana algoritma mengenali area ini Hoooooow Ladies and sents (dan robot), izinkan saya memperkenalkan Anda kepada MeanShift. Algoritma yang tidak diawasi yang sebagian besar digunakan untuk pengenalan gambar dan cukup sepele untuk setup dan run (tapi juga sangat lambat). Idenya adalah bahwa algoritma ini akan membiarkan saya mempartisi data saya (forex ticks) ke dalam area dan kemudian saya dapat menggunakan tepinya sebagai garis support dan resistance. Ide yang bagus tapi apakah itu berhasil Kami menganalisis sekitar 12 juta datapoints EURUSD pada tahun 2014 dan beberapa bulan pada tahun 2015. Garis resistensi ditempatkan secara otomatis oleh algoritma pembelajaran mesin. Apa yang benar-benar keren (dan seram) adalah bahwa algoritma itu cukup banyak memakainya. KATAKAN keras. Ini akan sangat menyeramkan saat kita akan menggunakan algoritma untuk mengidentifikasi struktur mikro dan mulai melakukan scalping. Sistem ini mampu memproses segala jenis data timeseries (saham, forex, emas, apapun) dan akan membuat grafik interaktif html (seperti grafik di atas) dengan data dan mesin yang dihasilkan SL. Kode di sini jadi gila. Sekarang mari kita melangkah melalui kode. Setelah Anda memiliki data Anda, Anda perlu membacanya dan membersihkannya. Siapkan beberapa sihir panda. Kami membuang nilai kosong (akhir pekan) dan kemudian kami sampelkan data sampai 24 jam candlesticks (ohcl). Hal ini membuat JAUH lebih mudah untuk plot. Groupeddata adalah data yang akan kita masukkan ke dalam algoritma ml. Kemudian kita siapkan data yang akan kita gunakan di algo. Pada posting selanjutnya, bicarakan dengan baik bagaimana membuat karya ini menjadi lebih baik lagi, diskusikan beberapa hasil yang sangat menarik (semoga algoritma benar-benar meramalkan tentang masa depan) dan mulailah menggunakannya dalam trading kita sendiri. Jika Anda ingin memeriksa artikel berikutnya dan membaca lebih lanjut tentang perdagangan dan investasi menggunakan algoritme, masuk ke nawala. Datang berikutnya: Mesin Belajar Gone Wild - Menggunakan kode Jika Anda memiliki lebih banyak umpan balik, ping saya di jonromero atau signup ke buletin. Legal outro Ini adalah tutorial teknik tentang bagaimana membangun platform algotrading untuk eksperimen dan FUN. Ada saran disini bukan nasihat finansial. Jika Anda kehilangan uang (atau semua) Anda karena Anda mengikuti saran perdagangan atau menggunakan sistem ini dalam produksi, Anda tidak dapat menyalahkan blog acak ini (dan juga saya). Nikmati risiko Anda sendiri. Update: The Machine Learning post akan menjadi epik tapi butuh banyak waktu untuk membuat kode ini layak. Beruanglah dengan saya, hal-hal keren akan datang (seperti yang Anda baca di buletin) Penafian: INI TIDAK ADA NASIHAT. Yang benar-benar mengejutkan adalah bahwa sebagian besar permintaan di newsletter adalah: Gunakan alat untuk membantu Trading Machine Learning untuk mengoptimalkan perdagangan Pajak Dua yang pertama, saya bisa mengerti. Semua orang ingin menjadi trader yang lebih baik. Saya mengerti. Tapi pajak PAJAK Ini adalah hari keberuntunganmu. Pajak forex sangat mudah. Serius. Secara default (ini disebut Bagian 988), semua kerugian Anda akan mengimbangi pajak penghasilan Anda tanpa batas 3k per tahun. Ini jauh lebih baik dari pada perdagangan saham dimana kerugian mengimbangi keuntungan modal Anda. Tapi apa yang terjadi pada keuntungan MENGAPA ANDA CARE MENGAPA Mayoritas trader Forex kehilangan uang (saya menyebutnya membayar uang kuliah) pada tahun pertama, jadi lebih baik Anda melakukannya dengan sederhana sampai Anda memiliki strategi yang terbukti dan konsisten. Karena itu, jika Anda benar-benar menghasilkan keuntungan, Anda dikenai pajak atas keuntungan modal jangka pendek (terkadang sampai 40). Solusi untuk saat Anda mulai menghasilkan uang adalah: Memilih Bagian 988 dan dikenai pajak di bawah Bagian 1256 dimana 60 keuntungan dikenai pajak sebagai keuntungan modal jangka panjang dan 40 sebagai jangka pendek (tapi sekarang kerugian tidak dapat mengimbangi pendapatan Anda). Ini sangat bagus saat Anda menghasilkan uang, sangat buruk saat Anda tidak melakukannya. Memulai sebuah LLC Bagi orang-orang yang baru mulai bereksperimen dengan Forex dan algotrading, saya selalu menyarankan mereka untuk tinggal di Bagian 988 (default) dan ketika mereka mulai menghasilkan uang (secara konsisten) atau mereka ingin pergi penuh waktu, bicaralah kepada saya :) Serius, ada banyak hal yang akan Anda mulai lakukan secara berbeda saat Anda beralih dari tahap hobi ke pendapatan kedua hingga pekerjaan penuh waktu sehingga tidak ada alasan untuk mengoptimalkannya secara berlebihan. Datang berikutnya: Mesin Belajar Gone Wild Jika Anda memiliki lebih banyak umpan balik, ping saya di jonromero atau signup ke newsletter. Legal outro Ini adalah tutorial teknik tentang bagaimana membangun platform algotrading untuk eksperimen dan FUN. Ada saran disini bukan nasihat finansial. Jika Anda kehilangan uang (atau semua) Anda karena Anda mengikuti saran perdagangan atau menggunakan sistem ini dalam produksi, Anda tidak dapat menyalahkan blog acak ini (dan juga saya). Nikmati risiko Anda sendiri. Terakhir kali kita berbicara tentang backtester for-looper (seperti yang saya suka menyebutnya). Sekarang waktunya untuk melihat beberapa kode Kami mengatakan bahwa kita memiliki sesuatu seperti itu: python untuk setiap elemen readhistoricaldata (): applystrategy () howourstrategydid () Manis, mari kita load strategi kita, memuat beberapa data historis, jalankan algoritma kita dan cetak beberapa hasil Saya lebih memilih untuk memiliki strategi saya dalam format JSON yang berisi nama strategi dan beberapa spesifikasi (seperti berapa pips untuk stoploss atau takeprofit dll). Dengan begitu, saat mulai menggunakan backtester berbasis event, kita bisa melewati strategi melalui algoritma pembelajaran mesin dan mencoba untuk mengoptimalkannya. Baris berikutnya memuat data kami. Saya tahu orang tidak suka acar dan ada cara lain untuk memuat data (dan kami akan membicarakan BColz di beberapa titik) tapi untuk saat ini, barulah saya. Baris berikutnya sudah cukup jelas. Kami melewati data historis ke algo kami dan kami mengembalikan beberapa statistik untuk dicetak. Mari kita fokus pada algoritma sedikit dan kita dapat mendiskusikan merencanakan dll di kemudian hari. Keajaiban sistem backtesting sederhana Siapkan untuk takjub dengan betapa ridiculously mudahnya melakukan hal ini. Datang pendek Apa yang terjadi dengan jenis backtesting ini adalah bahwa 1. Anda mungkin akan membuat kesalahan saat Anda ingin menggunakan algoritma yang sama persis 2. Anda tidak dapat menulis strategi yang sangat kompleks (paling tidak mudah) 3. Sangat sulit untuk diukur (Dibandingkan dengan event-based) 4. Anda harus melakukan simulasi dan eksekusi dalam bahasa yang sama. Ingatlah bahwa ini adalah cara TERBAIK dan tercepat untuk memulai dan mencari tahu bagaimana semua hal ini bekerja. Datang berikutnya, menggunakan backtesters terkenal lainnya dengan Python dan menambahkan grafik ke kami sendiri Jika Anda memiliki lebih banyak umpan balik, ping saya di jonromero atau masuk ke buletin. Legal outro Ini adalah tutorial teknik tentang bagaimana membangun platform algotrading untuk eksperimen dan FUN. Ada saran disini bukan nasihat finansial. Jika Anda kehilangan uang (atau semua) Anda karena Anda mengikuti saran perdagangan atau menggunakan sistem ini dalam produksi, Anda tidak dapat menyalahkan blog acak ini (dan juga saya). Nikmati risiko Anda sendiri. Apa itu sistem algotrading yang baik tanpa beberapa strategi yang rapi untuk diterapkan Di bawah ini ada daftar strategi yang saya temukan secara online (atau dikirim oleh pedagang yang ada di buletin). Saya berencana untuk memperbarui daftar ini karena saya terus menemukan ide baru. Konsepnya adalah karena saat kita terus menyelam lebih dan lebih ke dalam sistem algotrading kita, saya akan menunjukkan cara mengode dan menerapkan strategi ini. Saya tahu pasti sebagian besar dari mereka bekerja dengan sedikit perubahan. Skenario terburuk, Anda akan memiliki sistem untuk menguji asumsi Anda. Inilah daftarnya (dan tolong kirimi saya strategi lain yang menurut Anda harus disertakan): Datang ke depan, berbagi dan mendiskusikan backtester saya yang paling sederhana (tapi paling sukses) Jika Anda memiliki lebih banyak umpan balik, ping saya di jonromero atau masuk ke Newsletter Legal outro Ini adalah tutorial teknik tentang bagaimana membangun platform algotrading untuk eksperimen dan FUN. Ada saran disini bukan nasihat finansial. Jika Anda kehilangan uang (atau semua) Anda karena Anda mengikuti saran perdagangan atau menggunakan sistem ini dalam produksi, Anda tidak dapat menyalahkan blog acak ini (dan juga saya). Nikmati risiko Anda sendiri. Membangun sistem backtest sebenarnya cukup mudah. Mudah untuk mengacaukan maksud saya. Meskipun ada banyak perpustakaan bagus di luar sana (dan juga melewati mereka di beberapa titik), saya selalu suka melakukan ini sendiri untuk menyempurnakannya. Dari semua sistem backtesting yang pernah saya lihat, kita dapat mengasumsikan bahwa ada dua kategori: The-loopers The Event generator Today, baik berbicara tentang for-loopers. The-loopers adalah jenis favorit saya backtesters. Mereka sepele untuk menulis dan sangat menyenangkan untuk berkembang namun memiliki beberapa arus penting dan sayangnya mayoritas backtesters di luar sana untuk looper (ps: Saya perlu mencari nama yang lebih baik untuk ini). Cara kerja looper Menggunakan for for loop (seperti dugaan Anda). Ini adalah sesuatu seperti ini: Sangat sederhana, inilah cara kerja sistem backtesting, yang menjalankan strategi momentum: Jadi, apa masalahnya Sangat sulit untuk skala (horizontal) Membutuhkan banyak pekerjaan untuk menjaga strategi penerapan Anda () bekerja pada backtesting dan Produksi Anda harus memiliki segala sesuatu dalam bahasa pemrograman yang sama Mari menyelam ke dalam ini, satu per satu. Skalabilitas. Saya sedang bereksperimen beberapa minggu yang lalu dengan algoritma mendaki bukit untuk mengoptimalkan salah satu strategi saya. Masih berjalan. Setelah dua minggu. Dan saya membangun sistem uber-scalable untuk mencari nafkah. Mengapa masih berjalan Anda bisa menggunakan multiprocessing. Disko. Producerconsumer (menggunakan ZeroMQ) atau hanya benang untuk mempercepatnya tapi beberapa masalah tidak memalukan sejajar (ya, ini adalah istilah yang sebenarnya, bukan salah satu kata yang saya buat). Jumlah pekerjaan untuk menskalakan backtester seperti ini (terutama bila Anda ingin melakukan pembelajaran mesin yang sama di atasnya) sangat besar. Anda bisa melakukannya tapi itu cara yang salah. Produksi dan backtesting selaras ini. Saat saya digigit oleh ini. Saya dapat mengingat kembali perdagangan yang hilang dimana saya berada, mengapa saya memasuki perdagangan ini atau favorit lama saya MENGAPA TRAILING STOP WS APPLIED NOW. Story time: Saya punya ide untuk mengoptimalkan strategi saya, untuk menjalankan backtester untuk melihat apa yang akan terjadi jika saya bisa melakukan trailing stop SETELAH perdagangan menguntungkan untuk selalu mendapatkan keuntungan. Backtesting bekerja seperti pesona pada kenaikan pendapatan dan produksi 13 kehilangan setiap perdagangan tunggal. Aku tahu itu setelah algo saya kehilangan 3400 dalam beberapa jam (pelajaran yang sangat mahal). Menjaga penerapan strategi tetap sinkron sangat sulit dan menjadi hampir tidak mungkin bila Anda ingin melakukannya secara terdistribusi. Dan Anda tidak ingin memiliki dua versi strategi Anda yang hampir identik. Kecuali Anda memiliki cadangan 3400. Menggunakan bahasa yang berbeda Saya suka Python. Dan Erlang. Dan Clojure. Dan J. Dan C. Dan R. Dan Ruby (sebenarnya tidak saya benci Ruby). Saya ingin bisa memanfaatkan kekuatan bahasa lain di sistem saya. Saya ingin mencoba strategi di R dimana ada perpustakaan yang sangat bagus dan ada komunitas besar di belakangnya. Saya ingin memiliki Erlang untuk mengkodekan kode saya dan C menjadi data crunch. Jika Anda ingin sukses (tidak hanya dalam trading), Anda harus bisa menggunakan semua sumber daya yang tersedia tanpa prasangka. Saya telah belajar banyak hal dari bergaul dengan pengembang R mengenai bagaimana Anda bisa mendapatkan obligasi lindung nilai dan memvisualisasikannya atau mengapa rasio Sharpe bisa menjadi kebohongan. Setiap bahasa memiliki kerumunan yang berbeda dan Anda ingin banyak orang menuangkan ide ke dalam sistem Anda. Jika Anda mencoba menerapkan strategi dalam bahasa yang berbeda maka semoga berhasil dengan (2). Apakah Anda yakin sekarang Nah, saya tidak berusaha meyakinkan Anda karena for-loopers adalah cara yang bagus untuk menjalankan tes awal Anda. Begitulah saya memulai dan untuk banyak strategi yang tidak saya kirimkan ke pipa. Cara yang lebih baik (sehingga Anda bisa tidur di malam hari) adalah generator acara. Datang berikutnya, berbagi dan membahas backtester saya yang paling sederhana (tapi paling sukses) Jika Anda memiliki lebih banyak umpan balik, ping saya di jonromero atau masuk ke buletin. Legal outro Ini adalah tutorial teknik tentang bagaimana membangun platform algotrading untuk eksperimen dan FUN. Ada saran disini bukan nasihat finansial. Jika Anda kehilangan uang (atau semua) Anda karena Anda mengikuti saran perdagangan atau menggunakan sistem ini dalam produksi, Anda tidak dapat menyalahkan blog acak ini (dan juga saya). Nikmati risiko Anda sendiri. Sebelum menjalankan sistem live algotrading, ini adalah praktik yang baik untuk melakukan backtest (itu berarti menjalankan simulasi) algoritma kami. Ingatlah bahwa ini tidak berarti bahwa jika sistem Anda membunuhnya selama 5 tahun terakhir setiap bulan, ini akan menghasilkan keuntungan, namun ini merupakan indikator bagus bahwa Anda mungkin menyukai sesuatu. Ada empat hal yang perlu kita pertimbangkan saat melakukan backtesting: Kualitas data Bagaimana cara memuatnya secara efisien Bagaimana membangun sistem backtesting kami Cobalah untuk melakukan backtesting dan sistem live kita berbagi sebanyak mungkin kode yang kita bisa hari ini. , Kita akan fokus pada (1) dan (2). Untuk data Forex, saya menggunakan GainCapital. Data mereka berupa kutu. Untuk sumber gratis itu cukup bagus. Dulu saya menggunakan layanan data historis Oandas namun sepertinya mereka memindahkannya ke produk premium. Sangat buruk. Pastikan Anda menggunakan data GainCapitals hanya untuk eksperimen. Untuk jenis data historis berbayar lainnya (ETF, saham, opsi stc), saya menggunakan eoddata (mereka juga memiliki beberapa data historis forex tapi saya tidak menggunakannya). Lets download data selama seminggu dan percobaan sedikit. Tautan ke data adalah ratedata. gaincapital20151120NovemberEURUSDWeek1.zip untuk minggu pertama bulan November 2015. Pertama, kita perlu unzip file. Python gtunzip EURUSDWeek1.zip dan kamu akan mendapatkan file 25MB bernama EURUSDWeek1.csv. Ini adalah data untuk satu minggu untuk satu pasangan mata uang. Anda bisa membayangkan jumlah data yang Anda butuhkan untuk memproses semua mata uang selama lima tahun terakhir (petunjuk: banyak). Tapi jangan khawatir, kita akan mengoptimalkan ini. Untuk saat ini, mari buka file dan periksa. Hal yang kita pedulikan adalah RateDateTime, RateBid dan RateAsk. Seperti yang Anda ketahui setiap baris memiliki cap waktu dan berapa harga untuk membeli atau menjual. Format yang didownload oleh layanan lainnya sangat mirip. Ada banyak cara untuk memuat data ini menjadi Python tapi yang paling disukai saat membahas data mengiris dan memanipulasi menggunakan Panda. Kita selalu bisa menggunakan perpustakaan csv untuk memuat data (dan mungkin lebih cepat) tapi kita perlu melakukan beberapa optimasi dan pemrosesan terlebih dahulu karena Anda akan melihatnya cukup mudah dengan panda. Alat hebat lainnya untuk memuat TONS GBs dengan cukup efisien dan sangat cepat adalah dengan menggunakan Bcolz. Terlipat dalam posting yang jauh kemudian (atau Anda dapat membaca pratinjau jika Anda mendaftar di buletin. Memanipulasi data menggunakan Pandas Data yang kami download ada di kutu. Kecuali kami membangun algoritma UHFT (ultra high frequency trading), itu adalah Jauh lebih efisien (memori, penyimpanan dan pengolahan-bijaksana) untuk mengelompokkan kutu ini menjadi beberapa detik (atau beberapa menit atau jam tergantung pada strategi Anda). Hal ini akan membuat skala unduhan kami turun dari 25MB menjadi hanya 35KB yang berarti kinerja BESAR dan manfaat memori. Mari kita mengelompokkan semua data ini dalam 15 menit Bagaimana Waktu untuk jatuh cinta dengan resample. Disiapkan dataset terlihat seperti ini: Ini disebut bar OHLC (Open High Low Close) setiap 15 menit. Anda dapat melihat sekarang bahwa kutu adalah Dikelompokkan dalam segmen 15 menit dan Anda memiliki titik tertinggi dan terendah yang harganya dicapai selama 15 menit ini dan juga openclose untuk jual beli. Emas murni Tidak hanya Anda memiliki semua informasi yang Anda butuhkan tapi sekarang sangat cepat untuk memuatnya. . Anda hanya Perlu untuk menyimpan data: dan kemudian Anda dapat menggunakan kembali file 35kb ini. Kita bisa menulis algoritma momentum sederhana yang memeriksa apakah ada pergerakan besar 15 menit terakhir dan jika memang demikian, mari kita beli. Kita akan menyelami ini di posting selanjutnya. Anda bisa melihat kode seperti biasa di github. Jika Anda memiliki lebih banyak umpan balik, ping saya di jonromero atau masuk ke buletin. Legal outro Ini adalah tutorial teknik tentang bagaimana membangun platform algotrading untuk eksperimen dan FUN. Ada saran disini bukan nasihat finansial. Jika Anda kehilangan uang (atau semua) Anda karena Anda mengikuti saran perdagangan atau menggunakan sistem ini dalam produksi, Anda tidak dapat menyalahkan blog acak ini (dan juga saya). Nikmati risiko Anda sendiri. Sebelum membangun sistem algotrading, Anda perlu tahu bagaimana melakukan perdagangan secara manual. Yang sebenarnya berarti bahwa Anda perlu kehilangan uang sendiri sebelum menyalahkan mesin itu. Sesimpel itu. Jadi, mari kita bicara tentang Foreign Exchange atau Forex sebagai orang keren menyebutnya. Pertama-tama, mengapa kita memilih Forex untuk algotrading Mengapa kita tidak menjadi jutawan seperti orang lain Mengapa tidak hanya membeli Tesla, Amazon, Google, Facebook, Twitter dan berharap untuk yang terbaik (PS: tolong baca outro resmi di akhir Posting blog ini sebelum membeli saham). Jawaban yang mudah. Anda tidak bisa menang (atau kehilangan) uang cukup cepat dengan membeli saham. Forex memiliki bagus (atau mengerikan, tergantung dari sisi mana mata uang Anda) yang disebut leverage. Leverage bisa 1:10, 1:50, 1: 100, 1: 200, 1: 1000 tergantung bagaimana bunuh diri Anda atau seberapa samar broker Anda (jangan khawatir, bicarakan dengan baik broker di posting berikutnya). Mari kita lihat sebuah contoh. Kami ingin menempatkan perdagangan 1k. Yang logis adalah bahwa untuk membeli sesuatu yang berharga 1k, Anda harus memiliki akun Anda 1k, bukan tidak. Anda selalu bisa mendapatkan pinjaman. Oooooooor: Masukkan leverage. Jika kita memiliki leverage 1: 100, kita dapat menempatkan sebuah perdagangan dan kontrol 1k dengan hanya 10. Bagi mereka yang gagal dalam matematika (jangan malu, saya adalah salah satu dari Anda), 10 x 100 (leverage) 1.000. Itu berarti Anda bisa berdagang besar dan menang besar Sebenarnya 100 kali lebih besar. Hasil tangkapannya adalah Anda bisa benar-benar pergi 100 kali lebih kecil. Mari punya contoh lain. Saya baru saja mendapatkan bonus saya (1k) dan saya ingin bermain di Forex. Without any leverage, I can buy 1,000 Forex units that cost 1 (by the way, there are no Forex units but well talk about this later). How many units can I buy with 1:50 leverage If you answer if 100,000, you did something wrong. The answer is 50,000 (1,000 x 50 leverage). Itu dia. One of the reasons that we are doing Forex, is because you can lose win big. Well get back to leverage when we start placing trades. There are three more exciting reasons actually that are even more awesome (dare to say awesomer). Forex (almost) never sleeps. The markets are open ALL DAY, six days per week. To be more exact, there is not one market but four and they are overlapping providing the all day effect. Forex is very volatile and there are tons of money moving around (more than 5 trillion per day ). Crazy right No fees on trades. You dont pay 10 per trade like you are doing with stocks. Here you pay the spread which is just a fraction of a cent (again, well talk about this in another post). All these reasons (leverage, all-day, volatility, fees) make Forex the most exciting platform to build and deploy your algorithms. Coming up next, Forex brokers. How not to be scammed before even writing a line of code. If you have more feedback, ping me at jonromero or signup to the newsletter. Legal outro. This is an engineering tutorial on how to build an algotrading platform for experimentation and FUN. Any suggestions here are not financial advices. If you lose any (or all) you money because you followed any trading advices or deployed this system in production, you cannot blame this random blog (andor me). Enjoy at your own risk. Itu dia. Every week, I get at least 10 DMs on twitter asking on how to experiment with algotrading, Forex and portfolio analysis and Ive decided that its time to do something about it. Update: Find the posts here . So, I am planning to cover the basics of how to build your own trading platform, write your own strategies and go on vacations while electrons are making you money. Or zeroing your account. Either way, it is going to be fun The majority of the examples are going to be in Python even though there might be parts in Erlang and Ill try to keep it as easy as it can be. Lets talk now about what the final product will look like. We are building a system where you will be able to: Simulate your strategy (this is called backtesting ) Execute your strategy without supervision Alert you via smsemail for trades and errors Be scalable and trivial to deploy new updates Being able to run even from your home (from a raspberrypi for example) I assume this is going to be a total of 20 chapters, give or take. That is a system similar to the one that I am running the last year and includes a UI, sms alerts, backtesting pipeline, continuous delivery and all the cool stuff that us geeks love. All code will be on github and if everything goes well, Ill wrap it up in a book for everyone to enjoy. I have like three chapters almost done, so if you want early access just ping me at - jonromero . These are all the post that have been written up until now. I may addremove post as I get more feedback. I love Forex because: It has enormous amount of data (volume) These data are coming extremely fast (velocity) You need to consider multiple resources when you are building your strategy (variety) My definition of BigData is that you have volume-velocity-variety information and you need to react on it right now (realtime). It is one of the main reasons why I dont like Hadoop (ok, the other is because I dont like Java:). Forex is the best place if you want to start playing with BigData. You have (at least) one data channel, hitting you with data, you need to keep running algorithms on this stream (sometimes doing correlations up to a week) and you need be able to respond very fast. If a garbage collector kicks in or if you need to grab data from a database (even if this DB is in memory - long live Redis) then you will have issues. Thats the reason why most of the trading databases have all their data in the same memory space and have custom languages doing the analysis (like Kdb ). That was the inspiration for LDB. Millions of data sources (mobile phones), hitting your database and calculatingupdating for each one of the requests thousands of counters and running all sorts of algorithms. Per request. In realtime. But lets face it. The vast majority of userscompanies will never have millions (or even thousands) of requests hitting their servers. Thats why I started a new opensource database with codename: HybrisDB. HDB has the following characteristics: Simple to install (no moving parts) Simple to use (pre-defined dashboards) It will be perfect for the 99 of userscompanies but not for the 1 like Facebook or Google (sacrificing Enterprise features) The concept is to have a dashboard, to watch indicators going onoff and then (maybe) connect to a system to place an order. Sounds like an interesting cool hobby project and I still try to decide between using Erlang or Clojure for this. Ping me on twitter if you have any ideas One of my new years resolution was study one of your habits each month and I decided to focus on what activities I am spending my online time. So, I installed RescueTime which is a very cool app that sits on the background and creates reports about which apps and sites you are using the most. And no, it is not sending that info to NSA (you are not that important). Even though I spent most of my time working, writing and communicating, I also spent around 2 hours on average on Facebook (gasp). No biggie. What I hated was that for the majority of times I was scrollingrefreshing for new updates. Like opening your refrigirator every two minutes even though you know it is empty Damn you habits So, spending 2 hours every day (sometimes more) on Facebook, means 60 hours per month or 7 working days . 7 freaking working days each month. 7 days, each day with 8 full hours, to sleep, go out, exercise, write a book, learn something new. What I did was installing StayFocused. a free plugin for your browser that doesnt let you spent more than 10 minutes on specific sites everyday. Dan coba tebak. The I am just using facebook to communicate is such a lame excuse as I had no problem communicating with my friends, even by using facebook for 10 minutes. Now, give it a shot and tell me what you built in your spare time
Comments
Post a Comment