Berbagi akhir: Robot frekuensi tinggi Bitcoin dengan pengembalian 5% setiap hari pada tahun 2014

Penulis:Lydia, Dibuat pada: 2023-01-17 16:12:15, Diperbarui pada: 2023-09-20 09:27:14

img

Berbagi akhir: Robot frekuensi tinggi Bitcoin dengan pengembalian 5% setiap hari pada tahun 2014

Pengenalan strategi

Strategi ini dibagikan di:https://www.fmz.com/strategy/1088Strategi adalah strategi utama saya sejak saya memulai dengan mata uang digital. Setelah perbaikan dan modifikasi terus-menerus, itu menjadi lebih rumit, tetapi ide utamanya tidak berubah. Versi bersama adalah versi asli tanpa bug yang jelas. Ini adalah yang paling sederhana dan paling jelas. Tidak ada manajemen posisi. Setiap transaksi penuh, dan tidak ada restart, tetapi cukup untuk menjelaskan masalah. Strategi ini berjalan dari Agustus 2014 hingga awal tahun ini, ketika biaya pertukaran. Selama periode itu, operasi cukup baik, dan waktu kerugian sangat sedikit. Modal telah meningkat dari 200 yuan menjadi 80 Bitcoin. Proses spesifik dapat dilihat dalamCara transaksi otomatis mata uang virtualseri artikel diXiaocao's Sina blogAku tidak tahu. Gambar berikut adalah kurva pengembalian platform OKcoin yang saya hitung secara khusus. Modal awal adalah 1000 yuan. Anda dapat melihat bahwa modal awal telah meningkat secara konstan. Garis tengah adalah bahwa strategi saya telah berhenti. Kemudian, karena strategi telah diubah menjadi strategi menghasilkan mata uang, pengembalian dalam RMB berfluktuasi tajam. Proses spesifik dijelaskan dalam artikel ringkasan dua tahun perdagangan strategi.

img

Bagan berikut menunjukkan kurva total aset yang dikonversi ke mata uang:

img

Mengapa berbagi strategi ini?

  1. Setelah pertukaran ditagih, hampir semua strategi frekuensi tinggi terbunuh, dan aku bukan pengecualian.
  2. Aku sudah lama tidak berbagi apapun. Aku sudah lama ingin menulis artikel ini.
  3. Berkomunikasi dan belajar dengan kalian semua.

Prinsip strategi

Prinsip strategi ini sangat sederhana. Ini dapat dipahami sebagai strategi pembuatan pasar frekuensi quasi tinggi. Anda mungkin ingin memukul orang setelah membacanya, dapatkah menghasilkan uang?! Pada saat itu, hampir semua orang bisa menulisnya. Saya tidak berharap itu begitu efektif pada awalnya. Dapat dilihat bahwa kita harus memperhatikan praktik segera setelah kita memiliki ide di pikiran. Pada tahun 2014, ketika robot Bitcoin pertama kali muncul, terlalu mudah untuk menulis strategi menghasilkan uang. Seperti semua strategi frekuensi tinggi, strategi ini juga didasarkan pada buku pesanan.

img

Kita dapat melihat order beli di sebelah kiri, menunjukkan jumlah order dengan harga yang berbeda, dan di sebelah kanan adalah order jual. Bisa dibayangkan bahwa jika seseorang ingin membeli Bitcoin, jika dia tidak ingin menunggu order dan menunggu, dia dapat memilih untuk mengambil order saja. Jika dia memiliki sejumlah besar order, itu akan menyebabkan sejumlah besar transaksi untuk menjual order dan daftar, yang akan mempengaruhi harga. Namun, dampak ini tidak akan berlanjut. Beberapa orang ingin mengambil order dan menjual, dan harga mungkin akan pulih dalam waktu yang sangat singkat. Sebaliknya, ini mirip dengan memahami bahwa seseorang ingin menjual koin. Jika Anda ingin membeli 5 koin secara langsung, harga akan mencapai 10377. Pada saat ini, jika seseorang ingin menjual 5 koin secara langsung, harga akan mencapai 10348. Perbedaan harga adalah margin keuntungan. Strategi akan menunggu pesanan dengan harga sedikit lebih rendah dari 10377, seperti 10376.99, dan membeli dengan harga sedikit lebih tinggi dari 10348, seperti 10348.01. Ini karena jika situasinya hanya terjadi, itu akan menghasilkan perbedaan jelas. Meskipun tidak akan begitu sempurna setiap kali, peluang menghasilkan uang sebenarnya sangat tinggi mengingat probabilitasnya. Jelaskan operasi tertentu dengan parameter strategi saat ini. Parameter ini tentu saja tidak tersedia, hanya untuk ilustrasi. Ini akan mencari harga dengan jumlah akumulasi 8 koin, di sini adalah 10377, maka harga jual pada saat ini adalah harga dikurangi 0,01 (jumlahnya dapat acak). Demikian pula, akan mencari ke bawah untuk jumlah akumulasi 8 koin, di sini adalah 10348, maka harga jual pada saat ini adalah 10348,01, dan perbedaan antara harga beli dan jual pada saat ini adalah 10376,99-10348,01 = 28,98, yang lebih besar dari perbedaan harga yang telah ditetapkan sebelumnya 1,5, jadi akan mencari pesanan untuk menunggu transaksi dengan dua harga ini, jika perbedaan harga kurang dari 1,5, itu juga akan menemukan harga untuk mencari pesanan, seperti harga pembukaan ditambah atau dikurangi 10, dan menunggu lebih lanjut (lebih tepat untuk mengikuti pending melalui kedalaman ke bawah). Selain itu, dicatat bahwa strategi ini hanya terkait dengan pesanan yang sedang menunggu saat ini dan tidak peduli dengan pasar historis dan transaksi historisnya sendiri. Strategi ini juga tidak memiliki konsep kerugian tunggal. Bahkan, tingkat kemenangan dari satu transaksi sangat tinggi.

Penjelasan lebih lanjut

    1. Apa yang harus saya lakukan jika saya kehabisan uang atau mata uang? Situasi ini sangat umum ketika saya memiliki lebih sedikit uang. Sebagian besar waktu, saya hanya menunggu satu sisi pesanan, tetapi itu bukan masalah besar. Sebenarnya, kita dapat menambahkan logika menyeimbangkan mata uang dan uang, tetapi tidak dapat dihindari untuk kehilangan dalam proses keseimbangan. Lagi pula, setiap transaksi adalah masalah probabilitas. Saya memilih untuk menunggu transaksi di satu sisi. Tentu saja, ini juga membuang peluang transaksi di sisi lain.
    1. Bagaimana posisi dikelola? Pada awalnya, mereka semua berada dalam posisi penuh untuk membeli dan menjual. kemudian, mereka dibagi menjadi kelompok yang berbeda sesuai dengan parameter yang berbeda, dan mereka tidak akan sepenuhnya ditutup pada satu waktu.
    1. Apakah ada stop-loss? Strategi ini memiliki logika yang lengkap untuk membeli dan menjual order. saya pikir tidak perlu stop loss (yang bisa dibahas), dan ada juga preferensi probabilitas. transaksi adalah kesempatan, dan stop loss adalah sayang.
    1. Bagaimana untuk menyesuaikan diri dengan strategi mendapatkan mata uang? Pada saat ini, parameter simetris, yaitu, pesanan jual kumulatif 8 koin ke atas dan pesanan pembelian kumulatif 8 koin ke bawah sedikit tidak seimbang. Misalnya, pesanan jual kumulatif 15 koin ke atas membuat peluang penjualan lebih sulit, dan ada kemungkinan besar bahwa mereka akan dikembalikan dengan harga yang lebih rendah, yang akan menghasilkan mata uang, dan pada gilirannya menghasilkan uang.
    1. Bagaimana menangani kerugian yang mengambang? Tentu saja, akan ada kerugian dalam satu transaksi, seperti kenaikan harga mata uang setelah penjualan dan penurunan harga mata uang setelah pembelian. Kerugian mengambang seperti itu tidak perlu ditangani, karena transaksi sering, dan itu normal untuk ribuan kali setiap hari. Kerugian mengambang adalah normal, selama kemungkinan keuntungan lebih besar.
    1. Bagaimana cara mencegah angsa hitam? Bitcoin memiliki banyak waktu Black Swan, kadang-kadang hanya turun sepanjang jalan, dan tidak ada kesempatan untuk menjualnya. situasi ini tidak harus terlalu khawatir, karena waktu Black Swan sering membawa volatilitas tinggi, dan strategi membuat persis ini bagian dari uang, dan kerugian juga dapat diperoleh kembali dengan cepat.

Penjelasan kode

Kode lengkap dapat dilihat dalam strategi saya berbagi diwww.fmz.com. Di sini, hanya fungsi logika inti yang dijelaskan. Tanpa perubahan apapun, bot simulasi yang datang dengan botvs sebenarnya bekerja dengan sempurna. Ini adalah strategi lebih dari tiga tahun yang lalu, dan platform masih mendukung sekarang. Ini sangat bergerak. Pertama-tama, untuk mendapatkan fungsi harga bid-ask GetPrice(), Anda perlu mendapatkan informasi kedalaman order. Perhatikan bahwa panjang informasi kedalaman order dari berbagai platform berbeda, dan bahkan jika semua order dilalui, masih tidak ada jumlah yang diperlukan (situasi ini akan disebabkan oleh banyak pesanan 0.01 grid di tahap selanjutnya). Panggilan adalah GetPrice (Buy), yang adalah untuk mendapatkan harga beli.

function GetPrice(Type) {
   //_C() is the fault-tolerant function of the platform
    var depth=_C(exchange.GetDepth);
    var amountBids=0;
    var amountAsks=0;
    //Calculate the buy price and get the cumulative depth to a preset price
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //The parameter floatamountbuy is the preset accumulated depth
           if (amountBids>floatamountbuy){
               //Add 0.01 to make the order in the front
              return depth.Bids[i].Price+0.01;}
        }
    }
    //Calculate the selling price similarly
    if(Type=="Sell"){
       for(var j=0; j<20; j++){
    	   amountAsks+=depth.Asks[j].Amount;
            if (amountAsks>floatamountsell){
            return depth.Asks[j].Price-0.01;}
        }
    }
    //After traversing the full depth but still not meeting the demand, a price is returned to avoid bugs
    return depth.Asks[0].Price
}

Fungsi utama dari setiap loop adalah onTick(). Waktu loop yang ditetapkan di sini adalah 3,5 s. Setiap loop akan membatalkan order asli dan menunda kembali order. Semudah itu, semakin sedikit yang akan mengalami bug.

function onTick() {
    var buyPrice = GetPrice("Buy");
    var sellPrice= GetPrice("Sell");
    //diffprice is the preset spread, if the bid/ask spread is less than the preset spread, it will pend a relatively deeper price.
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //Cancel all the original orders. In fact, the new price is often the same as the price of the order. At this time, it is not necessary to cancel.
    CancelPendingOrders() 
    //Get account information to determine how much money and how many currencies are currently in the account.
    var account=_C(exchange.GetAccount);
    //The amount of Bitcoins that can be bought, _N() is the precision function of the platform.
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //The amount of Bitcoin that can be sold, note that there is no position limit, buy and sell as much as you can, as I had very little money at the time.
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //Sleep and enter the next loop
    Sleep(sleeptime);
}

Pengakhiran

Seluruh program hanya lebih dari 40 baris, yang tampaknya sangat sederhana, tetapi juga memakan waktu saya lebih dari seminggu pada saat itu, yang berada di platform botvs. Keuntungan terbesarnya adalah bahwa itu dimulai lebih awal. Pada tahun 2014, pasar didominasi oleh batu bata yang bergerak, dan strategi frekuensi tinggi grid dan penyerapan persediaan tidak terlalu banyak, yang membuat strategi seperti ikan di air. Kemudian, persaingan menjadi semakin sengit, dan saya memiliki lebih banyak uang dan menghadapi banyak tantangan. Saya harus membuat perubahan besar setiap lain waktu untuk mengatasinya, tetapi umumnya lancar. Dengan syarat bahwa platform perdagangan tidak mengenakan biaya, ini adalah surga untuk perdagangan terprogram. Karena investor ritel cenderung beroperasi jika tidak ada biaya, ini memberikan kesempatan untuk biaya frekuensi tinggi dan biaya arbitrase. Semua ini pada dasarnya berakhir dengan biaya dua arah 0,1-0,2%. Ini tidak hanya masalah penurunan aktivitas pasar, tetapi juga penurunan keseluruhan strategi. Namun, masih banyak ruang untuk strategi kuantitatif frekuensi tinggi.


Berkaitan

Lebih banyak