avatar of 小天才收割机 小天才收割机
fokus pada Pesan pribadi
3
fokus pada
28
Pengikut

Perjalanan Cryptocurrency dan Investasi Kuantitatif Mahasiswa Kelahiran 1998

Dibuat di: 2020-03-07 18:11:51, diperbarui pada: 2024-12-12 20:54:50
comments   11
hits   8714

Perjalanan Cryptocurrency dan Investasi Kuantitatif Mahasiswa Kelahiran 1998

Perjalanan Cryptocurrency dan Investasi Kuantitatif Mahasiswa Kelahiran 1998

1. Masuk ke dunia mata uang kripto

Saya lahir pada tahun 1998 dan saat ini menjadi mahasiswa tingkat akhir jurusan ilmu komputer di sekolah sarjana 985. Saya akan melanjutkan studi pascasarjana di sekolah yang sama.

Saya pertama kali bersentuhan dengan dunia mata uang kripto pada tanggal 1 September 2017. Ya, saya ingat tanggal ini dengan sangat jelas karena tiga hari kemudian adalah insiden “94” yang mengguncang dunia mata uang kripto. Bank sentral dan lima kementerian lainnya bersama-sama mengeluarkan dokumen untuk mencegah risiko ICO, dan harga mata uang kripto dipotong setengah.

Pada tanggal 1 September, saya melihat video yang memperkenalkan Bitcoin di akun publik WeChat (saya rasa itu adalah video Wang Ziru). Saya sangat penasaran dengan hal ini, jadi saya mengunduh Huobi dan mengisi ulang 100 yuan ke dalamnya. Saya melihat harga Bitcoin , yang lebih dari 30.000 RMB, yang membuat saya takut, jadi saya membeli beberapa LTC. Saat itu, harganya sekitar 120 RMB per LTC. Saya menghabiskan sepanjang malam mengamati fluktuasi beberapa sen dan satu yuan di akun saya, dan kenaikan harga LTC. Saksikan orang-orang mengobrol di beberapa grup QQ mata uang kripto. Setelah menontonnya sepanjang malam, teman-teman saya di grup semuanya mengatakan bahwa harganya akan naik, tetapi saya merasa itu tidak cukup menarik, jadi saya mengisi ulang beberapa ribu yuan. Saat itu, Huobi masih menggunakan isi ulang kartu bank. Setelah beberapa saat Lama sekali uangnya tidak masuk ke rekening saya, saya panik. Saya meminta bantuan teman-teman di grup dan menelepon layanan pelanggan. Setelah beberapa lama, uangnya akhirnya masuk ke rekening saya, lalu saya membeli semua LTC lagi.

Pada tanggal 4 September, begitu bank sentral mengeluarkan dokumen, harga mata uang anjlok. Saya begitu takut sehingga saya segera menjual kerugian saya dan meninggalkan pasar. Kemudian saya menyaksikan harga mata uang perlahan-lahan turun setengahnya. Saat itu , bursa domestik seperti Huobi tidak dapat didaftarkan. Bursa domestik dan asing Perbedaan harga sangat besar, yang telah memperkaya sekelompok orang yang bergerak di bidang pemindahan batu bata.

Kemudian saya menarik uang dan kembali ke sekolah, dan tidak terburu-buru kembali untuk membeli di bagian bawah (investor baru hanya tahu cara mengejar harga naik dan menjual harga turun), tetapi saya masih memperhatikan tren di lingkaran cryptocurrency dan sesekali memeriksa apa yang sedang dibicarakan orang di beberapa grup QQ. Saat itu bulan Desember, bulan paling gila dalam pasar bull. TRON di Binance meningkat ratusan kali lipat, dan mata uang lainnya juga berlipat ganda. Setiap peningkatan di bawah 50% tidak dianggap sebagai fluktuasi. Saya tergoda dan bersemangat lagi. Beberapa ribu dolar, dan lalu segala macam operasi aneh mengejar naik turun, melihat berbagai mata uang melonjak tetapi tidak menghasilkan uang.

Pada bulan Januari 2018, pasar bull yang sedang booming berakhir. Saya mendaftar OKCoin dan mulai bermain dengan kontrak. Saya harus mengatakan itu benar-benar mengasyikkan. Leverage 20x, penggandaan, likuidasi, dan sebagainya. Saya menatap K-line dan begadang sepanjang malam

Seperti hampir semua penjudi kontrak, saya berakhir dengan posisi bangkrut. Namun, saya harus mengatakan bahwa pengalaman ini mengajarkan saya banyak pengetahuan finansial. Sebelumnya, saya bahkan tidak dapat mengenali K-line.

2. Kuantitatif

Setelah bermalam-malam tanpa tidur mengamati pasar, sebagai mahasiswa ilmu komputer, saya mulai bertanya-tanya apakah ada cara untuk membiarkan suatu program berdagang untuk saya sehingga saya bisa tidur dengan tenang.

Sebenarnya saya menemukan fmz (dulu bernama botvs), tapi karena saya masih terlalu newbie waktu itu, dan lama-lama tidak tahu cara menggunakan platform ini, akhirnya saya menyerah.

Kemudian, saya mulai menulis robot dengan menghubungkan ke OK API (github: https://github.com/ccyanxyz/okex), dan menulis beberapa strategi seperti double moving average dan grid. Meskipun saya tidak menghasilkan banyak uang, Saya juga melangkah ke pintu analisis kuantitatif, mempelajari berbagai indikator teknis, dan mempelajari cara menggunakan pustaka talib. Kemudian, karena banyaknya pekerjaan sekolah, saya berhenti melakukannya, robot berhenti, dan kembali ke mode tampilan dan operasi manual, tetapi frekuensinya sangat rendah, dan saya hanya melakukan satu atau dua operasi dari waktu ke waktu.

3. Gunakan FMZ

Setelah berputar-putar, saya akhirnya kembali ke fmz, tetapi karena saya sudah punya pengalaman menulis strategi saya sendiri, saya dapat memulai dengan fmz dengan sangat cepat kali ini. Saya menemukan bahwa fmz telah terhubung ke hampir semua bursa utama, dan telah menyatukan operasi transaksi, akun, dll. Sangat nyaman dan mudah digunakan. Anda dapat menulis kode dan menjalankannya di mana saja. Bagi seseorang yang telah menghabiskan banyak waktu upaya untuk merangkum pertukaran secara manual, Bagi orang yang menggunakan API, itu seperti menemukan penyelamat.

Saya menemukan repositori strategi publik fmz di GitHub (https://github.com/fmzquant/strategies). Rasanya seperti menemukan harta karun. Saya menghabiskan satu atau dua malam untuk melihat semua strategi, menyalinnya, dan mengujinya kembali. Saya membaca logika strategi dan mencoba memperbaikinya, tetapi saya harus mengatakan bahwa saya masih terlalu hijau. Setelah membaca semua strategi, saya masih belum menulis “mesin pencetak uang”.

Kemudian, saya menenangkan diri dan memikirkannya dengan saksama. Lingkaran mata uang kripto saat ini bukan lagi lingkaran mata uang kripto tahun 2017. Tidak akan ada lagi cerita mistis tentang 2.000 yuan hingga 20 juta yuan. Bagi seorang pelajar miskin seperti saya, itu sudah terlalu sulit. untuk menghasilkan banyak uang dengan berspekulasi dalam mata uang kripto. Itu adalah fantasi, jadi saya menyerah untuk mengawasi harga mata uang dan mengejar kenaikan dan penurunannya, dan juga menyerah pada ide yang tidak realistis untuk mencoba menulis “mesin cetak uang” strategi, dan mulai memasang iklan di area crowdsourcing di FMZ. Terima pesanan dan bantu orang menulis strategi, dan dapatkan uang hasil jerih payah dengan jujur.

Selama ini saya sudah menulis banyak strategi untuk orang lain. Prosesnya sebenarnya cukup berliku-liku. Orang-orang sering datang kepada saya dengan beberapa ide atau strategi yang belum matang yang sama sekali tidak dapat menghasilkan uang. Banyak orang juga tidak dapat menjelaskan kebutuhan mereka dengan jelas, dan akhirnya membuat keputusan setelah Setelah menguji strategi itu berulang kali, saya mendapati bahwa strategi itu tidak menghasilkan uang dan saya harus berdebat dengan orang lain, jadi saya mengubah iklan saya ke iklan yang di bawah ini, menetapkan aturan dan standar dalam menerima pesanan, dan mengurangi kekhawatiran pada diri saya sendiri.

Awalnya, frekuensi pesanan saya semakin rendah, karena saya memiliki banyak hal yang harus dilakukan di sekolah, dan saya menolak banyak orang. Namun pada bulan Februari, fcoin kabur dan mengambil sebagian besar aset saya (tetapi saya tidak punya banyak uang). Jadi akhir-akhir ini saya harus mulai menerima pesanan dari semua orang dan menghasilkan uang.

Perpustakaan strategi saya:

Hari ini, ketika saya sedang browsing fmz, saya menemukan sesuatu yang sedikit tidak masuk akal. Sebuah “perusahaan” tertentu yang menerima pesanan bahkan menjiplak iklan penerimaan pesanan saya. Berikut ini adalah iklannya:

Jadi saya ganti “keakraban” saya menjadi “kemahiran”, lalu turunkan harga awalnya (saya mencium sedikit persaingan ketat).

Kenapa saya tidak mengatakan bahwa saya “ahli” dalam FMZ? Saya tidak tahu apakah Anda pernah mendengar lelucon, “Tidak ada yang bisa ahli dalam C++”, hahahaha, jadi saya terbiasa menulis “familiar” di resume saya dan pengenalan keterampilan terkait lainnya.

4. Ide arbitrase

Saya baru-baru ini mempelajari beberapa strategi arbitrase, termasuk lindung nilai spot, arbitrase berjangka-spot, arbitrase lintas periode, arbitrase segitiga, dll. Dua hari ini, saya melihat ide arbitrase yang belum pernah saya lihat sebelumnya (mungkin saya bodoh), jadi Saya ingin membagikannya di sini.

Asumsikan ada beberapa pasangan perdagangan di pasar valuta asing dengan harga berikut:

USDollar/BritishPound 0.5
BritishPound/FrenchFranc 10.0
FrenchFranc/USDollar 0.21

Dalam kasus ini, dengan mengabaikan biaya transaksi, jika saya awalnya memiliki 1 USD, saya dapat mengonversinya terlebih dahulu menjadi Poundsterling Inggris, kemudian Franc Prancis, dan kemudian menjadi USD. Dalam proses tersebut, 1 USD menjadi 1x0,5x10,0x0,21= 1,05 USD, keuntungan 0,05 USD.

Contoh di atas memiliki peluang arbitrase, tetapi contoh berikut tidak:

USDollar/BritishPound 0.5
USDollar/FrenchFranc 4.9
BritishPound/FrenchFranc 10.0
BritishPound/USDollar 1.99
FrenchFranc/BritishPound 0.09
FrenchFranc/USDollar 0.19

Jadi di pasar yang begitu besar, bagaimana kita menentukan apakah ada peluang arbitrase?

Masalah ini dapat diringkas menjadi masalah jalur terpendek grafik berarah. Setiap mata uang digunakan sebagai titik sudut, dan harga tukar digunakan sebagai bobot tepi untuk membentuk grafik berarah. Kemudian, mulai dari titik sudut (seperti USD), Cari jalur melingkar yang dapat ditentukan secara arbitrer.

Contoh di atas berasal dari masalah OJ (http://poj.org/problem?id=2240), dan solusinya dapat ditemukan di sini: http://hehejun.blogspot.com/2018/10/poj2240- arbitrase. Bahasa Indonesia:

Jadi, saya baru-baru ini bertanya-tanya apakah saya dapat menemukan strategi untuk menangkap peluang arbitrase dan melakukan arbitrase. Saya mencari di GitHub dan menemukan bahwa strategi tersebut telah diterapkan: https://github.com/wardbradt/peregrine. Proyek ini memecahkan arbitrase ini masalah. Hal ini diabstraksikan ke dalam masalah jalur terpendek dari grafik berarah dengan tepi berbobot negatif. Solusi untuk masalah OJ yang disebutkan di atas berbeda. Jalur terpendek dari grafik berarah dengan tepi berbobot negatif menggunakan algoritma Bellman-Ford. Mereka yang yang berminat dapat mempelajarinya. Penelitian.

Saya juga membuat implementasi sederhana di fmz, merujuk pada ide solusi dari masalah OJ. Implementasinya belum selesai, dan kebenarannya belum dapat dijamin. Saya mempostingnya di sini untuk merangsang diskusi:

var coins = {
    EMPTY: 0,
};
var price = {};

function get_coins() {
    for(var i = 0; i < exchanges.length; ++i) {
        var base = _C(exchanges[i].GetCurrency);
        var quote = _C(exchanges[i].GetQuoteCurrency);
        var len = Object.keys(coins).length;
        if(!coins.hasOwnProperty(quote)) {
            coins[quote] = len;
            len += 1;
        }
        if(!coins.hasOwnProperty(base)) {
            coins[base] = len;
            len += 1;
        }
    }
}

function get_graph() {
    var graph = [];
    for(var i = 0; i < exchanges.length; ++i) {
        var ticker = _C(exchanges[i].GetTicker);
        var base = _C(exchanges[i].GetCurrency);
        var quote = _C(exchanges[i].GetQuoteCurrency);
        graph.push({
            from: coins[base],
            to: coins[quote],
            weight: ticker.Buy
        });
        price[base + quote] = ticker.Buy;
        graph.push({
            from: coins[quote],
            to: coins[base],
            weight: 1 / ticker.Sell
        });
        price[quote + base] = 1 / ticker.Sell;
    }
    return graph;
}

function bfm(graph, initAmount, feeRate) {
    var dist = [];
    var pre = [];
    var i;
    var j;
    var fee = 0;
    for(i = 0; i < Object.keys(coins).length; ++i) {
        dist.push(0);
        pre.push(-1);
    }
    dist[1] = initAmount;
    for(i = 0; i < Object.keys(coins).length - 1; ++i) {
        for(j = 0; j < graph.length; ++j) {
            var from = graph[j].from;
            var to = graph[j].to;
            var rate = graph[j].weight;
            if(dist[from] * rate > dist[to]) {
                dist[to] = dist[from] * rate;
                pre[to] = from;
            }
        }
    }
    if(dist[1] <= initAmount) {
        return false;
    }
    var path = [];
    var top = pre[1];
    var coin_keys = Object.keys(coins);
    path.push({
        from: coin_keys[top],
        to: coin_keys[1],
        rate: price[coin_keys[top] + coin_keys[1]]
    });
    while(top != 1) {
        var temp = top;
        top = pre[top];
        path.push({
            from: coin_keys[top],
            to: coin_keys[temp],
            rate: price[coin_keys[top] + coin_keys[temp]],
        });
    }
    path.reverse();
    
    fee = path.length * feeRate * initAmount;
    if(dist[1] - initAmount <= fee || path.length == 0) {
        return false;
    }
    return path;
}

function onTick() {
    var graph = get_graph();
    var account = _C(exchanges[0].GetAccount);
    var balance = account.Balance;
    
    var path = bfm(graph, balance, 0);
    if(!path) {
        return;
    }
    Log(path);
    
    // buy & sell follow the path 
    ...
}

function main() {
    get_coins();
    
    while(1) {
        onTick();
    }
}

5. Ringkasan

Singkatnya, fmz adalah platform yang bagus, mudah digunakan dan dapat diandalkan, menghasilkan banyak uang dengan tenang. Saya berharap fmz akan menjadi lebih baik dan lebih baik lagi. Bagi saya, saya akan terus belajar untuk mendapatkan gelar master setelah lulus (juga di blockchain) lapangan), lalu teruskan bekerja di fmz. Dapatkan uang saku.

(Ditulis pada sore hari tanggal 7 Maret 2020. Saya baru saja selesai menulis strategi untuk seseorang dan melihat bahwa saldo FMZ saya tidak mencukupi, jadi saya datang ke sini untuk menipu beberapa royalti hahahaha)

Nomor telepon: C790266922