Pencipta memperkenalkan perdagangan kuantitatif - dari asas hingga ke pertempuran sebenar

Penulis:Kebaikan, Dicipta: 2019-06-25 15:48:58, Dikemas kini: 2023-10-31 21:01:08

Apabila harga jatuh dari atas ke bawah, iaitu apabila harga memecahkan garis sokongan, kita menganggap bahawa kekuatan udara semakin kuat, gelombang trend penurunan telah terbentuk, dan isyarat jual terbuka dihasilkan.imgRajah 4-20

Jika harga jatuh semula ke arah garis tengah Brin selepas membeli, kita menganggap bahawa kekuatan pelbagai pihak sedang melemah, atau kekuatan kosong sedang meningkat, menghasilkan isyarat kedudukan rata; jika harga jatuh semula ke arah garis tengah Brin selepas menjual, kita menganggap bahawa kekuatan kosong sedang melemah, atau kekuatan pelbagai pihak sedang meningkat, menghasilkan isyarat kedudukan rata.

Syarat jual beli

Pemasaran berbilang:如果无持仓,并且收盘价大于上轨,并且时间非14:45 Perdagangan kosong:如果无持仓,并且收盘价小于下轨,并且时间非14:45 Pelbagai kedudukan:如果持多单,并且收盘价小于中轨,或者时间是14:45 Perhentian kosong:如果持空单,并且收盘价大于中轨,或者时间是14:45

Pelaksanaan kod strategi

Untuk melaksanakan strategi, kita perlu terlebih dahulu memikirkan apa data yang kita perlukan? melalui API apa untuk mendapatkannya? kemudian bagaimana untuk mengira logik urus niaga? dan akhirnya dengan cara apa untuk melakukan urus niaga?

Langkah 1: Gunakan Rangka Kerja Strategi CTA

Rangka kerja strategi CTA adalah satu set standard yang diperkenalkan secara rasmi oleh pencipta kuantitatif, yang digunakan untuk tidak perlu memikirkan masalah kecil untuk membangunkan strategi dagangan kuantitatif, dan memberi tumpuan langsung kepada logik dagangan pemrograman. Sebagai contoh, jika tidak menggunakan rangka kerja ini, anda perlu mempertimbangkan masalah pemindahan bulan, harga jual beli pesanan, penarikan atau pengesanan pesanan ketika tidak berurusan, dan sebagainya.imgRajah 4-21

Gambar di atas adalah kerangka strategi CTA menggunakan alat kuantiti pencipta. Ia adalah format kod tetap, semua kod logik urus niaga ditulis dari baris ke-3.

Perlu diperhatikan bahawa kod varieti dalam gambar di atas adalah rb000/rb888. Ini bermaksud bahawa data isyarat digunakan adalah rb000, data urus niaga digunakan adalah rb888, dan pemindahan bulan secara automatik.

FMZ mempunyai perpustakaan kelas perdagangan komoditi berjangka yang dibina dalam JavaScript, yang boleh digunakan dalam kod dengan mengklik rujukan secara langsung di antara antara antarmuka editor dasar:img

Langkah 2: Dapatkan pelbagai data

Berfikir dengan teliti, apa data yang diperlukan? Dari logik perdagangan strategi kami, kami mendapati: pertama, kita perlu mendapatkan status pegangan semasa, kemudian membandingkan hubungan antara harga penutupan dengan arah bawah pada petunjuk tali pinggang Brin, dan akhirnya menilai sama ada pasaran akan ditutup.

Mengambil data garis K

Pertama adalah untuk mendapatkan matriks K-line dan harga penutupan K-line atas, kerana dengan mempunyai matriks K-line, anda boleh mengira penunjuk tali pinggang; ditulis dengan kod seperti ini:imgRajah 4-22

Seperti gambar di atas: Barisan 4: Dapatkan Array K-Line, yang merupakan format tetap. Baris 5: Penapis panjang K, kerana parameter yang kita gunakan untuk mengira penunjuk tali pinggang adalah 20, tidak dapat mengira penunjuk tali pinggang apabila K kurang daripada 20 butir. Jadi di sini, untuk menapis panjang K, jika K kurang daripada 20 butir, kembali terus dan terus menunggu untuk K seterusnya. Baris ke-6: Dari matriks K yang diperoleh, objek yang mempunyai akar K pertama diambil, dan kemudian harga penutupan diambil dari objek tersebut. Mengambil unsur kedua bilangan integral suatu matriks, iaitu panjang matriks ini dikurangkan 2 ((r[r.length - 2]); unsur dalam matriks K adalah satu objek, objek yang mengandungi harga bukaan, harga tertinggi, harga minimum, harga penutupan, jumlah transaksi, masa, untuk mendapatkan harga penutupan ditambah dengan tanda.

Mengambil data masa K-line

Oleh kerana kita adalah strategi dalam hari, kita perlu menyamakan kedudukan sebelum penutupan, jadi untuk menentukan sama ada garis K semasa adalah dekat dengan penutupan, jika garis K yang dekat dengan penutupan, kita akan menyamakan kedudukan, jika tidak garis K yang dekat dengan penutupan, kita boleh membuka kedudukan, dengan kod yang ditulis seperti ini:imgRajah 4-23

Seperti gambar di atas: Baris 8: Dapatkan sifat timestamp pada root K dan buat objek masa ((new Date)). Baris ke-9: Mengikut objek masa, kiralah bilangan jam dan minit masing-masing dan tentukan apakah waktu pada garis akar K adalah 14:45.

Mengambil data simpanan

Maklumat pegangan adalah satu syarat penting dalam strategi dagangan kuantitatif. Apabila syarat dagangan ditubuhkan, anda juga perlu menilai sama ada anda akan membuat pesanan dengan status pegangan dan jumlah pegangan. Contohnya: apabila syarat dagangan terbuka dibeli, jika ada pegangan, anda tidak perlu membuat pesanan berulang; jika tidak ada pegangan, anda boleh membuat pesanan.imgRajah 4-24 Seperti gambar di atas: Baris 11: Dapatkan status simpanan semasa. Jika ada banyak pesanan, nilai adalah 1; jika ada pesanan kosong, nilai adalah 1; jika tidak ada simpanan, nilai adalah 0.

Mengambil data tali pinggang

Seterusnya, anda perlu mengira nilai arah, tengah, dan bawah arah penunjuk Brin. Pertama, anda perlu mendapatkan matriks Brin, dan mendapatkan nilai arah atas dan bawah dari matriks tersebut. Dalam alat pengukuran pencipta, mendapatkan matriks Brin masih mudah, anda boleh memanggil API Brin secara langsung, yang sukar adalah mendapatkan nilai arah atas dan bawah, kerana matriks Brin adalah satu kumpulan bilangan dua dimensi.

Matriks dua dimensi sebenarnya sangat mudah difahami, ia adalah matriks dalam matriks, maka susunan yang diperoleh adalah sebagai berikut: mula-mula mendapatkan matriks yang ditentukan dalam matriks, dan kemudian mendapatkan unsur yang ditentukan dari matriks yang ditentukan, seperti yang ditunjukkan di bawah:imgRajah 4-25

Seperti yang ditunjukkan di bawah, baris 13 hingga 19 adalah kod untuk mendapatkan nilai lintasan, pusat lintasan, dan bawah lintasan tali pinggang Brennan. Di antaranya baris 13 adalah API yang menggunakan alat kuantitatif pencipta secara langsung untuk mendapatkan matriks tali pinggang Brennan; baris 14 hingga 16 terlebih dahulu memperoleh matriks tali pinggang, pusat lintasan, dan bawah lintasan dalam matriks dua dimensi; baris 17 hingga 19 adalah nilai lintasan, pusat lintasan, dan bawah lintasan tali pinggang Brennan yang diperoleh dari matriks tali pinggang, tengah lintasan, dan bawah lintasan K.imgRajah 4-26

Langkah ketiga: Buat pesanan

Dengan data di atas, anda boleh menulis logik urus niaga dan kod urus niaga. Formatnya juga sangat mudah, yang paling biasa digunakan adalah kata-kata if, yang boleh digambarkan dengan kata-kata: jika syarat 1 dan syarat 2 berlaku, urus niaga; jika syarat 3 atau syarat 4 berlaku, urus niaga. Seperti yang ditunjukkan di bawah:imgRajah 4-27

Dalam gambar di atas, baris ke-21 hingga 24 adalah kod untuk logik dagangan dan perdagangan pesanan seterusnya. Dari atas ke bawah adalah: biasa, kosong, kosong, terbuka.

Sebagai contoh, ini adalah kalimat if yang boleh dilepaskan jika hanya satu baris kod yang dijalankan dalam kalimat ini. Perkataan ini diterjemahkan sebagai: jika pegangan semasa adalah 0, dan harga penutupan lebih besar daripada tren, dan masa garisan K bukan 14:45, maka return 1 ton.

Jika anda berhati-hati, anda mungkin akan melihat bahawa beberapa baris ini mempunyai penukaran return 1 dan penukaran return -1, yang merupakan format tetap, yang bermaksud: jika dibeli, tulis penukaran return 1; jika dijual, tulis penukaran return -1.

Kod strategi lengkap

Dengan ini, kod strategi yang lengkap telah ditulis, dan jika anda menulisnya secara berasingan seperti rangka kerja dagangan, data dagangan, logik dagangan, pembelian pesanan, dan sebagainya, adakah ia mudah? Berikut adalah kod keseluruhan strategi:imgRajah 4-28

Terdapat dua tempat yang perlu diperhatikan: cuba (tetapi tidak semestinya) menulis logik strategi sebagai apabila syarat-syarat akar K terbentuk, akar bawah K dikeluarkan, atau akar atas K dikeluarkan, apabila syarat-syarat akar K dikeluarkan, hasil yang diulang-ulang tidak berbeza dengan hasil rak sebenar. Tidak boleh ditulis dengan cara ini, tetapi perhatikan sama ada logik strategi adalah betul. Secara umum, menulis logik kedudukan kosong di hadapan logik perdagangan terbuka, tujuan untuk melakukan ini adalah untuk memastikan logik strategi sesuai dengan jangkaan anda.

Ringkasan

Di atas, kita belajar setiap langkah untuk membangunkan strategi dagangan kuantitatif seharian yang lengkap, termasuk: gambaran strategi, kaedah pengiraan penunjuk tali pinggang, logik strategi, syarat jual beli, pelaksanaan kod strategi, dan sebagainya. Dengan contoh strategi ini, bukan sahaja kita mengetahui kaedah pengaturcaraan alat kuantitatif pencipta, tetapi juga kita boleh mengubah strategi yang berbeza berdasarkan templat ini.

Strategi dagangan kuantitatif tidak lebih daripada ringkasan pengalaman atau sistem dagangan subjektif, jika kita menulis pengalaman atau sistem yang digunakan dalam perdagangan subjektif secara berasingan sebelum menulis strategi, dan kemudian menerjemahkannya satu persatu ke dalam kod, anda akan mendapati bahawa menulis strategi akan menjadi lebih mudah. Cuba!

Pengumuman seterusnya

Dalam pembangunan strategi dagangan kuantitatif, jika hanya ada satu bahasa pengaturcaraan yang boleh dipilih, jangan ragu-ragu untuk memilih Python, dari pengambilan data hingga pengukuran semula strategi hingga transaksi, Python telah merangkumi keseluruhan rantaian perniagaan.

Kerja Selepas Kelas

1. Cuba menggunakan pengetahuan dalam seksyen ini untuk melaksanakan strategi dua hala yang sama. 2. Cuba untuk melaksanakan algoritma penunjuk KDJ menggunakan bahasa JavaScript dalam alat kuantitatif pencipta.

4.3 Pengenalan Bahasa Python

Ringkasan

Dalam pembangunan strategi dagangan kuantitatif, jika hanya ada satu bahasa pengaturcaraan yang boleh dipilih, jangan ragu-ragu untuk memilih Python, dari pengambilan data hingga pengukuran semula strategi hingga dagangan. Python telah merangkumi keseluruhan rantaian perniagaan.

Mengapa kita perlu belajar banyak bahasa pengaturcaraan?

Dengan mengulas kursus sebelumnya, sepanjang perjalanan, kami belajar bersama-sama: Bahasa Mac, Bahasa Visualisasi, Bahasa JavaScript, termasuk bahasa Python yang akan dipelajari di bahagian ini. Mungkin ada rakan yang akan bertanya, saya datang untuk belajar perdagangan kuantitatif, mengapa belajar begitu banyak bahasa pengaturcaraan?

Sebenarnya, setiap bahasa pengaturcaraan mempunyai ciri bahasa sendiri, bahasa ini tidak mempunyai kelebihan dan kekurangan, lebih kepada melihat strategi yang lebih sesuai dengan bahasa pengaturcaraan, dan sama ada bahasa pengaturcaraan ini sesuai dengan anda sendiri. Oleh itu, ada pepatah, hanya cuba sendiri untuk mengetahui.

Pada masa yang sama, kami juga komited untuk membuka pintu kuantiti kepada semua orang, menyebarkan pengetahuan tentang pelbagai bahasa pengaturcaraan, kuantiti tidak begitu mendalam dan tidak dapat dicapai seperti yang kita bayangkan, dan kami percaya kuantiti masa depan akan menjadi umum dan popular.

Perdagangan Kuantitatif Mengapa Pilih Python

Proses transaksi kuantitatif adalah untuk mendapatkan data, menganalisis data pengiraan, memproses data, dan lain-lain. Dalam analisis data, tidak ada bahasa lain yang dapat menghitung dan mengekalkan prestasi seperti Python. Khususnya dalam data analisis rentetan masa (k-line adalah data rentetan masa).

Lima sebab utama untuk memilih Python

1. Penggunaan kuantiti secara meluas:

Qantopian di Amerika Syarikat dan pencipta di negara ini boleh mengutip bahasa Python.

2. Mudah dipelajari:

Falsafah reka bentuk Python adalah berpusat pada pengguna dan merupakan bahasa penafsiran yang mudah di-debug.

3. Sumber terbuka percuma:

Tidak ada kos penggunaan, perkongsian kod sumber terbuka, meningkatkan pembelajaran dan kecekapan penggunaan.

4. Perpustakaan yang kaya:

Pengolahan data, pengolahan data, penglihatan, analisis statistik, analisis teknikal, pembelajaran mesin...

5. Antara muka aplikasi:

Data platform yang berlainan mendapat antara muka untuk menyimpan panggilan dan pautan pesanan dalam masa nyata.

Strategi Lengkap

Untuk membantu anda memahami pengetahuan utama dalam seksyen ini dengan cepat, sebelum kita memperkenalkan pengenalan cepat kepada pencipta bahasa JavaScript kuantitatif, kita perlu mempunyai pemahaman awal mengenai konsep nama dalam seksyen ini.

Pemasaran berbilang: Jika tidak ada kedudukan semasa, dan garis purata 5 kitaran lebih besar daripada garis purata 20 kitaran.Perdagangan kosong: Jika tidak ada kedudukan semasa, dan garis rata 5 kitaran kurang daripada garis rata 20 kitaran.Pelbagai kedudukan: jika anda mempunyai banyak pesanan pada masa ini, dan garis purata 5 kitaran kurang daripada garis purata 20 kitaran.Perhentian kosong: Jika anda memegang pesanan kosong pada masa ini, dan garis purata 5 kitaran lebih besar daripada garis purata 20 kitaran.

Jika ditulis dalam kod bahasa Python, ia akan kelihatan seperti ini:imgRajah 4-29

Kod dalam gambar di atas adalah satu strategi perdagangan kuantitatif yang lengkap yang ditulis dalam bahasa Python. Ia boleh dijalankan secara langsung dan membuat pesanan secara automatik. Dari segi jumlah kod, bahasa Python lebih banyak daripada bahasa JavaScript, kerana kita tidak menggunakan kerangka perdagangan CTA.

Tetapi proses reka bentuk keseluruhan strategi adalah hampir sama: menetapkan jenis perdagangan, mendapatkan data K-line, mendapatkan maklumat simpanan, mengira logik dagangan, membeli dan menjual pesanan.

Pilihan versi

Terdapat dua versi Python, iaitu: Python 2 dan Python 3. Terdapat satu petikan yang mengatakan bahawa Python adalah seperti pistol berpasang, tetapi hanya boleh melepaskan peluru dengan satu tiub pada satu masa, tetapi anda tidak akan pernah tahu dengan tepat mana yang lebih tepat. Jadi jika anda seorang pemula Python, kami mengesyorkan untuk belajar Python 3 dengan segera kerana ia adalah terkini dan komuniti Python sentiasa dikekalkan. Kursus kami juga diajar dengan Python 3.

Pengiktirafan

Pengiktirafan juga merupakan nama pembolehubah, seperti dalam gambar berikut: test, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test12, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, test10, etc.demo dan lain-lain. Semua perkataan di dalam Python (nama pembolehubah, nama fungsi dan pengendali) ditulis dengan huruf besar, iaitu nama pembolehubah test dan nama pembolehubah Test adalah dua variabel yang berbeza.), yang seterusnya boleh menjadi nombor, seperti yang ditunjukkan di bawah:imgRajah 4-30

Catatan

Nota adalah terjemahan atau penjelasan bagi satu baris kod, dengan peraturan yang sangat mudah, yang terdiri daripada nota baris tunggal dan nota peringkat blok. Nota baris tunggal bermula dengan tanda sumbu ((#), nota blok bermula dengan tiga tanda kutip tunggal (() atau tiga tanda kutip ganda ((""")), dan berakhir dengan tiga tanda kutip tunggal (()) atau tiga tanda kutip ganda (("""), seperti yang ditunjukkan di bawah:imgRajah 4-31

Pergerakan dan penyusutan

Ciri utama Python ialah menggunakan penyempitan untuk mewakili blok kod, tanpa memerlukan tanda kurung besar {}. Bilangan ruang yang disempitkan adalah berubah-ubah, tetapi pernyataan dalam blok kod yang sama mesti mengandungi bilangan ruang yang disempitkan yang sama. Seperti gambar di bawah: dalam kes ini, program akan melaporkan kesalahan. Walaupun jika syarat berlaku, tidak akan mengeluarkan True, kerana Python akan memeriksa secara automatik sama ada sintaks kod betul sebelum kod dijalankan, jika kod format yang salah, program tidak akan dijalankan.imgRajah 4-32

Variabel

Variabel boleh menyimpan apa-apa jenis data, menulis nama pembolehubah secara langsung adalah untuk mencipta pembolehubah, tetapi apabila mencipta pembolehubah, anda perlu menetapkan nilai pembolehubah pada masa yang sama, jika tidak, program akan memberikan ralat..imgRajah 4-33

Data

Python mempunyai enam jenis data, iaitu tiga data tidak berubah, dan tiga data yang boleh diubah. Data tidak berubah, sekali dibuat, nilai tidak boleh diubah, alamatnya unik di dalam memori; data berubah adalah rujukan kepada alamat di dalam memori, jika nilainya berubah, alamat memori tidak berubah. Data yang tidak boleh diubah (tiga): Number (angka), String (string), Tuple (group); Data yang boleh diubah (tiga): List (daftar), Dictionary (kamus), Set (kumpulan).imgRajah 4-34

Angka

Jenis nombor dalam Python menyokong fungsi int (integral), float (float), boolean (bool), complex (plural), dan built-in (type) yang boleh digunakan untuk menanyakan jenis objek yang dirujuk oleh pembolehubah.imgRajah 4-35

Operator

Seperti kebanyakan bahasa, operasi matematik dalam Python adalah sangat intuitif. Operator aritmatika, operator perbandingan, atau operator logik adalah seperti yang kita ketahui di sekolah. Operator aritmatika adalah operasi matematik penggandaan dan pengurangan. Operator perbandingan dapat membandingkan dua nilai sama ada lebih kecil atau kurang.imgRajah 4-36

Perlu diperhatikan bahawa: and adalah logik dengan, yang bermaksud dan . or adalah logik atau, yang bermaksud atau . ! adalah tidak logik, yang bermaksud atau : Tanda dan tanda adalah apabila semua syarat adalah benar, maka keadaan akhir adalah benar; or adalah dalam semua syarat, selagi ada salah satu syarat yang true, maka syarat akhir adalah true.

Keutamaan

Jika terdapat ungkapan 100* ((10-1) / ((10+5)), langkah mana yang akan dihitung terlebih dahulu? Matematik sekolah menengah memberitahu kita: Jika operasi adalah tahap yang sama, biasanya pengiraan dilakukan dari kiri ke kanan. Jika terdapat kedua-dua pengurangan dan penggandaan, perkalian terlebih dahulu. Jika terdapat tanda kurung, pendahuluan di dalam tanda kurung. Jika sesuai dengan undang-undang operasi, pengurangan boleh dilakukan menggunakan undang-undang operasi. Keutamaan bahasa Mac juga berlaku, seperti gambar berikut:imgRajah 4-37

Nilai Bull

Bulat mewakili benar dan palsu, biasanya digunakan dalam penilaian syarat dan kata-kata loop. Python mendefinisikan dua konstanta yang dilambangkan sebagai Bulat Benar dan Bulat Flase mewakili benar. Sebenarnya, mana-mana objek boleh ditukar kepada Bulat, atau boleh digunakan secara langsung untuk penilaian syarat, seperti yang ditunjukkan di bawah:imgRajah 4-38

String

String adalah huruf, yang sering digunakan untuk menetapkan kod jenis seperti string if1905. String dalam Python menggunakan tanda kutip tunggal atau tanda kutip ganda. Tambahan + adalah penghubung string.imgRajah 4-39

Senarai

Senarai adalah jenis data yang paling kerap digunakan dalam Python, dan anda boleh membayangkan senarai sebagai bekas, tetapi elemen dalam bekas disusun dari kiri ke kanan, dengan elemen pertama adalah 0, elemen kedua adalah 1, dan sebagainya. Selain itu, senarai Python boleh menyimpan jenis data apa sahaja, seperti yang ditunjukkan di bawah:imgRajah 4-40

Fungsi

Fungsi dalam Python tidak berbeza dengan fungsi di sekolah menengah kita, dan anda boleh memahami apa yang dihantar, dan apa yang dikeluarkan melalui pengiraan fungsi, seperti yang ditunjukkan di bawah:imgRajah 44-41

Perkataan if

if statements sering muncul dalam kehidupan kita, seperti: jika hari ini hujan, saya akan bertaruh. Maksudnya, if statements hanya akan menjalankan kod apabila syarat yang ditetapkan adalah benar. Perhatikan, perhatikan format penyempitan kod, jika tidak, ia akan menghasilkan kesilapan Python!imgRajah 44-42

if...else frasa

if...else juga merupakan ayat yang biasa digunakan, seperti: jika hujan hari ini, saya akan bertaruh; jika tidak, saya tidak akan bertaruh.imgRajah 44-43

Perkataan elif

Oleh kerana python tidak menyokong kata ganti, dalam pelbagai keadaan, Python hanya dapat melaksanakan kata ganti dengan kata elif. Contohnya: jika sinar matahari, saya melihat lebih banyak; jika tidak, saya melihat kosong; jika tidak, saya melihat; seperti yang ditunjukkan di bawah:imgRajah 44-44

untuk kitaran

Kadang-kadang kita perlu mendapatkan data K-line dalam beberapa hari terakhir, kita perlu mendapatkan data K-line dari array K-line, berdasarkan lokasi data K-line, maka menggunakan putaran for sangat mudah, seperti yang ditunjukkan di bawah:imgRajah 4-45

lingkaran while

Kita semua tahu pasaran sentiasa berubah, jika anda ingin mendapatkan array K-line terbaru, anda perlu terus menjalankan kod yang sama berulang kali, maka gunakan loop whilex, yang akan terus mendapatkan array K-line terkini selama syaratnya benar.imgRajah 44-46

Perkataan break dan continue

Loop adalah bersyarat, hanya apabila prasyarat ini adalah true, loop akan mula melakukan sesuatu secara berulang sehingga prasyarat ini adalah false, loop akan berakhir. Tetapi pernyataan break boleh melompat dari loop dengan serta-merta dalam proses pelaksanaan loop; pernyataan continue boleh menghentikan satu loop dan meneruskan pada loop seterusnya; seperti yang ditunjukkan di bawah:imgRajah 44-47

Perkataan return

return statement akan menghentikan pelaksanaan fungsi dan mengembalikan nilai fungsi. return statement hanya boleh muncul di dalam badan fungsi, dan muncul di mana-mana lagi dalam kod akan menyebabkan kesalahan tatabahasa!imgRajah 44-48

Struktur Strategi

Struktur strategi boleh difahami sebagai format tetap strategi, pencipta alat kuantitatif menggunakan model rundingan, berikut adalah struktur strategi niaga hadapan komoditi klasik.

Baris ke-4 hingga ke-7 adalah fungsi input utama keseluruhan program, iaitu komputer menjalankan kod bermula dari baris ke-4, kemudian menjalankan baris ke-5 secara langsung, dan memasuki loop tanpa henti; kemudian menjalankan fungsi logik strategi (onTick) dan fungsi tidur (Sleep) dalam loop tanpa henti; fungsi onTick juga merupakan baris pertama kod, anda boleh menulis logik strategi pada baris ke-2; kita tahu, dalam loop, kelajuan pelaksanaan program sangat cepat, maka menggunakan fungsi tidur (Sleep) boleh menghentikan sesi, dan satu kod generasi seterusnya (Sleep) adalah 500 pada setiap putaran, tidur 500 ms.imgRajah 44-49

Ringkasan

Ini adalah perkenalan ringkas mengenai bahasa Python, walaupun hanya asas yang mudah, tetapi ia boleh digunakan untuk menulis strategi dagangan kuantitatif yang mudah. Jika anda perlu menulis strategi yang lebih kompleks, anda boleh rujuk kepada dokumen API bahasa Python, alat kuantitatif pencipta.

Pengumuman seterusnya

Dalam strategi trend dalam bidang analisis teknikal, garis purata dan laluan pecah tidak diragukan lagi adalah dua aliran utama. Walaupun tujuan adalah untuk menangkap trend pergerakan harga, falsafah perdagangan dan ciri risiko kedua-dua strategi ini sangat berbeza. Setelah mempelajari perkenalan bahasa Python dalam seksyen ini, kita akan membawa anda menulis strategi perdagangan kuantitatif untuk laluan pecah.

Kerja Selepas Kelas

1. Cuba mendapatkan data K-line sejarah menggunakan bahasa Python dalam alat kuantiti pencipta. 2. Cuba tulis kod strategi di awal bahagian ini dan tulis nota.

4.4 Cara menggunakan bahasa Python untuk melaksanakan transaksi strategik

Ringkasan

Dalam artikel sebelumnya, kami telah mempelajari perkenalan bahasa Python, tatabahasa asas, kerangka strategi, dan sebagainya. Walaupun kandungan itu membosankan, ini adalah kemahiran yang diperlukan untuk mewujudkan strategi perdagangan anda, dan juga perlu dipelajari. Jadi dalam artikel ini, kami akan menggunakan besi panas, meneruskan asas Python pada artikel sebelumnya, bermula dari strategi yang mudah, belajar di sisi, dan langkah demi langkah membantu anda mewujudkan strategi perdagangan kuantitatif yang boleh dilaksanakan.

Rujukan strategi

Dari banyak strategi dagangan, strategi saluran Dongqian sepatutnya menjadi salah satu strategi terobosan klasik, yang telah terkenal sejak tahun 1970 ketika syarikat asing melakukan ujian dan kajian simulasi khusus untuk strategi dagangan terprogram utama, dan hasilnya menunjukkan bahawa dari semua ujian strategi, strategi saluran Dongqian adalah yang paling berjaya.

Kemudian, satu lagi latihan peniaga burung hantu yang paling terkenal dalam sejarah perdagangan berlaku di Amerika Syarikat, yang berjaya. Pada masa itu, kaedah perdagangan burung hantu itu dirahasiakan, tetapi lebih daripada sepuluh tahun kemudian, undang-undang perdagangan burung hantu itu diumumkan kepada orang ramai, sehingga orang ramai mengetahui bahawa burung hantu itu menggunakan strategi Dongchin yang lebih baik.

Strategi dagangan jenis terobosan adalah sesuai untuk jenis dagangan yang bergerak lebih lancar. Cara dagangan terobosan yang paling biasa adalah dengan menggunakan hubungan kedudukan harga dengan sokongan dan rintangan untuk menentukan titik jual dan beli dagangan tertentu. Strategi saluran Dongqian dalam seksyen ini juga berdasarkan prinsip ini.

Peraturan strategi laluan Dongjian

Saluran Dongqian adalah satu indikator trend, dengan penampilan dan isyarat yang agak serupa dengan indikator Blink-Blink. Tetapi saluran harga Dongqian dibina berdasarkan harga tertinggi dan harga terendah dalam tempoh tertentu. Sebagai contoh: apabila mengira nilai maksimum harga tertinggi 50 garis K terkini, ia membentuk lintasan; apabila mengira nilai minimum harga terendah 50 garis K terkini, ia membentuk lintasan. Indikator ini terdiri daripada 3 kurva warna yang berbeza, dengan harga tertinggi dan terendah pada 20 kitaran secara lalai untuk menunjukkan turun naik harga pasaran, apabila saluran yang sempit menunjukkan turun naik pasaran yang lebih kecil, sebaliknya saluran yang lebar menunjukkan turun naik pasaran yang lebih besar.

Jika harga melonjak ke atas, ia adalah isyarat beli; sebaliknya, jika harga melonjak ke bawah, ia adalah isyarat jual. Oleh kerana harga naik dan turunnya dikira dengan harga tertinggi dan terendah, dalam keadaan umum, harga jarang naik dan jatuh pada garis saluran ke bawah pada masa yang sama. Dalam kebanyakan kes, harga bergerak di sepanjang pergerakan naik atau turun secara serentak, atau bergerak di antara tren ke atas dan tren ke bawah.

Kaedah pengiraan saluran Dongjian

Dalam alat pengukuran pencipta, kaedah pengiraan saluran Dongjian sangat mudah, dengan menggunakan harga tertinggi atau minimum dalam kitaran yang ditentukan, seperti yang ditunjukkan di bawah: baris 5 adalah nilai maksimum untuk harga tertinggi 50 kitaran, baris 6 adalah nilai minimum untuk harga minimum 50 kitaran.imgRajah 4-50

Logik Strategi

Terdapat banyak cara untuk menggunakan saluran Dongguan, yang boleh digunakan secara berasingan atau boleh digunakan bersama-sama dengan indikator lain. Dalam kursus ini, kita akan menggunakan kaedah penggunaan yang paling mudah. iaitu: apabila harga dari bawah ke atas menembusi lintasan ke atas, iaitu menembusi garis tekanan di atas, kita menganggap bahawa kekuatan pelbagai pihak semakin kuat, gelombang kenaikan harga telah terbentuk, yang menghasilkan isyarat membeli dan membuka kedudukan; apabila harga dari atas ke bawah dan memecahkan garis sokongan, kita menganggap bahawa kekuatan di atas semakin kuat, gelombang penurunan telah terbentuk, yang menghasilkan isyarat menjual.imgRajah 4-51

Jika harga jatuh semula ke laluan tengah Dongjian selepas membeli, kita menganggap bahawa kekuatan multilateral semakin lemah, atau kekuatan udara semakin kuat, dan menghasilkan isyarat perpecahan; jika harga kembali ke laluan tengah Dongjian selepas menjual, kita menganggap bahawa kekuatan udara semakin lemah, atau kekuatan udara semakin kuat, dan menghasilkan isyarat perpecahan.

Syarat jual beli Pemasaran berbilang: jika tiada saham dan harga penutupan lebih tinggi daripada harga yang ditetapkanPerdagangan kosong: Jika tiada saham dan harga penutupan kurang daripada arahPelbagai kedudukan: jika mempunyai banyak pesanan, dan harga penutupan kurang daripada harga tengahPerhentian kosong: jika anda mempunyai bil kosong dan harga penutupan lebih tinggi daripada harga tengah

Pelaksanaan kod strategi

Langkah pertama untuk melaksanakan strategi adalah dengan mendapatkan data terlebih dahulu, kerana data adalah prasyarat untuk membentuk strategi dagangan, bayangkan apa data yang kita perlukan? dan bagaimana untuk mendapatkan data ini? kemudian merancang logika dagangan berdasarkan data ini; akhirnya dengan menggunakan logika dagangan membeli dan menjual satu transaksi; langkah-langkah tertentu adalah sebagai berikut:

Langkah 1: Menggunakan Perpustakaan Kelas Perdagangan

Anda boleh membayangkan perpustakaan dagangan sebagai modul fungsi, dan faedah menggunakan perpustakaan dagangan adalah bahawa anda boleh memberi tumpuan kepada menulis logik strategi. Contohnya: apabila kita menggunakan perpustakaan dagangan, ketika membuka perdagangan, API yang tertera di dalam perpustakaan dagangan boleh digunakan secara langsung; tetapi jika tidak menggunakan perpustakaan dagangan, apabila membuka perdagangan, anda perlu mendapatkan harga dagangan, masalah yang perlu dipertimbangkan untuk membuat laporan tetapi tidak berurusan, masalah yang perlu dipertimbangkan untuk menarik pesanan, dan sebagainya.imgRajah 4-52

Gambar di atas adalah rangka kerja strategi CTA menggunakan alat pengukuran pencipta. Ini adalah format kod yang tetap, semua kod logik urus niaga ditulis dari baris ke-4.

Perpustakaan kelas templat untuk JavaScript dibina, Python memerlukan salinan untuk menyimpan templat ini:https://www.fmz.com/strategy/24288Kemudian pilih rujukan di halaman penyuntingan dasar. Sudah tentu, anda juga boleh menyelesaikan dasar tanpa menggunakan perpustakaan template.

img

Langkah 2: Dapatkan pelbagai data

Berfikir dengan teliti, apa data yang diperlukan? Dari logik perdagangan strategi kami, kami mendapati: pertama, kita perlu mendapatkan status pegangan semasa, kemudian membandingkan hubungan antara harga penutupan dengan arah bawah pada petunjuk tali pinggang Brin, dan akhirnya menilai sama ada pasaran akan ditutup.

Mengambil data garis K

Pertama adalah untuk mendapatkan matriks K-line dan harga penutupan K-line semasa, kerana dengan mempunyai matriks K-line, anda boleh memanggil API untuk mendapatkan harga tertinggi atau harga terendah N-siklus.imgRajah 4-53 Seperti gambar di atas: Baris 4: Dapatkan Array K-Line, yang merupakan format tetap. Baris 5: Menapis panjang K baris, kerana kita mengira harga tertinggi atau terendah N kitaran, parameter yang digunakan adalah 50, dan apabila K baris kurang daripada 50 baris, tidak boleh dikira. Jadi di sini untuk menapis panjang K baris, jika K baris kurang daripada 50 baris, melangkau pusingan ini dan terus menunggu K baris seterusnya. Baris ke 6: Kita menggunakan kod len ((records - 1] untuk mendapatkan data terakhir dalam matriks K, iaitu data K terbaharu. Data ini adalah objek yang mengandungi: harga buka, harga tertinggi, harga minimum, harga penutupan, jumlah dagangan, masa dan lain-lain.

Mengambil data simpanan

Maklumat pegangan adalah satu syarat penting dalam strategi dagangan kuantitatif. Apabila syarat dagangan ditubuhkan, anda juga perlu menilai sama ada anda akan membuat pesanan dengan status pegangan dan jumlah pegangan. Contohnya: apabila syarat dagangan terbuka dibeli, jika ada pegangan, anda tidak perlu membuat pesanan berulang; jika tidak ada pegangan, anda boleh membuat pesanan. Kali ini kita langsung membungkus maklumat pegangan menjadi satu fungsi, hanya perlu memanggil fungsi ini untuk digunakan:imgRajah 4-54

Seperti gambar di atas: Ini adalah fungsi untuk mendapatkan maklumat simpanan, jika simpanan kosong, kembali 0; jika simpanan berbilang, kembali 1; jika simpanan kosong, kembali -1 ; perhatikan kod di atas: Baris 2: Buat fungsi yang bernama mp, yang tidak mempunyai parameter. Barisan 3: Dapatkan Array yang disimpan, yang merupakan format tetap. Baris 4: Tentukan panjang array yang disimpan, jika panjangnya sama, maka ia pasti kosong, jadi ia akan kembali 0. Baris ke-6: Gunakan loop for, mula melintasi matriks ini, dan logik seterusnya sudah mudah, jika memegang banyak nombor, ia akan kembali 1; jika memegang nombor kosong, ia akan kembali -1. Baris 18: Panggilan fungsi pemerolehan maklumat simpanan yang baru ditulis.

Dapatkan harga teratas dan terendah untuk 50 baris K terkini

Dalam alat pengukuran pencipta, menggunakan TA.Highest TA dan TA.Lowest TA secara langsung dapat diperoleh tanpa perlu menulis semula perhitungan logik sendiri. Dan TA.Highest TA dan TA.Lowest TA kembali hasil nilai tertentu dan bukan array.imgRajah 4-55

Seperti gambar di atas: Baris ke-19: Panggilan fungsi TA.Highest hash untuk mendapatkan nilai maksimum harga tertinggi 50 kitaran Baris ke-20: Panggilan kepada TA.Lowest, untuk mendapatkan nilai minimum harga terendah 50 kitaran Baris 21: Mengira purata berdasarkan maksimum harga tertinggi 50 kitaran dan minimum harga minimum 50 kitaran

Langkah ketiga: Buat pesanan

Dengan data di atas, anda boleh menulis logik urus niaga dan kod urus niaga. Formatnya juga sangat mudah, yang paling biasa digunakan adalah kata-kata if, yang boleh digambarkan dengan kata-kata: jika syarat 1 dan syarat 2 berlaku, urus niaga; jika syarat 3 atau syarat 4 berlaku, urus niaga.imgRajah 4-56

Seperti gambar di atas: Baris 22: Menggunakan perpustakaan kelas urus niaga, yang merupakan format tetap Barisan 23 dan 24: Ini adalah frasa yang sederhana, yang menggunakan persamaan perbandingan yang telah kita pelajari sebelum ini dan persamaan operasi logik yang bermakna jika anda memegang banyak pesanan dan harga penutupan kurang dari tengah, semua kedudukan akan diratakan. Barisan 25, 26: Ini adalah frasa senarai kosong kosong, yang menggunakan persamaan perbandingan yang telah kita pelajari sebelum ini dan persamaan operasi logik yang bermaksud bahawa semua kedudukan akan diratakan jika anda memegang senarai kosong semasa dan harga penutupan lebih besar daripada tengah. Barisan 27: Menghuraikan status simpanan semasa, jika simpanan kosong, maka langkah seterusnya akan dilakukan. Barisan 28, 29: menilai sama ada harga penutupan lebih besar daripada harga tinggi, jika harga penutupan naik melebihi harga tinggi, belilah kedudukan terbuka. Barisan 30, 31: menilai sama ada harga penutupan kurang daripada arah bawah, jika harga penutupan jatuh ke arah bawah, jual kedudukan terbuka.

Ringkasan

Di atas, kita belajar setiap langkah untuk membangunkan strategi dagangan kuantitatif yang lengkap dengan Python, termasuk: gambaran strategi, kaedah pengiraan saluran Dongjian, logik strategi, syarat jual beli, pelaksanaan kod strategi, dan sebagainya. Bahagian ini hanyalah satu strategi mudah, sebagai penggambaran, lebih daripada satu kaedah, anda boleh meletakkan pelbagai kaedah dagangan berdasarkan sistem dagangan anda sendiri, sehingga membentuk strategi dagangan kuantitatif anda sendiri.

Pengumuman seterusnya

Dalam pembangunan strategi urus niaga kuantitatif, dari segi kelajuan pelaksanaan bahasa pengaturcaraan, C++ adalah bahasa yang paling pantas. Khususnya dalam bidang derivatif dan perdagangan frekuensi tinggi, C++ adalah khusus bahasa, C++ mempunyai kelebihan dalam pengiraan nilai, meningkatkan beberapa tahap kelajuan berbanding JavaScript dan Python.

Kerja Selepas Kelas

1, Mulakan dari awal, mulakan untuk melaksanakan strategi dalam seksyen ini. 2. Cuba tambahkan satu penunjuk garis rata kepada strategi dalam seksyen ini dan kurangkan kekerapan dagangan.

Bab Lima: Ujian semula, pengisian dan penambahbaikan strategi

5.1 Makna dan perangkap pengukuran semula

Ringkasan

Ujian semula adalah tempat yang paling berbeza dari perdagangan tradisional, berdasarkan data pasaran sebenar yang telah berlaku dalam sejarah, pemicu isyarat strategi analog yang cepat dan mengambil gambar dagangan, menghasilkan laporan prestasi dalam jangka masa tertentu, dan lain-lain. Untuk pasaran saham, komoditi masa hadapan, pertukaran asing dan lain-lain adalah salah satu komponen yang paling penting dalam pembangunan strategi.

Makna Ujian Ulang

Dalam bab sebelumnya, kita mempelajari bahagian asas bahasa pengaturcaraan utama, dan mengajar anda bagaimana menggunakan asas pengaturcaraan ini untuk menulis beberapa strategi transaksi mudah, yang boleh dikatakan setengah dari perjalanan yang panjang. Walau bagaimanapun, strategi yang ditulis pasti tidak dapat langsung dihidupkan, ia juga memerlukan pengesanan semula yang berterusan, pengesanan semula, pengesanan semula, pengesanan semula, dan sebagainya, sehingga strategi dapat sepenuhnya melaksanakan kandungan model dan dapat berjalan dengan lancar.

Dari segi logik dagangan kuantitatif, strategi sebenarnya adalah berdasarkan satu set persepsi dan hipotesis mengenai pasaran, yang boleh digunakan untuk menentukan dengan cekap sama ada hipotesis tersebut adalah sah dan stabil. Dalam tempoh ketidakstabilan sejarah, apa yang mungkin menyebabkan kerugian dan membantu membuat keputusan untuk mencegah kerugian tersebut.

Di samping itu, dari segi operasi dagangan kuantitatif, retesting dapat membantu mengesan bug dalam logika strategi, seperti fungsi masa depan, harga curian, banyak kesesuaian, dan lain-lain.

  • Mengkaji ketepatan isyarat dagangan.
  • Mengkaji logik transaksi dan idea anda.
  • Mengenali kelemahan dalam sistem dagangan dan memperbaiki strategi asal.

Oleh itu, maksud retesting adalah untuk mengembalikan proses dagangan sebenar dengan data sejarah yang sejujur mungkin, untuk mengesahkan keberkesanan strategi, untuk mengelakkan kos yang mahal untuk strategi yang salah, dan membantu kita menyaring, memperbaiki, dan mengoptimumkan strategi dagangan.

Tangkapan semula

Di sini, anda boleh melihat beberapa gambar yang menunjukkan bahawa mereka telah menghalalkan penghantaran.

Strategi dagangan berdasarkan data sejarah statik pada masa retesting; sedangkan data dagangan sebenar adalah dinamik. Sebagai contoh: jika harga tertinggi lebih besar daripada harga penutupan semalam, anda akan membeli kedudukan terbuka. Syarat pembukaan ini adalah dalam piringan sebenar, jika garis K belum selesai, maka harga tertinggi adalah dinamik, dan isyarat dagangan mungkin akan berkedip kembali.

Fungsi masa depan untuk mengesan lagi perangkap:

Fungsi masa depan adalah menggunakan harga masa depan, iaitu keadaan semasa mungkin akan diubah pada masa depan, dan fungsi masa depan juga boleh menyebabkan sinyal berkedip. Oleh itu, mana-mana fungsi mempunyai ciri fungsi masa depan, seperti kata-kata acuan bertukar kepada fungsi acuan.

Fungsi beralih kata menunjukkan titik pembalikan puncak gelombang dan lembah gelombang, ia boleh menyesuaikan nilai sendiri mengikut harga masa nyata terkini, tetapi jika harga semasa berubah, hasil pengiraan fungsi beralih kata juga akan berubah. Jika menggunakan fungsi dengan fungsi masa depan, isyarat pesanan semasa mungkin dibuat dan diletakkan, tetapi selepas beberapa saat isyarat ini mungkin tidak berlaku lagi.imgRajah 5-1

Mengesan semula harga curian perangkap

Perbuatan pencurian harga adalah menggunakan harga masa lalu untuk berdagang. Contohnya: jika harga tertinggi lebih besar daripada harga tetap, maka membeli dengan harga buka. Syarat ini adalah harga mencuri, kerana dalam pasaran sebenar, apabila harga tertinggi lebih besar daripada harga tertentu, harga sudah lebih tinggi daripada harga buka jarak tertentu, pada masa ini tidak boleh dibeli dengan harga buka. Tetapi dalam retesting, ada isyarat beli, dan boleh berdagang.

Satu lagi keadaan ialah jika harga melompat tinggi dengan harga tetap yang ditetapkan oleh strategi, anda boleh berdagang dengan harga tetap pada saat pengembalian, tetapi harga tetap ini jelas tidak dapat dibeli di pasaran sebenar.

Harga yang mustahil untuk menjejakkan semula perangkap

Harga yang tidak dapat ditukarkan terbahagi kepada beberapa keadaan: Yang pertama: di dalam pasaran sebenar, kenaikan harga tidak boleh dibeli pada masa berhenti, sebaliknya jatuh juga; tetapi dalam ujian semula, ia boleh diperdagangkan.

Jenis kedua: mekanisme pengambilan pertukaran adalah: harga lebih utama, masa lebih utama. Beberapa jenis penyenaraian akan sering mempunyai pesanan yang besar, apabila penyenaraian pembelian dan penjualan, anda perlu menunggu ketebalan penyenaraian, untuk berurusan atau tidak berurusan. Tetapi ketika penyesuaian, penyenaraian pembelian dan penjualan boleh berurusan.

Ketiga: jika strategi suku cadang, maka keuntungan retargeting adalah tinggi, kerana setiap kali retargeting telah diasumsikan untuk merampas perbezaan harga ini. Dalam keadaan sebenar, banyak perbezaan harga tidak dapat dirampas, atau hanya merampas satu kaki, secara amnya pasti tidak menguntungkan arah anda, maka anda perlu segera menampung kaki lain, ketika titik licin tidak lagi 1-2 mata, dan strategi retargeting itu sendiri akan merampas perbezaan harga beberapa titik ini, keadaan ini tidak dapat disimulasikan dalam retargeting.

Keempat: Kejadian Black Swan. Seperti di bawah lingkaran merah, dalam kejadian Black Swan dalam mata wang asing Switzerland, walaupun nampaknya terdapat harga bukaan, harga tertinggi, harga minimum, harga penutupan, sebenarnya dalam pasaran yang melampau pada hari itu, harga tengah adalah kekosongan, banyak pesanan berhenti, menyebabkan kejadian menginjak, kecairan adalah sifar, kesukaran urus niaga sangat besar, tetapi boleh menghentikan kerugian dalam pengukuran semula.imgRajah 5-2

Mengesan semula terlalu banyak kesesuaian perangkap

Setiap kali saya melihat gambar di bawah ini, fikiran saya adalah: hahahahahaha... lihat dari gambar di bawah ini, model yang tidak masuk akal, jika cukup kompleks, boleh menyesuaikan dengan data dengan sempurna.imgRajah 5 - 3

Untuk perdagangan kuantitatif, retargeting adalah berdasarkan data sejarah, tetapi sampel data sejarah adalah terhad jika parameter strategi dagangan terlalu banyak, atau logik dagangan terlalu kompleks, yang menyebabkan strategi dagangan terlalu banyak menyesuaikan data sejarah.

Proses pemodelan strategi kuantitatif pada dasarnya adalah proses mencari data tidak rawak tempatan dari sejumlah besar data yang kelihatan rawak, yang mudah jatuh ke dalam perangkap terlalu sesuai jika tidak menggunakan pengetahuan statistik.

Oleh itu, jangan menipu diri anda sendiri. Jika anda mendapati data luar sampel tidak berfungsi dengan baik, dan merasa sangat menyedihkan untuk membuang model atau tidak mahu mengakui bahawa model anda tidak berfungsi, dan terus mengoptimumkan model dengan data luar sampel sehingga data luar sampel berfungsi dengan baik, luka terakhir pasti menjadi perak emas anda.

Mengesan semula penyimpangan mangsa perangkap

Wall Street mempunyai lawakan yang popular: andaikan terdapat 1000 ekor lembu yang terlibat dalam pelaburan di pasaran, tahun pertama, 500 ekor lembu yang kalah dengan besar akan dikeluarkan; tahun kedua, separuh akan dikeluarkan dan 250 ekor akan ditinggalkan; dan pada akhir tahun ketiga, 125 ekor akan ditinggalkan.imgRajah 5-4

Pada tahun kesembilan, saya masih mempunyai satu ekor yang tersisa. Kemudian anda melihat, lihat, lihat ke kiri dan ke kanan, dan melihat dengan mata yang buta. Akhirnya saya melihat sampul majalah kewangan dan tiba-tiba saya berfikir, wow, bukankah ini Buffett?

Sudah tentu ini hanya sebuah jenaka, tetapi adakah anda pernah terfikir bahawa jika terdapat 1000 pengurus dana, selepas 10 tahun, kira-kira 10 pengurus dana akan menang dan menang dalam pasaran selama 10 tahun berturut-turut.

Seperti pada gambar di sebelah kiri di bawah, saya percaya bahawa kebanyakan pelabur akan menjadi lebih baik. Strategi pelaburan ini menunjukkan prestasi yang sangat kukuh dan tidak ada kemunduran yang besar.imgRajah 5-5

Dan perlahan, seperti yang ditunjukkan pada gambar di sebelah kanan, keadaan sebenar berada di dalamnya. Pada asalnya, kurva pengesanan kiri hanya satu yang terbaik dalam banyak pengesanan; iaitu, di belakang pengesanan kiri, terdapat banyak keadaan yang lebih buruk.

Mengukur semula kos kejatuhan perangkap

Dalam persekitaran dagangan sebenar, harga sentiasa berubah-ubah, dan apabila anda melihat peluang dagangan, mungkin harga telah berubah pada saat anda membuat pesanan. Oleh itu, masalah titik slip adalah tidak dapat dielakkan, sama ada dalam dagangan subjektif atau dagangan kuantitatif.

Tetapi pengulangan adalah berdasarkan data statik, dan sukar untuk mensimulasikan persekitaran dagangan yang sebenar. Contohnya: harga pesanan adalah 1050 beli, tetapi harga urus niaga sebenarnya mungkin 1051. Terdapat banyak prinsip yang menyebabkan fenomena ini, seperti: kekosongan kecairan semasa pasaran yang melampau, kelewatan rangkaian, sistem perisian perkakasan, tindak balas pelayan, dan lain-lain.

Ujian semula tanpa titik glide

imgRajah 5-6

Seperti yang ditunjukkan di atas, retrospektif tanpa titik slip adalah yang terbaik, tetapi harga dagangan sebenar dalam dagangan sebenar berbeza dengan harga dagangan ideal dalam retrospektif strategi. Oleh itu, untuk mengurangkan kesilapan ini, dua titik slip boleh ditetapkan semasa melakukan retrospektif strategi untuk meningkatkan harga beli atau menurunkan harga jual.

Tambah pengukuran semula titik licin

imgRajah 5-7

Seperti yang ditunjukkan di atas, strategi yang sama, jika ditambah 2 titik melompat, hasil ulangan dengan hasil ulangan tanpa titik melompat, sangat berbeza, maka ia juga menunjukkan bahawa strategi ini perlu diperbaiki atau dihapuskan. Khususnya strategi frekuensi dagangan yang lebih tinggi, ditambah 1-2 titik melompat semasa ulangan, boleh membuat ulangan lebih dekat dengan persekitaran dagangan yang sebenar.

Ringkasan

Mungkin ada rakan yang bertanya, memandangkan perdagangan kuantitatif boleh menimbulkan banyak masalah, bagaimana saya boleh membuktikan bahawa strategi saya tidak ada masalah? Sebenarnya jawapannya sangat mudah, sebelum strategi berlaku, anda mesti meniru perdagangan untuk sementara waktu, jika harga transaksi meniru perdagangan dengan harga transaksi ketika pengukuran semula, maka menunjukkan bahawa strategi ini tidak ada masalah, sekurang-kurangnya logik strategi tidak ada masalah.

Walau bagaimanapun, untuk pemaju sistem dagangan yang berpengalaman, uji balik adalah sesuatu yang perlu dilakukan; kerana ia boleh memberitahu anda sama ada idea strategi dapat disahkan berkesan dalam perdagangan sejarah; tetapi banyak kali, uji balik tidak menjamin keuntungan masa depan; kerana terdapat terlalu banyak lubang dalam uji balik, anda tidak akan dapat memahami tanpa membeli sedikit pelajaran; dan pelajaran itu ditumpuk dengan emas dan perak sebenar. Saya ingin membaca artikel ini sekurang-kurangnya akan mengurangkan banyak halangan dan perangkap kuantitatif.

Kerja Selepas Kelas

1.Apa itu overfit dan bagaimana untuk mengelakkannya? 2.Apakah yang menjadi kecacatan dalam kehidupan sebenar?

5.2 Bagaimana untuk mengutip semula transaksi kuantitatif

Ringkasan

Makna dan kepentingan retrospeksi telah dipertikaikan, dan ketika melakukan retrospeksi kuantifikasi, strategi harus diletakkan di dalam persekitaran sebenar sejarah sebanyak mungkin, jika rincian dalam persekitaran sejarah diabaikan, boleh menyebabkan keseluruhan retrospeksi kuantifikasi tidak sah.

Pemulihan adalah sama dengan pemulangan data, dengan memulangkan data K-line sejarah dan meniru peraturan dagangan yang sebenar untuk membeli dan menjual, dan akhirnya mengumpulkan data seperti nisbah Sharpe, kadar pemulangan maksimum, kadar pulangan tahunan, kurva modal dalam satu tempoh masa. Terdapat banyak perisian yang dapat melakukan pemulangan, seperti kewangan Cina yang sangat lengkap, VNPY yang boleh disesuaikan secara fleksibel, dan lain-lain.

Pencipta Kuantiti sebagai perisian dagangan kuantiti komersial, membawa enjin pengukuran balik berprestasi tinggi, menggunakan kerangka pengukuran balik for-loop (pengundian) untuk melakukan pengiraan kuantiti vektor, lebih cepat; dan menyatukan kod pengukuran balik dan piringan sebenar, sebahagiannya menyelesaikan masalah pengukuran balik yang mudah dan sukar.

Pengenalan antara muka

Kami menggunakan strategi bahasa Melayu yang diukur oleh pencipta sebagai contoh untuk membuat laman web untuk alat dagangan kuantifikasi pencipta.www.fmz.comKemudian klik Pusat Kawalan, Perpustakaan Dasar, Pilih Dasar, Uji Ulang Analog, dan anda akan sampai ke halaman berikut:imgRajah 5-8

Dalam antara muka konfigurasi retargeting, anda boleh menyesuaikan mengikut keperluan sebenar anda. Contohnya: menetapkan masa retargeting, kitaran K-line, jenis data ((data peringkat analog atau data peringkat cakera sebenar; data peringkat analog lebih cepat, data peringkat cakera sebenar lebih tepat)); Selain itu, anda juga boleh menetapkan yuran prosiding semasa retargeting dan dana awal akaun, dan sebagainya.

Strategi bahasa Melayu dalam alat dagangan kuantitatif pencipta mempunyai dua cara pelaksanaan pengembalian, iaitu model harga penutupan dan model harga masa nyata. Model harga penutupan bermaksud model yang dijalankan sebelum garis K semasa selesai, yang dijalankan ketika garis K akar bawah bermula. Model harga masa nyata bermaksud model yang dijalankan setiap kali perubahan harga, dan perdagangan segera apabila isyarat dagangan dibuat.imgRajah 5-9

Bilangan tangan bukaan lalai adalah jumlah kedudukan yang dibuka pada masa pengukuran semula, dan jumlah tunggal maksimum adalah jumlah kedudukan terbuka maksimum yang diamanahkan kepada enjin pengukuran semula. Harga dagangan pada piringan sebenar berlaku penyesuaian antara harga dagangan dan harga dagangan yang ditetapkan. Penyesuaian ini biasanya bergerak ke arah yang tidak menguntungkan peniaga, menyebabkan perdagangan mengalami kerugian tambahan, jadi perlu memasukkan titik glide, niaga hadapan komoditi domestik biasanya memasukkan 1-2 lompatan, atau lebih, untuk meniru persekitaran dagangan sebenar.

Pilihan masa hadapan mengisi jenis kontrak yang akan diulang, seperti rb000 atau rb888. Pilihan cakera sebenar digunakan untuk perdagangan cakera sebenar dan boleh mengekalkan tetapan lalai semasa diulang. Jika klik kemajuan pemulihan automatik adalah benar, bot akan dihidupkan semula secara automatik apabila dasar berhenti bot dalam operasi cakera sebenar, bot akan kembali ke kedudukan isyarat sebelum, tanpa perlu mengira semula isyarat.imgRajah 5-10

Pilihan dagangan langsung adalah untuk dagangan mata wang digital, dan anda boleh menyimpan tetapan lalai dalam pengembalian; anda boleh menetapkan jumlah dagangan tunggal, jumlah dagangan minimum, ketepatan mata wang harga, ketepatan jenis dagangan, yuran prosedur, masa penyegerakan akaun, selang statistik keuntungan dan kerugian, dan lain-lain.imgRajah 5-11

Ujian semula strategi

Sebelum mengulas semula, tentukan strategi dagangan anda terlebih dahulu, di sini kita menggunakan strategi Thermostat termometer, yang akan menggunakan strategi trend dalam pasaran yang sedang trend, dan menggunakan strategi guncangan dalam pasaran yang bergolak.imgRajah 5-12 Dalam antara muka penyesuaian analog, seting penyesuaian disesuaikan, klik butang penyesuaian bermula, dan hasil penyesuaian akan muncul dengan serta-merta selepas beberapa puluh saat. Dalam log penyesuaian, jumlah saat penggunaan penyesuaian, jumlah log dan jumlah transaksi dirakam. Di mana maklumat akaun dicetak untuk penyesuaian strategi hasil akhir: purata keuntungan dan kerugian, kerugian simpanan, wang jaminan, bayaran prosedur dan anggaran keuntungan.imgRajah 5-13

Bar maklumat status merakamkan jenis dagangan, jumlah pegangan, harga pegangan, harga terkini, jenis isyarat terakhir, harga tertinggi dan terendah selepas pegangan, jumlah dan masa pembaruan, serta maklumat dana. Selain itu, dalam label keuntungan dan kerugian terapung, menunjukkan kurva modal terperinci akaun, dan termasuk penunjuk prestasi yang biasa digunakan: kadar pulangan, kadar pulangan tahunan, nisbah Sharp, kadar turun naik tahunan maksimum, kadar pengeluaran balik, yang pada dasarnya dapat memenuhi keperluan kebanyakan pengguna.

Antara indikator prestasi yang paling penting ialah: Rasio Sharpe. Ia adalah indikator komprehensif yang mempertimbangkan kedua-dua keuntungan dan risiko, dan juga merupakan indikator rujukan penting untuk mengukur produk dana, yang secara lumrah adalah berapa banyak risiko yang anda ambil untuk setiap dolar, jadi nilai Sharpe adalah lebih baik.

Kadar turun naik tahunan, seperti namanya, adalah kadar turun naik harian x hari dagangan setiap tahun, ia mengukur risiko dana, tetapi tidak sepenuhnya risiko. Sebagai contoh, strategi A mempunyai kadar turun naik yang besar, tetapi sentiasa turun naik, pulangan yang baik, strategi B mempunyai kadar turun naik yang kecil, tetapi sentiasa diam, bolehkah kita mengatakan bahawa strategi B lebih baik daripada strategi A?imgRajah 5-14

Akhirnya, di dalam log maklumat, terdapat rekod terperinci mengenai keadaan setiap transaksi yang diambil pada masa penyampaian, termasuk masa sebenar transaksi, bursa, jenis pembelian dan penjualan, harga yang diambil oleh enjin penyampaian, jumlah transaksi dan maklumat cetak, dan lain-lain.imgRajah 5-15

Selepas Ujian Ulang

Banyak kali, bahkan dalam kebanyakan kes, hasil yang dipelajari kembali jauh berbeza dengan apa yang anda harapkan. Lagipun, strategi yang stabil dan menguntungkan dalam jangka masa panjang tidak mudah dicapai, dan ini memerlukan pemahaman pasaran anda.

Jika strategi anda mengalami kerugian, jangan putus asa, ini adalah perkara biasa. Pertama, lihat apakah logik strategi anda salah, apakah parameter yang melampau digunakan, apakah terlalu banyak syarat perdagangan, dan sebagainya, dan jika perlu, periksa semula strategi perdagangan dan idea perdagangan anda dari sudut lain.

Jika strategi anda mempunyai hasil yang sangat baik, kurva dana yang sangat sempurna, perbandingan Sharp melebihi 1 atau lebih. Jangan tergesa-gesa untuk bersukacita, kebanyakan keadaan seperti ini adalah dengan menggunakan fungsi masa depan, atau harga curian, atau penyesuaian berlebihan, atau tidak menetapkan titik peluncur, dan sebagainya.

Ringkasan

Ini adalah penerangan keseluruhan proses untuk mengulas semula strategi dagangan keseluruhan, yang boleh dikatakan telah spesifik ke setiap butiran. Perlu diingat bahawa pengulas balik data sejarah adalah persekitaran ideal selepas semua risiko yang diketahui. Oleh itu, masa pengulas balik strategi adalah lebih baik untuk mengalami satu pusingan pasaran lembu dan jumlah perdagangan yang berkesan tidak boleh kurang daripada 100 kali, sehingga dapat mengelakkan beberapa penyimpangan penyelamat.

Pasaran sentiasa dalam perubahan dan evolusi, strategi yang baik dalam sejarah tidak semestinya akan menjadi yang terbaik di masa depan, dan strategi tidak boleh hanya menangani risiko yang diketahui dalam persekitaran yang ditarik balik, tetapi lebih baik menangani risiko yang tidak diketahui di masa depan. Oleh itu, peningkatan daya tahan risiko dan keseragaman strategi sangat diperlukan.

Kerja Selepas Kelas

1. Cuba tiru strategi dalam seksyen ini dan uji semula laporan prestasi 2. Cuba memperbaiki dan mengoptimumkan strategi dalam seksyen ini berdasarkan pengalaman dagangan anda sendiri

5.3 Cara membaca laporan prestasi strategi

Ringkasan

Apabila strategi kami telah disemak semula, pencipta alat dagangan kuantitatif akan mengeluarkan dalam halaman web yang mengandungi pelbagai petunjuk prestasi, grafik kurva keuntungan. Tetapi mungkin kerana kita tidak begitu biasa dengan pengertian dan kandungan indikator ini, yang menyebabkan tidak dapat menilai strategi yang baik, artikel ini akan bermula dengan konsep indikator utama untuk membantu anda membaca laporan prestasi strategi untuk membezakan kelebihan dan kekurangan strategi.

Penilaian Objektif dan Lengkap

Sama ada ia adalah rekod data dagangan rak atau laporan uji semula yang menggunakan data sejarah untuk melakukan pengujian semula, kelebihan dan kekurangan model dinilai melalui statistik keadaan dagangan.

Dan persoalan utama ialah, dengan apa statistik yang perlu digunakan untuk membandingkan? Mari kita lihat contoh: Jika kita mempunyai dua set data berikut dalam ujian pada tempoh masa yang sama, seperti gambar di bawah, adakah kita dapat menentukan mana model yang lebih baik?imgRajah 5-16

Jawapannya adalah tidak. Sistem penilaian yang serba satu akan membawa kepada sistem perdagangan kuantitatif yang tidak dapat diukur.

Sistem dagangan mesti dapat digunakan melalui rekod sejarah. Sistem dagangan yang tidak dapat melalui rekod sejarah tidak dapat memperoleh keuntungan dalam jangka masa panjang dalam perdagangan sebenar. Rekod sejarah adalah penggantinya yang diperlukan untuk memasukkan sistem dagangan ke dalam piringan sebenar.

Sistem dagangan yang dapat diulang semula secara sejarah tidak semestinya merupakan sistem dagangan yang berguna, tetapi sistem dagangan yang tidak dapat diulang semula secara sejarah tidak semestinya merupakan sistem dagangan yang berguna. Secara umum, kita perlu menganalisis laporan prestasi dari segi kestabilan, kelestarian, atau menilai sama ada ia diharapkan.imgRajah 5-17

Seperti gambar di atas, tetapi sesiapa sahaja yang terlibat dengan peniaga kuantitatif mungkin telah melihat pelbagai istilah data yang panjang dan tidak mudah difahami untuk penilaian prestasi, bahkan dalam data prestasi ini, banyak data yang saling bertentangan.

Istilah penunjuk prestasi dalam gambar di atas, secara amnya boleh dibahagikan kepada beberapa kategori utama: nisbah prestasi, analisis kitaran, pelbagai kurva, analisis dagangan yang melampau, dan lain-lain. Walaupun dari segi produk dana yang ketat, sebahagian besarnya hanya menunjukkan hasil pengiraan retrospektif, yang sebenarnya tidak bermakna banyak, seperti: keperluan jumlah dana akaun, pendapatan yang dipegang, had keyakinan, dan lain-lain. Malah anda hanya perlu memberi perhatian kepada beberapa yang penting. Di bawah ini saya memilih beberapa penunjuk prestasi retrospektif yang paling penting sebagai penjelasan terperinci.

Penunjuk prestasi penting

Kadar Penarikan Maksimum (Max Drawdown)

Rumus penggambaran maksimum adalah seperti di atas untuk


Berkaitan

Lebih lanjut

Hailhydra2Artikel yang bagus!

Kuantitatiftanda