Sumber daya yang dimuat... Pemuatan...

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

Penulis:FMZ~Lydia, Dibuat: 2022-12-23 20:06:04, Diperbarui: 2023-09-20 09:41:28

img

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

Pengantar

Sering dikatakan bahwa trading adalah seni, dan seni berasal dari inspirasi. jadi hari ini saya ingin berbagi dengan Anda bagaimana menggunakan fungsi pemutaran data FMZ Quant untuk mengeksplorasi inspirasi trading saya.

Inspirasi dan perasaan pasar dari perdagangan

Apa yang biasanya kita sebut inspirasi mengacu pada keadaan kreatif yang dihasilkan orang dalam proses berpikir. Bagi pedagang, belahan otak kiri kita telah menyelesaikan perumusan serangkaian aturan seperti penulisan strategi, alokasi modal dan pengaturan parameter. Inspirasi dan perasaan pasar perdagangan berasal dari belahan otak kanan.

Banyak orang telah mendengar kata perasaan pasar, yang merupakan semacam perasaan yang tidak jelas, seperti déjà vu dari apa yang terjadi pada saat itu.

Bagaimana mendapatkan inspirasi

Di mata orang awam, perasaan pasar adalah misterius. Ini adalah bakat misterius. Dengan itu, Anda dapat berdiri di pasar. Sebenarnya, ini adalah ringkasan pengalaman perdagangan subjektif oleh otak. Ini adalah perasaan prasangka yang samar yang direalisasikan melalui bertahun-tahun menonton pasar.

Meskipun secara ketat, inspirasi tidak sama persis dengan perasaan pasar, kami percaya bahwa setelah ribuan kali penyempurnaan pasar, kami akan memiliki pemahaman yang lebih mendalam tentang pasar, dan kami akan dapat mengembangkan strategi dengan mudah. Jadi jika Anda ingin memperoleh bakat ini dan mengembangkan lebih banyak strategi perdagangan. Hanya melalui sejumlah besar transaksi, kami dapat meningkatkan sistem perdagangan kami.

Namun, komoditas domestik berjangka dan saham hanya memiliki waktu perdagangan beberapa jam sehari, jadi akan sangat sulit untuk meningkatkan pengalaman seseorang dalam menonton pasar, membentuk pola keuntungan dan aturan perdagangan sendiri, dan melatih refleks bersyarat seseorang secara tidak sadar dari perdagangan langsung saja. Selain membayar biaya waktu yang lama, sebagian besar pedagang juga menanggung biaya kerugian modal. Untuk memecahkan masalah ini, FMZ Quant mengembangkan fungsi pemutaran data.

Cara menggunakan pemutaran data

Fungsi pemutaran data dapat dilatih terlepas dari jam perdagangan bursa, dan mendukung berbagai macam komoditas berjangka dan varietas mata uang digital. Pasar dapat diputar kembali secara manual atau otomatis, dan waktu awal dan akhir dan kecepatan pemutaran pasar historis dapat diatur secara bebas. Dibandingkan dengan perangkat lunak lain, mode pemutaran data K-line banyak digunakan, sementara FMZ Quant mengadopsi mode pemutaran data di tingkat Tick, yang benar-benar dekat dengan lingkungan backtesting bot perdagangan nyata, dan mereproduksi data volume harga pasar, memungkinkan pedagang untuk tenggelam dalam dunia nyata.

Buka situs resmi FMZ Quant (fmz.comUntuk melakukan pendaftaran dan login, lalu klik Database di Dashboard untuk menampilkan halaman fungsi pemutaran data. Ada empat kotak pilihan dan satu tombol pilihan. Pertama, klik tombol pilihan untuk menampilkan hanya varietas yang mendukung pemutaran bot nyata, kemudian pilih varietas yang akan diputar kembali di sebelah kiri atas, kemudian pilih waktu awal dan akhir data di dua kotak pilihan berikutnya, kemudian pilih periode waktu data sebagai pemutaran bot nyata, dan akhirnya klik tombol Go di sebelah kanan untuk memulai fungsi pemutaran data.

img

Ada tiga bagian di bawah label data. Di sebelah kiri adalah riwayat perdagangan, di mana semua order yang telah ditutup ditampilkan dalam urutan kronologis. Di tengah adalah kedalaman 20 posisi dari setiap data order beli dan jual. Di sebelah kanan adalah area kontrol pemutaran data, di mana Anda dapat memilih metode pemutaran data manual dan otomatis, seperti menggunakan pemutar media.

img

Indeks posisi dapat menyeret kursor maju mundur dari kiri ke kanan, memungkinkan Anda untuk memilih waktu awal pemutaran data dengan cepat.

img

Kecepatan pemutaran data juga dapat dikontrol di bagian bawah dengan menggerakkan kursor ke kanan-kiri, dalam milidetik, untuk mempercepat dan memperlambat data selama pemutaran.

img

Membangun logika strategi

Meskipun ada banyak faktor yang mempengaruhi kenaikan dan penurunan harga, termasuk lingkungan ekonomi global, kebijakan makro nasional, kebijakan industri yang relevan, hubungan penawaran dan permintaan, peristiwa internasional, suku bunga dan nilai tukar, inflasi dan deflasi, psikologi pasar, faktor yang tidak diketahui, dll., Harga akhir di pasar adalah hasil dari persaingan antara berbagai pihak dan sisi posisi pendek. Jika lebih banyak orang membeli daripada menjual, harga akan meningkat; Sebaliknya, jika lebih banyak orang menjual daripada membeli, harga akan menurun. Kemudian kita hanya perlu menganalisis harga untuk membuat strategi perdagangan.

Melalui pemutaran FMZ Quant dari pasangan perdagangan BTC_USDT bursa Binance bulan-bulan terakhir, kami menemukan bahwa ketika pasar meningkat dan menurun tajam, buku pesanan data Tick jelas tidak simetris dalam hal volume pesanan antara posisi panjang dan pendek. Ketika pasar meningkat, jumlah pesanan panjang yang terjadi jelas lebih besar dari jumlah pesanan pendek yang terjadi; Ketika pasar meningkat, jumlah pesanan pendek yang terjadi jelas lebih besar dari jumlah pesanan panjang yang terjadi. Jadi dapatkah kita memprediksi harga meningkat dan menurun dalam waktu singkat berdasarkan volume pesanan yang sedang menunggu di buku pesanan?

Jawabannya adalah ya.

img

Ketika pasar meningkat, jumlah pesanan long yang akan pergi jelas lebih besar dari jumlah pesanan short yang akan pergi.

img

Ketika pasar berkurang, jumlah pesanan short jelas lebih besar dari jumlah pesanan long.

Kita dapat mengumpulkan data Tick yang mendalam untuk menghitung pesanan menunggu panjang dan pendek dan membandingkannya, jika gabungan pesanan menunggu panjang dan pendek sangat berbeda, itu bisa menjadi peluang perdagangan potensial. misalnya, ketika jumlah pesanan posisi panjang N kali lipat dari pesanan posisi pendek, kita dapat berpikir bahwa kebanyakan orang di pasar bullish, dan kemungkinan kenaikan harga akan meningkat dalam waktu singkat di masa depan; ketika jumlah penjual pendek N kali lipat dari penjual panjang, kita dapat berpikir bahwa sebagian besar orang di pasar bearish, dan kemungkinan penurunan harga akan meningkat dalam waktu dekat.

Menulis strategi perdagangan

Menurut logika strategi di atas, itu mulai diimplementasikan dalam kode.fmz.com> Login > Dashboard > Strategi > Tambahkan Strategi > Klik menu drop-down di sudut kanan atas untuk memilih bahasa Python dan mulai menulis strategi.

Langkah 1: Menulis kerangka strategi

# Strategy main function
def onTick():
    pass


# Program entry
def main():
    while True:  # Enter the infinite loop mode
        onTick()  # Execute the strategy main function
        Sleep(1000)  # Sleep for 1 second

Kita harus menulis strategi kita dari besar ke kecil, sama seperti membangun rumah, membangun bingkai pertama dan kemudian dinding. Dalam kerangka kerja ini, kita menggunakan dua fungsi: fungsi utama dan fungsi onTick. Fungsi utama adalah entri program, yaitu, program akan dijalankan dari sini, kemudian masuk ke mode loop tak terbatas, dan mengeksekusi fungsi onTick berulang kali. Kemudian kita hanya perlu menulis konten strategi ke dalam fungsi onTick.

Langkah 2: Tulis variabel global

vol_ratio_arr = []  # Long/Short positions pending order ratio array
mp = 0  # Virtual positions

Alasan mengapa vol_ratio_arr didefinisikan sebagai variabel global, karena strategi saya perlu mengumpulkan rasio posisi panjang dan pendek menunggu pesanan dari sepotong data Tick. Jika kita menempatkan variabel vol_ratio_arr ke dalam fungsi onTick, jelas tidak masuk akal untuk menjalankan dengan loop. Apa yang kita butuhkan adalah mengubah nilai variabel dalam mode loop ketika kondisi tertentu terpenuhi. Cara yang paling masuk akal adalah menempatkan variabel di luar loop.

Manajemen posisi sangat diperlukan, karena terkait dengan logika perdagangan. umumnya, kita menghitung pasangan mata uang yang dimiliki dengan memperoleh akun dalam transaksi spot. untuk menyederhanakan kode, variabel posisi virtual global didefinisikan secara langsung untuk mengontrol logika perdagangan.

Langkah 3: Hitung rasio kosong kali lipat saat ini

depth = exchange.GetDepth()  # Get depth data
asks = depth['Asks']  # Get asks array
bids = depth['Bids']  # Get bids array
asks_vol = 0  # All pending orders at ask price
bids_vol = 0  # All pending orders at bid price
for index, ask in enumerate(asks):  # Iterate through the ask price array
    # Linear calculation of all pending orders at the ask price
    asks_vol = asks_vol + ask['Amount'] * (20 - index)
for index, bid in enumerate(bids):  # Iterate through the bid price array
    # Linear calculation of all pending orders at the bid price
    bids_vol = bids_vol + bid['Amount'] * (20 - index)
bidask_ratio = bids_vol / asks_vol  # Calculate long/short position ratio

Seperti yang kita semua tahu, mata uang digital biasanya terdiri dari 20 level data yang mendalam, jadi kita dapat menambahkan jumlah pesanan posisi panjang dan pendek untuk menghitung rasio antara posisi panjang dan pendek. Ketika nilai ini lebih besar dari 1, itu berarti bahwa orang bullish lebih besar dari orang bearish, yang menunjukkan bahwa harga akan naik dalam waktu singkat di masa depan; ketika nilai ini kurang dari 1, itu berarti bahwa orang bearish lebih besar dari orang bullish, yang menunjukkan bahwa harga akan turun dalam waktu singkat di masa depan.

Namun, ada satu hal yang perlu dibedakan. Semakin dekat pesanan yang sedang menunggu dengan pasar pembukaan, semakin kuat keinginan untuk bullish atau berish akan menjadi. Misalnya, pesanan tingkat pertama pasti lebih bersedia untuk bullish daripada yang dari tingkat ke-20. Oleh karena itu, ketika kita mengumpulkan pesanan yang sedang menunggu, kita perlu memberikan bobot yang berbeda untuk pesanan dari 20 tingkat secara linier, yang akan lebih wajar.

Langkah 4: Perhitungan linier rasio posisi panjang/pendek dalam periode waktu tertentu

global vol_ratio_arr, mp  # Introduce global variables
vol_ratio_arr.insert(0, bidask_ratio)  # Put the long/short position ratio into the global variable array
if len(vol_ratio_arr) > 20:  # If the array exceeds the specified length
    vol_ratio_arr.pop()  # Delete the oldest elements
all_ratio = 0  # Temporary variable, ratio of all long and short position pending orders
all_num = 0  # Temporary variables, all linear multipliers
for index, vol_ratio in enumerate(vol_ratio_arr):  # Variable global variable arrays
    num = 20 - index  # Linear multiplier
    all_num = all_num + num  # Linear multiplier accumulation
    all_ratio = all_ratio + vol_ratio * num  # Accumulation of all long and short position pending orders ratio
ratio = all_ratio / all_num  # Linear long and short position pending order ratio

Rasio posisi long-short dapat diperoleh dengan membagi order pending kumulatif panjang dengan order pending kumulatif pendek. Namun, ini hanya data tick. Jika hanya satu data tick yang digunakan, mungkin bukan pilihan yang bijaksana untuk memutuskan transaksi beli dan jual, karena di pasar yang berubah dengan cepat, satu data tick tidak meyakinkan. Jadi kita perlu mengumpulkan data Tick yang tetap, dan akhirnya menghitung nilai wajar melalui perhitungan linier.

Langkah 5: Buat pesanan

last_ask_price = asks[0]['Price']  # Latest buy one price for asks
last_bid_price = bids[0]['Price']  # Latest sell one price for bids
if mp == 0 and ratio > buy_threshold:  # If no currency is held currently, and the ratio is greater than the specified value
    exchange.Buy(last_ask_price, 0.01)  # Buy
    mp = 1  # Set the value of virtual position
if mp == 1 and ratio < sell_threshold:  # If there is currency held currently, and the ratio is less than the specified value
    exchange.Sell(last_bid_price, 0.01)  # Sell
    mp = 0  # Reset the value of virtual position

Karena kita perlu menentukan harga saat melakukan order, kita bisa langsung menggunakan harga jual satu terakhir saat membeli; saat menjual, kita bisa langsung menggunakan harga beli satu terakhir.

Kesimpulan

Di atas adalah analisis kode dari strategi aliran pesanan yang sedang menunggu Linear yang dikembangkan berdasarkan fungsi pemutaran data. Jika Anda seorang pemula dalam perdagangan kuantitatif, fungsi pemutaran data dapat belajar trading dengan biaya nol dan memperpendek waktu untuk memahami transaksi. Biasanya dibutuhkan beberapa tahun bagi bot nyata atau transaksi simulasi untuk mencapai hasil awal. Dibutuhkan beberapa minggu bagi fungsi pemutaran data untuk mencapai efek yang sama. Dengan asumsi tidak membuang-buang waktu, Anda dapat belajar trading dengan kerugian minimal. Bagi trader yang maju, pemutaran dinamis dapat membantu Anda menganalisis masalah masa lalu Anda, memverifikasi dan meningkatkan strategi trading, meningkatkan kepercayaan trader terhadap strategi, dan membantu menghasilkan inspirasi strategis baru.


Berkaitan

Lebih banyak