avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada Pesan pribadi
4
fokus pada
1271
Pengikut

Strategi aliran pesanan linier dikembangkan berdasarkan fungsi pemutaran data

Dibuat di: 2019-12-13 17:13:07, diperbarui pada: 2024-12-15 16:04:23
comments   3
hits   2353

Strategi aliran pesanan linier dikembangkan berdasarkan fungsi pemutaran data

Kata pengantar

Orang sering mengatakan bahwa berdagang adalah seni, dan seni berasal dari inspirasi. Jadi hari ini saya ingin berbagi dengan Anda cara menggunakan fungsi Quantitative Data Replay dari Inventor untuk menemukan inspirasi perdagangan Anda sendiri.

Inspirasi perdagangan dan kepekaan pasar

Apa yang biasa kita sebut inspirasi mengacu pada keadaan kreatif yang langsung dialami orang selama proses berpikir. Bagi para pedagang, belahan otak kiri melengkapi perumusan serangkaian aturan seperti penulisan strategi, alokasi modal, dan pengaturan parameter. Inspirasi perdagangan dan kepekaan pasar tersebut datang dari belahan otak kanan.

Banyak orang telah mendengar istilah “perasaan pasar”, yang merupakan perasaan yang tidak dapat dijelaskan, seolah-olah apa yang terjadi sekarang terasa familier. Saat berdagang, intuisi yang menyerupai indra keenam ini, meskipun tidak didasarkan pada penalaran dan analisis logis, akan mendorong pedagang untuk membuat keputusan beli atau jual berdasarkan firasat mereka tentang tren pasar di masa mendatang.

Cara mendapatkan inspirasi

Bagi orang luar, kepekaan pasar adalah bakat misterius yang memungkinkan Anda menang tanpa perlu bergerak. Dengan itu, Anda dapat memperoleh pijakan di pasar. Faktanya, persepsi pasar adalah ringkasan pengalaman perdagangan subjektif oleh otak. Ini adalah perasaan prediktif samar yang diperoleh melalui pengamatan pasar selama bertahun-tahun.

Meskipun secara tegas, inspirasi tidak sepenuhnya sama dengan kepekaan pasar, saya percaya bahwa setelah ribuan kali pengalaman di pasar, setiap orang akan memiliki pemahaman yang lebih mendalam tentang pasar dan akan mahir dalam mengembangkan strategi. Oleh karena itu, jika Anda ingin memperoleh bakat ini dan mengembangkan lebih banyak strategi perdagangan, tidak ada cara lain selain berlatih hingga Anda mendapat kesempatan. Hanya melalui sejumlah besar transaksi Anda dapat menyempurnakan sistem perdagangan Anda.

Namun, komoditas berjangka dan saham domestik hanya memiliki waktu perdagangan beberapa jam sehari. Jika Anda hanya meningkatkan pengalaman Anda dalam mengamati pasar melalui perdagangan nyata, membentuk model keuntungan dan aturan perdagangan Anda sendiri, dan melatih refleks terkondisi Anda secara tidak sadar, itu akan Sulit untuk mencapai keberhasilan. Saya tidak mampu melakukannya. Selain membayar biaya waktu yang lebih lama, sebagian besar pedagang juga harus menanggung biaya kerugian modal. Untuk memecahkan masalah ini, para penemu mengembangkan fungsi pemutaran data secara kuantitatif.

Cara menggunakan Data Replay

Fungsi pemutaran data dapat dilatih tanpa dibatasi oleh jam perdagangan bursa, dan mendukung berbagai komoditas berjangka dan varietas mata uang digital. Kondisi pasar dapat diputar ulang secara manual atau otomatis, dan waktu mulai dan berakhirnya kondisi pasar historis dan Kecepatan pemutaran dapat diatur secara bebas. Dibandingkan dengan perangkat lunak lain yang umumnya menggunakan metode pemutaran data K-line, Inventor Quantitative menggunakan metode pemutaran data level Tick, yang merupakan lingkungan pengujian ulang yang benar-benar dekat dengan perdagangan nyata, mereproduksi data harga dan volume, memungkinkan pedagang untuk tenggelam dalam pengalaman.

Buka situs web resmi Inventor Quantitative (fmz.com), daftar dan masuk, lalu klik Eksplorasi Data di pusat kendali untuk menampilkan halaman fungsi pemutaran data. Ada empat kotak pilihan dan tombol pilihan. Pertama, klik tombol pilihan untuk menampilkan hanya varietas yang mendukung pemutaran waktu nyata. Kemudian, pilih varietas yang akan diputar ulang di sudut kiri atas, lalu pilih awal dan akhir waktu data dalam dua kotak pilihan berikutnya. Pilih periode waktu data sebagai pemutaran waktu nyata, dan terakhir klik tombol Buka di paling kanan untuk memulai fungsi pemutaran data.

Strategi aliran pesanan linier dikembangkan berdasarkan fungsi pemutaran data

Ada tiga bagian di bawah label data. Di sebelah kiri adalah riwayat transaksi, yang menampilkan semua pesanan yang dieksekusi dalam urutan kronologis. Di tengah terdapat data pasar dengan 20 tingkat kedalaman untuk pembelian dan penjualan. Di sebelah kanan terdapat area kontrol pemutaran data, tempat Anda dapat memilih metode pemutaran data manual dan otomatis, semudah menggunakan pemutar media.

Strategi aliran pesanan linier dikembangkan berdasarkan fungsi pemutaran data

Indeks posisi dapat diseret maju dan mundur untuk memilih waktu mulai pemutaran data dengan cepat.

Strategi aliran pesanan linier dikembangkan berdasarkan fungsi pemutaran data

Di bagian bawah, Anda juga dapat mengontrol kecepatan pemutaran data dengan menggerakkan kursor ke kanan atau kiri. Satuan waktu adalah milidetik. Anda dapat mempercepat atau memperlambat pemutaran data.

Strategi aliran pesanan linier dikembangkan berdasarkan fungsi pemutaran data

Membangun logika strategi

Meskipun ada banyak faktor yang memengaruhi fluktuasi harga, termasuk: lingkungan ekonomi global, kebijakan ekonomi makro nasional, kebijakan industri yang relevan, hubungan penawaran dan permintaan, peristiwa internasional, suku bunga dan nilai tukar, inflasi dan deflasi, psikologi pasar, faktor-faktor yang tidak diketahui, dll. , situasi pasar akhir Harga di atas adalah hasil persaingan antara bulls dan bears. Jika jumlah pembeli lebih banyak daripada penjual, harga akan naik; sebaliknya, jika jumlah penjual lebih banyak daripada pembeli, harga akan turun. Kemudian kita hanya perlu menganalisis harga untuk membuat strategi perdagangan.

Melalui pemutaran kuantitatif penemu terhadap pasangan perdagangan btc_usdt di Binance Exchange pada bulan lalu, kami menemukan bahwa ketika pasar melonjak atau anjlok, volume pesanan sisi panjang dan pendek buku pesanan data Tick jelas asimetris. Ketika pasar meningkat tajam, volume pesanan panjang secara signifikan lebih besar daripada volume pesanan pendek; ketika pasar jatuh tajam, volume pesanan pendek secara signifikan lebih kecil daripada volume pesanan panjang. Jadi bisakah kita memprediksi naik turunnya harga dalam waktu singkat berdasarkan jumlah pesanan di buku pesanan?

Jawabannya iya.

Strategi aliran pesanan linier dikembangkan berdasarkan fungsi pemutaran data Strategi aliran pesanan linier dikembangkan berdasarkan fungsi pemutaran data

Kita dapat mengumpulkan data tick yang mendalam, menghitung volume order long dan short, dan membandingkannya. Jika volume gabungan order long dan short sangat berbeda, hal itu mungkin merupakan peluang pembelian atau penjualan yang potensial. Misalnya, ketika jumlah order panjang adalah N kali lipat dari order pendek, kita dapat berasumsi bahwa sebagian besar orang di pasar optimis, dan kemungkinan kenaikan harga dalam jangka pendek akan meningkat; ketika jumlah order pendek adalah N kali lipat dari order panjang, Pada saat ini, kita dapat berasumsi bahwa sebagian besar orang di pasar bersikap bearish, dan kemungkinan penurunan harga dalam jangka pendek di masa mendatang akan meningkat.

Menulis strategi perdagangan

Menurut logika strategi di atas, mulailah mengimplementasikannya dengan kode. Buka secara berurutan: situs web fmz.com > Masuk > Pusat Kontrol > Pustaka Kebijakan > Kebijakan Baru > Klik menu tarik-turun di sudut kanan atas dan pilih bahasa Python untuk mulai menulis kebijakan. Strategi ini hanyalah titik awal untuk mengajar, jadi saya mencoba membuatnya sesingkat mungkin. Harap perhatikan komentar dalam kode di bawah ini.

Langkah 1: Menulis kerangka kebijakan

# 策略主函数
def onTick():
    pass


# 程序入口
def main():
    while True:  # 进入无限循环模式
        onTick()  # 执行策略主函数
        Sleep(1000)  # 休眠1秒

Bila kita menulis strategi, sebaiknya kita menulis dari besar ke kecil, seperti membangun rumah, bangun rangka dulu baru dindingnya. Dalam kerangka kerja ini, kami menggunakan dua fungsi: fungsi utama dan fungsi onTick. Fungsi utama adalah titik masuk program, artinya program akan dieksekusi dari sini, lalu masuk ke mode loop tak terhingga, dan mengeksekusi fungsi onTick secara berulang. Kemudian kita tinggal menuliskan konten strategi ke fungsi onTick.

Langkah 2: Tulis variabel global

vol_ratio_arr = []  # 多空挂单比率数组
mp = 0  # 虚拟持仓

Alasan mengapa vol_ratio_arr didefinisikan sebagai variabel global adalah karena strategi saya perlu mengumpulkan rasio order long dan short untuk periode data Tick. Jika kita menempatkan variabel vol_ratio_arr dalam fungsi onTick, jelas tidak masuk akal untuk dijalankan dengan loop. Yang kita perlukan adalah Dalam sebuah pola, nilai sebuah variabel hanya berubah ketika kondisi tertentu terpenuhi. Pendekatan yang paling masuk akal adalah menempatkan variabel di luar loop.

Manajemen posisi sangat diperlukan karena berkaitan dengan logika jual beli. Umumnya, dalam perdagangan spot, kami menghitung pasangan mata uang yang dimiliki dengan memperoleh akun. Untuk menyederhanakan kode, variabel posisi virtual global didefinisikan langsung di sini untuk mengendalikan logika pembelian dan penjualan.

Langkah 3: Hitung rasio long-short saat ini

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 kita ketahui, mata uang digital biasanya memiliki 20 level data kedalaman, sehingga kita dapat menjumlahkan order long dan short untuk menghitung rasio long terhadap short. Ketika nilai ini lebih besar dari 1, berarti lebih banyak orang yang bullish daripada bearish., menunjukkan bahwa harga akan naik dalam jangka pendek di masa mendatang; bila nilai ini kurang dari 1, berarti jumlah orang yang bearish lebih banyak daripada jumlah orang yang bullish, yang menunjukkan bahwa harga akan turun dalam jangka pendek. jangka pendek di masa mendatang.

Namun ada satu hal yang perlu dibedakan. Semakin dekat pending order dengan harga pasar, semakin kuat sentimen bullish atau bearish. Misalnya, order beli yang ditempatkan pada level pertama pasti menunjukkan sentimen bullish yang lebih kuat daripada order beli yang ditempatkan pada tingkat ke-20. Oleh karena itu, ketika mengakumulasikan pesanan yang tertunda, kita perlu memberikan bobot yang berbeda pada 20 pesanan secara linier, yang akan lebih masuk akal.

Langkah 4: Hitung rasio panjang-pendek secara linier selama periode waktu tertentu

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  # 线性多空挂单比率

Rasio long-short dapat diperoleh dengan membagi akumulasi order long dengan akumulasi order short, tetapi ini hanya data satu tick. Mungkin bukan pilihan yang bijaksana untuk memutuskan transaksi beli dan jual hanya berdasarkan data satu tick. , karena di pasar yang terus berubah, sebuah tanda centang dapat mengubah tren pasar. Data tanda centang tidak meyakinkan. Oleh karena itu, kita perlu mengumpulkan data tick pada periode tertentu, lalu menggunakan kalkulasi linear untuk mendapatkan nilai wajar.

Langkah 5: Lakukan pemesanan

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  # 重置虚拟持仓的值

Karena kita perlu menentukan harga saat melakukan pemesanan, kita dapat langsung menggunakan harga permintaan terkini saat membeli, dan harga penawaran terkini saat menjual. Terakhir, setelah pesanan ditempatkan dan transaksi selesai, atur ulang nilai posisi virtual.

Kesimpulan

Di atas adalah analisis kode strategi aliran pesanan linier yang dikembangkan berdasarkan fungsi pemutaran data. Jika Anda seorang pemula dalam perdagangan, fungsi pemutaran data dapat membantu Anda mempelajari perdagangan tanpa biaya dan mempersingkat waktu untuk memahami perdagangan. Biasanya butuh waktu beberapa tahun untuk mempelajari perdagangan dalam perdagangan nyata atau simulasi. Hasil awal terlihat. Efek yang sama dapat dicapai dalam beberapa minggu dengan menggunakan fungsi pemutaran data, yang memungkinkan Anda mempelajari perdagangan dengan kerugian minimal tanpa membuang-buang waktu. Bagi pedagang tingkat lanjut, tinjauan dinamis dapat membantu Anda menganalisis masalah masa lalu, memverifikasi dan meningkatkan strategi perdagangan, meningkatkan keyakinan pedagang terhadap strategi, dan membantu menghasilkan inspirasi strategi baru.