Oleh itu, hari ini saya ingin berkongsi dengan anda bagaimana pencipta menggunakan fungsi pemutaran data kuantitatif untuk mencari inspirasi perdagangan anda sendiri.
Biasanya kita bercakap tentang inspirasi, yang merujuk kepada keadaan kreatif yang muncul dalam sekejap dalam proses berfikir. Bagi peniaga, bahagian kiri otak kita telah menyelesaikan membuat satu set peraturan seperti penulisan strategi, peruntukan dana, penetapan parameter. Sementara itu, inspirasi dan rasa perdagangan berasal dari bahagian kanan otak.
Banyak orang yang pernah mendengar perkataan "sensasi tebing", yang merupakan perasaan yang tidak jelas, seolah-olah apa yang berlaku pada masa ini telah diketahui. Dalam perdagangan, intuisi yang serupa dengan indera keenam ini, walaupun tanpa penalaran dan analisis logik, menjangkakan pergerakan masa depan pasaran, mendorong peniaga untuk membuat keputusan membeli atau menjual.
Pada pandangan orang luar, rasa cukai adalah sesuatu yang luar biasa, satu bakat misteri yang tidak dapat dikalahkan, dengan itu boleh berdiri di pasaran. Sebenarnya rasa cukai adalah ringkasan pengalaman perdagangan subjektif otak, adalah rasa prasangka yang tajam yang difahami melalui bertahun-tahun melihat cukai.
Walaupun secara ketatnya, inspirasi tidak sama dengan perasaan, tetapi saya percaya bahawa semua orang telah berlatih pasaran beribu-ribu kali, mempunyai pemahaman yang lebih mendalam tentang pasaran, dan akan menjadi lebih baik ketika membangunkan strategi. Oleh itu, untuk mendapatkan bakat ini, untuk membangunkan lebih banyak strategi perdagangan, tidak ada yang lain, hanya ahli tangan. Hanya dengan banyak perdagangan, anda boleh menyempurnakan sistem perdagangan anda sendiri.
Tetapi masa dagangan masa hadapan komoditi dan saham domestik hanya beberapa jam sehari, dan jika hanya meningkatkan pengalaman melihat anda dari dagangan sebenar, membentuk model keuntungan dan peraturan dagangan anda sendiri, dan melatih refleksi syarat anda sendiri dalam alam bawah sedar, ia akan menjadi tidak berkesan. Selain membayar kos masa yang lebih lama, kebanyakan peniaga juga menanggung kos kerugian modal. Untuk menyelesaikan masalah ini, pencipta mengembangkan fungsi pemulangan data secara kuantitatif.
Fungsi pemutaran data boleh dilatih tanpa batasan masa dagangan bursa, menyokong pelbagai jenis komoditi berjangka dan mata wang digital, pasaran boleh diputar semula secara manual dan boleh diputar semula secara automatik, dan juga bebas menetapkan masa permulaan dan kelajuan pemutaran pasaran sejarah. Berbanding dengan perisian lain yang umumnya menggunakan kaedah pemutaran data K-line, pencipta mengukur menggunakan kaedah pemutaran data tahap Tick, yang benar-benar mendekati persekitaran pengukuran pemutaran perdagangan sebenar, memutar semula data harga purna jual, yang membolehkan peniaga berada dalam keadaan sebenar.
Di sini, anda boleh melihat beberapa gambar yang menarik.fmz.comKlik pada kotak pilihan dan satu butang pilihan. Pertama, klik pada butang pilihan yang hanya menunjukkan jenis yang menyokong pemutaran cakera sebenar, kemudian pilih jenis yang ingin diputar di bahagian kiri atas, kemudian pilih masa permulaan data dalam dua kotak pilihan di belakang, kemudian pilih tempoh masa data untuk pemutaran cakera sebenar, dan akhirnya klik pada butang Go di sebelah kanan untuk menghidupkan fungsi pemutaran data.
Di bawah tag data, ia dibahagikan kepada tiga bahagian. Di sebelah kiri adalah sejarah urus niaga, yang menunjukkan semua pesanan yang telah dibuat mengikut masa. Di tengah adalah data rakaman dengan kedalaman 20 file untuk setiap pembelian dan penjualan. Di sebelah kanan adalah kawasan kawalan untuk bermain data, di mana anda boleh memilih cara bermain data secara manual dan automatik, yang semudah menggunakan pemain media.
Indeks lokasi boleh menyeret pelayaran ke kiri dan ke kiri, untuk memilih masa permulaan pemutaran data dengan cepat.
Pada bahagian paling bawah, anda juga boleh mengawal kelajuan pemutaran data melalui penunjuk bergerak kiri dan kanan, dalam milisaat sebagai unit masa, yang boleh mempercepatkan atau melambatkan pemutaran data.
Walaupun terdapat banyak faktor yang mempengaruhi penurunan harga, termasuk: persekitaran ekonomi global, dasar makro negara, dasar industri yang berkaitan, hubungan bekalan dan permintaan, peristiwa antarabangsa, kadar faedah dan pertukaran, inflasi dan kemerosotan, psikologi pasaran, faktor-faktor yang tidak diketahui, dan lain-lain, tetapi harga pada pinggan akhir adalah hasil daripada persaingan antara pelbagai pihak. Jika lebih banyak pembeli, harga akan naik; sebaliknya, jika lebih banyak penjual, harga akan turun. Maka kita hanya perlu menganalisis harga untuk membuat strategi perdagangan.
Dengan mengutip inventor mengutip pasangan perdagangan btc_usdt pada satu bulan terakhir, kita mendapati bahawa jumlah pesanan Tick pada kedua-dua belah pihak adalah jelas tidak simetris semasa kenaikan dan kejatuhan pasaran. Apabila pasaran meningkat, jumlah pesanan yang lebih banyak dipegang lebih besar daripada jumlah pesanan yang lebih banyak dipegang; apabila pasaran menurun, jumlah pesanan yang lebih sedikit dipegang lebih sedikit daripada jumlah pesanan yang lebih banyak dipegang. Jadi, adakah kita dapat meramalkan penurunan harga dalam masa terdekat berdasarkan jumlah pesanan yang dipegang dalam pesanan yang lebih kecil?
Jawapannya adalah ya.
Dengan mengumpul data Tick yang mendalam, kita boleh mengira dan membandingkan jumlah pesanan yang dipaparkan oleh kedua-dua pihak yang mempunyai banyak ruang kosong. Jika perbezaan jumlah pesanan yang dipaparkan oleh kedua-dua pihak yang mempunyai banyak ruang kosong, peluang jual beli yang berpotensi mungkin. Sebagai contoh, apabila jumlah pesanan yang dipaparkan oleh banyak kepala adalah N kali jumlah pesanan yang dipaparkan oleh banyak kepala, kita boleh menganggap bahawa kebanyakan orang di pasaran melihat lebih banyak, kemungkinan kenaikan harga dalam masa terdekat akan meningkat; apabila jumlah pesanan yang dipaparkan oleh banyak kepala adalah N kali, kita boleh menganggap bahawa kebanyakan orang di pasaran tidak melihat, kemungkinan penurunan harga dalam masa terdekat akan meningkat.
Mengikut logik strategi di atas, mulakan dengan kod yang dilaksanakan. Buka laman web: fmz.com > Login > Pusat Kawalan > Perpustakaan Dasar > Mencipta Dasar > Klik menu seret ke bawah di sudut kanan atas, pilih bahasa Python, mulakan menulis dasar. Dasar ini digunakan sebagai pengajaran untuk meletakkan tanda kutip, jadi saya cuba menulis dasar yang lebih ringkas, perhatikan catatan dalam kod di bawah.
Langkah Pertama: Menulis Rangka Kerja Strategi
# 策略主函数
def onTick():
pass
# 程序入口
def main():
while True: # 进入无限循环模式
onTick() # 执行策略主函数
Sleep(1000) # 休眠1秒
Kita harus menulis dasar dengan huruf besar dan kecil, seperti atap rumah, sebelum rangka kerja dan dinding. Dalam rangka kerja ini, kita menggunakan dua fungsi, iaitu fungsi utama dan fungsi onTick. Di mana fungsi utama adalah input program, iaitu program akan dijalankan dari sini, kemudian masuk ke mod gelung tanpa henti, menjalankan semula fungsi onTick.
Langkah 2: Menulis pembolehubah global
vol_ratio_arr = [] # 多空挂单比率数组
mp = 0 # 虚拟持仓
Sebab mengapa vol_ratio_arr ditakrifkan sebagai variabel global adalah kerana strategi saya memerlukan untuk mengumpul peratusan tunggal bersambung yang banyak ruang untuk satu data Tick, jika kita meletakkan vol_ratio_arr dalam fungsi onTick, dengan berjalan dengan berputar jelas tidak masuk akal, kita memerlukan dalam mod berputar untuk mengubah nilai pembolehubah hanya apabila keadaan tertentu dicapai, dan cara yang paling masuk akal adalah meletakkan pembolehubah ini di luar loop.
Pengurusan pegangan adalah sangat diperlukan kerana ia berkaitan dengan logik jual beli, biasanya dalam perdagangan segera, kita mengira pasangan mata wang yang kita pegang dengan mendapatkan akaun. Di sini untuk memudahkan kod, kita secara langsung mentakrifkan pemboleh ubah pegangan maya global untuk mengawal logik jual beli.
Langkah ketiga: Mengira kadar ruang kosong semasa
depth = exchange.GetDepth() # 获取深度数据
asks = depth['Asks'] # 获取卖价数组
bids = depth['Bids'] # 获取买价数组
asks_vol = 0 # 所有卖价挂单
bids_vol = 0 # 所有买价挂单
for index, ask in enumerate(asks): # 遍历卖价数组
# 线性计算所有卖价挂单
asks_vol = asks_vol + ask['Amount'] * (20 - index)
for index, bid in enumerate(bids): # 遍历买价数组
# 线性计算所有买价挂单
bids_vol = bids_vol + bid['Amount'] * (20 - index)
bidask_ratio = bids_vol / asks_vol # 计算多空比率
Seperti yang diketahui, mata wang digital biasanya mempunyai data kedalaman 20 darjah, maka kita boleh menambah jumlah pesanan yang dipaparkan dengan banyak kepala dan kosong untuk mengira nisbah kepala dan kosong, apabila nilai ini lebih besar daripada 1 menunjukkan lebih ramai orang yang melihat lebih banyak daripada orang yang melihat lebih banyak, menunjukkan harga akan naik dalam masa terdekat; apabila nilai ini kurang dari 1 menunjukkan orang yang melihat lebih banyak daripada orang yang melihat lebih banyak, menunjukkan harga akan turun dalam masa terdekat.
Tetapi ada satu perkara yang perlu dibezakan, apabila jarak pendirian lebih dekat dengan piringan, ia menunjukkan bahawa keinginan untuk membaca lebih banyak atau kurang lebih kuat, seperti pembayaran yang tergantung di satu barisan pasti lebih kuat daripada pembayaran yang tergantung di 20 barisan. Oleh itu, ketika kita menumpuk daftar, kita perlu memberi berat kepada masing-masing 20 barisan dengan cara yang berbeza dengan cara yang lebih rasional.
Langkah 4: Perbandingan ruang kosong dalam jangka masa dalam pengiraan linear
global vol_ratio_arr, mp # 引入全局变量
vol_ratio_arr.insert(0, bidask_ratio) # 把多空比率放到全局变量数组里面
if len(vol_ratio_arr) > 20: # 如果数组超过指定长度
vol_ratio_arr.pop() # 删除最旧的元素
all_ratio = 0 # 临时变量,所有多空挂单比率
all_num = 0 # 临时变量,所有线性乘数
for index, vol_ratio in enumerate(vol_ratio_arr): # 变量全局变量数组
num = 20 - index # 线性乘数
all_num = all_num + num # 线性乘数累加
all_ratio = all_ratio + vol_ratio * num # 所有多空挂单比率累加
ratio = all_ratio / all_num # 线性多空挂单比率
Untuk mendapatkan perbandingan ruang kosong, anda boleh menggunakan perbandingan berganda untuk membahagi perbandingan berganda dengan perbandingan berganda kosong, tetapi ini hanya apabila data Tick, jika hanya menggunakan satu data Tick, untuk membuat keputusan perdagangan mungkin bukan pilihan yang bijak, kerana dalam pasaran yang berubah dengan cepat, satu data Tick tidak meyakinkan. Oleh itu, kita perlu mengumpul satu set data Tick yang tetap, dan akhirnya mengira nilai yang adil melalui garis.
Langkah 5: Buat pesanan
last_ask_price = asks[0]['Price'] # 最新卖一价,用于买入的价格
last_bid_price = bids[0]['Price'] # 最新买一价,用于卖出的价格
if mp == 0 and ratio > buy_threshold: # 如果当前无持币,并且比率大于指定值
exchange.Buy(last_ask_price, 0.01) # 买入
mp = 1 # 设置虚拟持仓的值
if mp == 1 and ratio < sell_threshold: # 如果当前持币,并且比率小于指定值
exchange.Sell(last_bid_price, 0.01) # 卖出
mp = 0 # 重置虚拟持仓的值
Oleh kerana harga perlu ditentukan semasa pesanan, kita boleh menggunakan harga jual terkini semasa membeli; semasa menjual, kita boleh menggunakan harga beli terkini. Akhirnya, apabila pesanan selesai, nilai simpanan maya diset semula.
Di atas adalah analisis kod strategi aliran tunggal yang berasaskan analisis garis yang dibangunkan berdasarkan fungsi pemulangan data. Jika anda seorang pemula perdagangan, fungsi pemulangan data boleh mempelajari perdagangan dengan kos sifar, memendekkan masa yang diperlukan untuk mengetahui perdagangan, perdagangan sebenar atau simulasi biasanya memerlukan beberapa tahun untuk melihat hasil pertama, dengan menggunakan beberapa minggu pada fungsi pemulangan data dapat mencapai kesan yang sama, dengan meminimumkan kerugian belajar perdagangan tanpa membuang masa. Bagi peniaga yang maju, pemulangan dinamik dapat membantu anda menganalisis masalah anda sebelumnya, mengesahkan dan menyempurnakan strategi dagangan, meningkatkan keyakinan peniaga terhadap strategi, dan dapat membantu menghasilkan inspirasi strategi baru.
xaifer48Adakah fungsi main semula cakera sebenar dimatikan?
Ini hanya gambaran ringkas, masih banyak lagi yang perlu dioptimumkan, dan saya akan mengulas semula, haha.