Sumber dimuat naik... memuat...

Analisis data urutan masa dan pengulangan data Tick

Penulis:Kebaikan, Dicipta: 2019-08-08 10:05:45, Dikemas kini: 2024-12-19 00:24:00

img

Data siri masa

Siri masa merujuk kepada siri data yang diperoleh dalam tempoh masa yang sama-sama berturut-turut. Dalam pelaburan kuantitatif, data ini terutamanya ditunjukkan sebagai pergerakan harga dan titik data yang diikuti oleh tanda pelaburan. Sebagai contoh, harga saham, data siri masa yang direkodkan secara berkala dalam tempoh masa yang ditetapkan boleh merujuk kepada gambar berikut, pembaca akan mendapat pemahaman yang lebih jelas:

img

Seperti yang dapat dilihat, tarikh berada di sumbu x dan harga ditunjukkan di sumbu y. Dalam kes ini, sumbu selang masa berturut-turut bermaksud jumlah hari yang terpisah pada sumbu x sebanyak 14 hari: perhatikan perbezaan antara 7 Mac 2005 dan titik seterusnya, 31 Mac 2005, 5 April 2005 dan 19 April 2005.

Walau bagaimanapun, apabila anda menggunakan data rentak masa, anda sering melihat lebih daripada sekadar data yang hanya mengandungi dua baris tarikh dan harga. Dalam kebanyakan kes, anda akan menggunakan data yang mengandungi lima baris: tempoh data, harga buka, harga tertinggi, harga minimum dan harga tutup. Ini bermakna jika anda menetapkan tempoh data anda pada tahap hari, perubahan harga tinggi, terbuka, rendah dan tutup pada hari itu akan bertindak balas dalam data rentak masa ini.

Apa itu data Tick?

Tick data adalah struktur data urus niaga yang paling terperinci di bursa. Ia juga merupakan satu bentuk data rentetan masa yang diperkenalkan di atas, termasuk: harga bukaan, harga tertinggi, harga minimum, harga terkini, jumlah urus niaga, jumlah urus niaga. Jika data urus niaga disamakan dengan sungai, Tick data adalah data sungai ini di mana ia bersilang.

img

Seperti yang ditunjukkan di atas, setiap pergerakan di bursa asing akan didorong ke pasaran secara langsung; sementara bursa domestik, yang diperiksa dua kali setiap saat, menghasilkan snapshot dan didorong jika terdapat pergerakan dalam tempoh masa itu. Sebagai perbandingan, jumlah data yang didorong hanya boleh dikira sebagai OnTime, dan tidak boleh dipanggil OnTick.

Semua kod dan data urutan masa dalam tutorial ini diperoleh di platform kuantiti pencipta.

Data Tick yang diukur oleh pencipta

Walaupun data Tick dalam negeri bukanlah Tick dalam erti kata sebenarnya, tetapi menggunakan data ini untuk mengkaji semula, sekurang-kurangnya dapat mendekati realiti tanpa batas dan mereduksi. Setiap Tick menunjukkan parameter utama komoditi pada masa itu di pasaran, dan pada cakera sebenar kod kami, iaitu mengikuti teori 2 kali Tick setiap saat.

img

Tidak hanya itu, dalam pengukuran pencipta, walaupun data yang dimuatkan dalam kitaran satu jam, grit data masih boleh disesuaikan, seperti menyesuaikan grit data menjadi 1 minit. Pada masa ini, garis K 1 jam adalah terdiri daripada data 1 minit. Sudah tentu, semakin kecil, lebih tinggi ketepatan. Lebih kuat lagi, jika data ditukar ke Tick berskala sebenar, ia dapat dengan lancar memulihkan persekitaran piringan sebenar.

img

Sekarang, anda telah memahami konsep asas yang perlu anda ketahui untuk menyelesaikan tutorial ini. Konsep-konsep ini akan kembali dalam masa terdekat, dan anda akan mempelajari lebih lanjut mengenai konsep yang berkaitan di bahagian kemudian dalam tutorial ini.

Untuk maklumat mengenai bahagian ini, anda boleh menghubungi:https://www.fmz.com/bbs-topic/1651Lihat maklumat lanjut

Menyiapkan persekitaran kerja

Untuk melakukan perkara yang baik, perlu terlebih dahulu, kita perlu melancarkan pentadbir di platform pencipta kuantiti, mengenai konsep pentadbir, pembaca yang berpengalaman dalam pengaturcaraan boleh membayangkan ia sebagai sistem Docker yang dibungkus secara rasmi, yang telah dibungkus dengan antara muka API awam pelbagai bursa utama dan perincian teknikal untuk bahagian akhir strategi yang ditulis dan diuji semula.

  • Pencipta melancarkan sistem pengurus platform kuantitatif

Pengendali boleh digunakan dalam dua cara.

Kaedah A: Pengguna menyewa atau membeli pelayan sendiri, yang digunakan di pelbagai platform awan seperti AWS, Ali Cloud, Digital Ocean dan Google Cloud. Kelebihannya adalah keselamatan strategi dan keselamatan sistem dijamin, bagi pencipta platform kuantitatif, pengguna digalakkan untuk menggunakan kaedah ini, pengendalian yang diedarkan seperti ini menghindarkan pelayan daripada diserang (sama ada pelanggan atau platform itu sendiri).

Mengenai bahagian ini, pembaca boleh rujuk:https://www.fmz.com/bbs-topic/2848

Kaedah B: Pengedaran pelayan awam menggunakan platform kuantiti pencipta, platform ini menyediakan tiga lokasi pengedaran di Hong Kong, London dan Hangzhou, pengguna boleh menggunakan prinsip kedekatan berdasarkan lokasi bursa yang ingin diperdagangkan. Kelebihan dalam hal ini adalah mudah, satu butang selesai, terutama sesuai untuk pengguna pemula, tanpa perlu mengetahui banyak perkara ketika membeli pelayan Linux, juga menyelamatkan masa dan tenaga belajar perintah Linux, harganya juga agak murah, untuk pengguna yang tidak mempunyai jumlah dana yang sedikit, platform mengesyorkan menggunakan kaedah pengedaran ini.

img

Dalam artikel ini, kita akan menggunakan kaedah B untuk memudahkan para pemula.

Peranan khusus:登陆FMZ.COMKlik Pusat Kawalan, Pengurus, dan klik butang sewa Pengurus di halaman Pengurus.

Di bawah ini adalah gambar yang menunjukkan bahawa kod masuk telah berjaya digunakan:

img

  • Konsep sistem robot dan hubungan antara pengurus

Seperti yang dinyatakan di atas, hoster adalah seperti sistem docker, dan sistem docker adalah seperti satu set standard, dan kita telah menyebarkan set standard ini dengan baik, dan seterusnya kita perlu menghasilkan satu contoh template untuk standard ini, yang merupakan bot.

Mencipta bot adalah mudah, selepas menggunakan hos yang baik, klik tab bot di sebelah kiri, klik membuat bot, isi nama dalam nama tag, pilih hos yang baru sahaja digunakan. Pilihan parameter dalam kotak dialog di bawah dan kitaran K baris boleh dipilih mengikut keadaan tertentu, terutamanya untuk memilih strategi dagangan.

img

Pada masa ini, persekitaran kerja kami telah dibina, dan anda boleh lihat, ia sangat mudah dan berkesan, setiap fungsi mempunyai fungsi masing-masing; seterusnya, kita akan mula menulis strategi kuantitatif.

Melakukan strategi rata-rata sederhana dengan Python

Di atas, kita telah membincangkan konsep data siri masa dan data Tick, dan seterusnya kita akan menghubungkan kedua-dua konsep dengan strategi rata-rata yang mudah.

  • Prinsip-prinsip asas strategi bersempadan

Melalui rata-rata bersiklus perlahan, seperti rata-rata 7 hari, dan rata-rata bersiklus cepat, seperti rata-rata 3 hari. Menggunakan mereka pada carta K yang sama, apabila rata-rata bersiklus cepat melintasi rata-rata bersiklus perlahan, kita memanggilnya garpu emas; apabila rata-rata bersiklus perlahan melintasi rata-rata bersiklus cepat, kita memanggilnya garpu mati.

Permulaan saham adalah berasaskan pada peruntukan yang sama.

让我们打开FMZ.COMDalam bahasa penulisan dasar di sudut kiri atas, pilih Python. Di bawah ini adalah kod untuk strategi ini, setiap baris mempunyai nota yang sangat terperinci, harap pembaca perlahan-lahan menyedari. Strategi ini bukan strategi piringan sebenar, jangan pernah bereksperimen dengan wang sebenar, terutamanya untuk membolehkan anda menulis satu lagi konsep umum dan template pembelajaran untuk strategi.

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访问频率过快导致账户被限制。

  • Ujian semula strategi bersempadan

Pada halaman penyuntingan strategi, kita telah menyelesaikan penulisan strategi, dan seterusnya kita akan mengulas semula strategi ini untuk melihat bagaimana ia berfungsi dalam industri sejarah, pengulas balik memainkan peranan penting dalam pembangunan strategi kuantitatif mana pun, tetapi juga hanya boleh menjadi rujukan penting, pengulas balik tidak sama dengan jaminan keuntungan, kerana pasaran sentiasa berubah, pengulas balik hanyalah satu tindakan selepas kejadian, yang boleh dikategorikan sebagai penafsiran, pasaran adalah penafsiran.

Klik Ulasan Analog, anda dapat melihat bahawa terdapat banyak parameter yang boleh disesuaikan, yang boleh diubah secara langsung di dalamnya, untuk strategi yang semakin kompleks dan parameter yang lebih banyak, perubahan sedemikian dapat membantu pengguna mengelakkan masalah perubahan secara individu dalam kod, mudah, cepat, dan jelas.

img

Pilihan pengoptimuman di belakang akan mengoptimumkan parameter yang ditetapkan secara automatik, sistem akan mencuba pelbagai parameter optimum untuk membantu pembangun dasar mencari pilihan yang terbaik.

Dari contoh di atas, kita dapat melihat bahawa asas perdagangan kuantifikasi adalah melalui analisis data rentak masa, dan interaksi pengukuran balik data tik, kemudian logik yang rumit, tidak dapat dipisahkan dari kedua-dua elemen asas ini. Perbezaan hanya berbeza dalam dimensi, seperti perdagangan frekuensi tinggi, memerlukan bahagian data yang lebih terperinci, data rentak masa yang lebih kaya. Sebagai contoh, perdagangan suku bunga, permintaan data untuk sampel pengukuran balik adalah lebih besar, mungkin memerlukan data mendalam berturut-turut selama beberapa dekad untuk dua tanda dagangan tertentu untuk mencari statistik hasil keuntungan mereka.


Berkaitan

Lebih lanjut