0
fokus pada
78
Pengikut

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

Dibuat di: 2019-08-08 10:05:45, diperbarui pada: 2024-12-19 00:24:00
comments   0
hits   5472

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

Data Deret Waktu

Deret waktu adalah serangkaian data yang diperoleh pada periode waktu berurutan yang berjarak sama. Dalam investasi kuantitatif, data-data ini terutama terwujud sebagai pergerakan harga dan titik data target investasi yang dilacak. Misalnya, harga saham, data deret waktu yang dicatat secara teratur selama periode waktu tertentu dapat dilihat pada gambar berikut, yang akan memberikan pemahaman yang lebih jelas kepada pembaca:

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

Seperti yang Anda lihat, tanggal berada pada sumbu x dan harga berada pada sumbu y. Dalam kasus ini, “interval berurutan” berarti hari-hari pada sumbu x berjarak 14 hari: Perhatikan perbedaan antara 7 Maret 2005 dan titik berikutnya, 31 Maret 2005, dan 5 April 2005. dan 19 April 2005.

Namun, saat Anda bekerja dengan data deret waktu, Anda akan sering melihat lebih dari sekadar kolom tanggal dan harga. Sebagian besar waktu Anda akan bekerja dengan data yang berisi lima kolom: Data Periode, Pembukaan, Tinggi, Rendah, dan Penutupan. Artinya, jika periode data Anda ditetapkan pada level harian, perubahan harga tertinggi, harga pembukaan, harga terendah, dan harga penutupan pada hari tersebut akan tercermin dalam data deret waktu ini.

Apa itu Data Kutu?

Data tick merupakan struktur data transaksi yang paling rinci di bursa. Ini juga merupakan bentuk lanjutan dari data deret waktu yang disebutkan di atas, termasuk: harga pembukaan, harga tertinggi, harga terendah, harga terbaru, volume perdagangan, dan jumlah transaksi. Jika data perdagangan diibaratkan sungai, maka data tick merupakan data sungai pada suatu penampang tertentu.

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

Seperti yang ditunjukkan pada gambar di atas, setiap tindakan pertukaran mata uang asing akan didorong ke pasar secara real time. Pertukaran domestik memeriksa dua kali per detik. Jika ada tindakan apa pun selama periode ini, snapshot dibuat dan dikirim. Sebagai perbandingan, dorongan data hanya dapat dianggap sebagai OnTime yang terbaik, dan tidak dapat disebut OnTick.

Semua kode dan data deret waktu untuk tutorial ini diperoleh pada Platform Kuantitatif Inventor.

Penemu mengukur data centang

Meskipun data tanda centang domestik bukan merupakan tanda centang sebenarnya, penggunaan data ini untuk pengujian ulang setidaknya dapat mendekati dan memulihkan realitas tanpa batas. Setiap tanda centang menampilkan parameter utama produk di pasar saat itu, dan di pasar aktual, kode kami dihitung berdasarkan laju tanda centang teoritis 2 kali per detik.

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

Tidak hanya itu, dalam Inventor Quantification, bahkan jika Anda memuat data untuk periode 1 jam, Anda masih dapat menyesuaikan granularitas data, seperti menyesuaikan granularitas data menjadi 1 menit. Pada saat ini, K-line 1 jam terdiri dari data 1 menit. Tentu saja, semakin kecil ukuran partikel, semakin tinggi akurasinya. Yang lebih hebat lagi adalah jika Anda mengganti data ke tick waktu nyata, Anda dapat memulihkan lingkungan waktu nyata dengan mudah. Artinya, data sebenarnya dari pertukaran dicentang dua kali per detik.

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

Anda sekarang telah memahami konsep dasar yang perlu Anda ketahui untuk menyelesaikan tutorial ini. Kami akan kembali ke konsep ini sebentar lagi, dan Anda akan mempelajarinya lebih lanjut nanti dalam tutorial ini.

Untuk informasi lebih lanjut tentang bagian ini, silakan kunjungi: https://www.fmz.com/bbs-topic/1651

Menyiapkan lingkungan kerja Anda

Untuk melakukan pekerjaan dengan baik, seseorang harus terlebih dahulu mengasah alatnya. Kita perlu menggunakan kustodian pada Inventor Quantitative Platform. Mengenai konsep kustodian, pembaca dengan pengalaman pemrograman dapat menganggapnya sebagai sistem Docker yang dikemas secara resmi. Sistem ini memiliki merangkum antarmuka API publik dari berbagai bursa utama dan detail teknis terperinci untuk penulisan strategi dan pengujian ulang. Tujuan awal dari pembuatan sistem ini adalah untuk membebaskan para trader kuantitatif dari kebutuhan untuk fokus pada penulisan dan desain strategi saat menggunakan Inventor Quantitative Platform. Rincian teknis ini disajikan kepada para penulis strategi dalam bentuk paket untuk menyelamatkan mereka dari kesulitan Banyak waktu dan energi.

  • Penerapan sistem kustodian Platform Kuantitatif Inventor

Ada dua cara untuk menyebarkan host:

Metode A: Pengguna menyewa atau membeli server sendiri dan menyebarkannya pada platform komputasi awan utama seperti AWS, Alibaba Cloud, Digital Ocean, dan Google Cloud. Keunggulannya adalah keamanan strategi dan keamanan sistem terjamin. Untuk Inventor Quantitative Platform, pengguna didorong untuk menggunakan metode ini. Penerapan terdistribusi seperti itu menghilangkan risiko serangan server (baik untuk pelanggan maupun platform itu sendiri).

Untuk bagian ini, pembaca dapat merujuk ke: https://www.fmz.com/bbs-topic/2848

Metode B: Gunakan penyebaran server publik dari Inventor Quantitative Platform. Platform ini menyediakan penyebaran di Hong Kong, London, dan Hangzhou. Pengguna dapat menyebarkan sesuai dengan prinsip kedekatan berdasarkan lokasi bursa yang ingin mereka perdagangkan. Keunggulan dari aspek ini adalah sederhana dan mudah, serta dapat diselesaikan dengan satu klik. Sangat cocok untuk pengguna pemula. Mereka tidak perlu memahami banyak hal saat membeli server Linux, dan juga menghemat waktu dan tenaga. dalam mempelajari perintah-perintah Linux. Harganya pun relatif murah, yang cocok bagi pengguna dengan dana terbatas. Pengguna, platform ini merekomendasikan penggunaan metode penyebaran ini.

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

Untuk menjaga pemahaman pemula, artikel ini akan mengadopsi metode B.

Operasi spesifiknya adalah: masuk ke FMZ.COM, klik pada pusat kendali, host, dan klik pada penyewaan host satu-klik pada halaman host.

Masukkan kata sandi. Setelah penerapan berhasil, gambar berikut akan ditampilkan:

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

  • Konsep sistem robot dan hubungannya dengan host

Seperti yang disebutkan di atas, host itu seperti sistem docker, dan sistem docker itu seperti seperangkat standar. Setelah kita menerapkan seperangkat standar ini, kita perlu membuat “instance” untuk standar ini, dan “instance” ini adalah robot.

Sangat mudah untuk membuat robot. Setelah memasang host, klik kolom robot di sebelah kiri, klik Buat Robot, isi nama pada label nama, dan pilih host yang baru saja Anda pasang di antara host hosting. Pemilihan parameter dan periode K-line dalam kotak dialog di bawah ini dapat dipilih sesuai dengan situasi spesifik, terutama untuk bekerja sama dengan pemilihan strategi perdagangan.

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

Pada tahap ini, lingkungan kerja kita telah disiapkan. Seperti yang Anda lihat, lingkungan kerja ini sangat sederhana dan efektif, dan setiap fungsi menjalankan fungsinya sendiri. Selanjutnya, kita akan mulai menulis strategi kuantitatif.

Menerapkan strategi rata-rata bergerak sederhana dengan Python

Di atas kami sebutkan konsep data deret waktu dan data tick. Selanjutnya, kami akan menggunakan strategi moving average sederhana untuk menghubungkan kedua konsep ini.

  • Prinsip dasar strategi rata-rata bergerak

Melalui rata-rata pergerakan periode lambat, seperti rata-rata pergerakan 7 hari, dan rata-rata pergerakan periode cepat, seperti rata-rata pergerakan 3 hari. Menerapkannya pada grafik garis K yang sama, ketika rata-rata pergerakan cepat melintasi rata-rata pergerakan lambat, kita menyebutnya persilangan emas; ketika rata-rata pergerakan lambat melintasi rata-rata pergerakan cepat, kita menyebutnya persilangan kematian.

Dasar untuk membuka posisi adalah membuka order long ketika golden cross muncul dan membuka order short ketika golden cross muncul. Prinsip yang sama berlaku untuk menutup posisi.

Mari buka FMZ.COM, masuk ke akun, pusat kendali, perpustakaan strategi, buat strategi baru, dan pilih Python dalam bahasa penulisan strategi di sudut kiri atas. Berikut ini adalah kode untuk strategi ini. Setiap baris memiliki komentar yang sangat rinci. Luangkan waktu Anda untuk memahaminya. Strategi ini bukanlah strategi yang sebenarnya, jadi jangan bereksperimen dengan uang sungguhan. Strategi ini terutama bertujuan untuk memberi semua orang gambaran umum tentang penulisan strategi dan pola pembelajaran.

import types # 导入Types模块库,这是为了应对代码中将要用到的各种数据类型

def main(): # 主函数,策略逻辑从这里开始
    STATE_IDLE = -1 # 标记持仓状态变量
    state = STATE_IDLE # 标记当前持仓状态
    initAccount = ext.GetAccount() #这里用到了现货数字货币交易类库(python版),编写策略时记得勾选上,作用是获得账户初始信息
    while True: # 进入循环
        if state == STATE_IDLE : # 这里开始开仓逻辑
            n = ext.Cross(FastPeriod,SlowPeriod) # 这里用到了指标交叉函数,详情请查看https://www.fmz.com/strategy/21104
            if abs(n) >= EnterPeriod : # 如果n大于等于入市观察期,这里的入市观察期是为了防止一开盘就胡乱开仓。
                opAmount = _N(initAccount.Stocks * PositionRatio,3) # 开仓量,关于_N的用法,请查看官方API文档
                Dict = ext.Buy(opAmount) if n > 0 else ext.Sell(opAmount) # 建立一个变量,用于存储开仓状态,并执行开仓操作
                if Dict :  # 查看dict变量的情况,为下面的日志输出做准备
                    opAmount = Dict['amount']
                    state = PD_LONG if n > 0 else PD_SHORT # PD_LONG和PD_SHORT均为全局常量,分别用来表示多头和空头仓位。
                    Log("开仓详情",Dict,"交叉周期",n) # 日志信息
        else: # 这里开始平仓逻辑
            n = ext.Cross(ExitFastPeriod,ExitSlowPeriod) # 指标交叉函数,
            if abs(n) >= ExitPeriod and ((state == PD_LONG and n < 0) or (state == PD_SHORT and n > 0)) : # 如果经过了离市观察期且当前账户状态为持仓状态,进而判断金叉或者死叉
                nowAccount = ext.GetAccount() # 再次刷新和获取账户信息
                Dict2 = ext.Sell(nowAccount.Stocks - initAccount.Stocks) if state == PD_LONG else ext.Buy(initAccount.Stocks - nowAccount.Stocks) # 平仓逻辑,是多头就平多头,是空头就平空头。
                state = STATE_IDLE # 标记平仓后持仓状态。
                nowAccount = ext.GetAccount() # 再次刷新和获取账户信息
                LogProfit(nowAccount.Balance - initAccount.Balance,'钱:',nowAccount.Balance,'币:',nowAccount.Stocks,'平仓详情:',Dict2,'交叉周期:',n) # 日志信息
        Sleep(Interval * 1000) # 循环暂停一秒,防止API访问频率过快导致账户被限制。

  • Pengujian Ulang Strategi Rata-rata Bergerak

Pada halaman penyuntingan strategi, kita telah menyelesaikan penulisan strategi. Selanjutnya, kita perlu melakukan uji ulang strategi ini untuk melihat bagaimana kinerjanya dalam kondisi pasar historis. Pengujian ulang memainkan peran penting dalam pengembangan strategi kuantitatif apa pun, tetapi itu juga hanya dapat menjadi referensi penting. Backtesting tidak berarti jaminan untung, karena pasar terus berubah. Backtesting hanyalah tindakan retrospeksi dan masih termasuk dalam kategori induksi. Pasar bersifat deduktif.

Klik pada simulasi backtest, dan Anda dapat melihat bahwa ada banyak parameter yang dapat disesuaikan, yang dapat dimodifikasi secara langsung di dalamnya. Karena strategi menjadi semakin kompleks dan jumlah parameter meningkat, metode modifikasi ini dapat membantu pengguna menghindari keharusan memodifikasinya satu per satu dalam kode. Proses modifikasinya mudah, cepat, dan terorganisir dengan jelas.

Analisis Data Deret Waktu dan Pengujian Ulang Data Tick

Opsi penyetelan selanjutnya dapat mengoptimalkan parameter yang ditetapkan secara otomatis. Sistem akan mencoba berbagai parameter optimal untuk membantu pengembang strategi menemukan pilihan terbaik.

Dari contoh-contoh di atas, kita dapat melihat bahwa dasar dari perdagangan kuantitatif adalah interaksi antara analisis data deret waktu dan pengujian ulang data tick. Betapapun rumitnya logikanya, hal itu tidak dapat dipisahkan dari kedua elemen dasar ini. Perbedaannya hanya pada dimensi. Misalnya, perdagangan frekuensi tinggi memerlukan bagian data yang lebih rinci dan data deret waktu yang lebih lengkap. Misalnya, perdagangan arbitrase memerlukan data yang relatif tinggi untuk sampel uji ulang. Mungkin diperlukan lebih dari sepuluh tahun data mendalam berkelanjutan pada dua target perdagangan untuk menemukan hasil statistik dari perluasan dan penyusutan spread suku bunga mereka. Dalam artikel mendatang, saya akan memperkenalkan strategi perdagangan frekuensi tinggi dan perdagangan arbitrase, jadi nantikanlah.