avatar of 小天才收割机 小天才收割机
fokus pada mesej peribadi
3
fokus pada
28
Pengikut

Perjalanan Mata Wang Kripto dan Pelaburan Kuantitatif Siswazah Lahir pada 1998

Dicipta dalam: 2020-03-07 18:11:51, dikemas kini pada: 2024-12-12 20:54:50
comments   11
hits   8714

Perjalanan Mata Wang Kripto dan Pelaburan Kuantitatif Siswazah Lahir pada 1998

Perjalanan Mata Wang Kripto dan Pelaburan Kuantitatif Siswazah Lahir pada 1998

1. Masuk ke dunia mata wang kripto

Saya dilahirkan pada tahun 1998 dan kini merupakan pelajar senior dalam bidang sains komputer di sekolah sarjana muda 985. Saya akan menyambung pengajian pascasiswazah di sekolah yang sama.

Saya mula bersentuhan dengan dunia mata wang kripto pada 1 September 2017. Ya, saya ingat tarikh ini dengan jelas kerana tiga hari kemudian adalah insiden “94” yang menggegarkan dunia mata wang kripto Bank pusat dan lima kementerian lain bersama-sama mengeluarkan dokumen untuk mengelakkan risiko ICO, dan harga mata wang kripto dikurangkan separuh.

Pada 1 September, saya melihat video yang memperkenalkan Bitcoin pada akaun awam WeChat (saya rasa ia adalah video Wang Ziru, saya sangat ingin tahu tentang perkara ini, jadi saya memuat turun Huobi dan mengecas semula 100 yuan ke dalamnya , yang melebihi 30,000 RMB, yang membuatkan saya takut, jadi saya membeli beberapa LTC Pada masa itu, nampaknya sekitar 120 RMB setiap LTC saya menghabiskan sepanjang malam menonton turun naik beberapa sen dan satu yuan dalam akaun saya. dan kenaikan harga LTC Tonton orang berbual dalam beberapa kumpulan QQ mata wang kripto. Selepas menontonnya sepanjang malam, rakan-rakan saya dalam kumpulan semua berkata bahawa harga akan naik, tetapi saya merasakan bahawa ia tidak cukup menarik, jadi saya mengecas semula beberapa ribu yuan Pada masa itu, Huobi masih menggunakan caj semula kad bank lama-lama duit tak sampai dalam akaun saya, jadi saya pun panik minta tolong kawan-kawan dalam group dan call customer service sekali lagi.

Pada 4 September, sebaik sahaja bank pusat mengeluarkan dokumen, harga mata wang menjunam saya sangat takut sehingga saya cepat menjual kerugian saya dan meninggalkan pasaran Kemudian saya melihat harga mata wang itu perlahan-lahan , pertukaran domestik seperti Huobi tidak boleh didaftarkan Tukaran domestik dan asing Perbezaan harga adalah besar, yang telah memperkayakan sekumpulan orang yang bergerak.

Kemudian saya mengeluarkan wang dan kembali ke sekolah, dan tidak tergesa-gesa kembali untuk membeli di bahagian bawah (pelabur baru hanya tahu bagaimana untuk mengejar kenaikan harga dan menjual harga jatuh), tetapi saya masih memberi perhatian kepada trend dalam bulatan cryptocurrency dan kadang-kadang. menyemak perkara yang dibincangkan orang dalam beberapa kumpulan QQ. Ia adalah bulan Disember, bulan paling gila pasaran lembu di Binance meningkat sebanyak beratus-ratus kali, dan syiling lain juga meningkat dua kali ganda , dan kemudian semua jenis operasi pelik mengejar jatuh bangun, melihat pelbagai mata wang melonjak tetapi tidak membuat apa-apa wang.

Pada bulan Januari 2018, pasaran lembu yang berkembang pesat telah berakhir saya mendaftarkan OKCoin dan mula bermain dengan kontrak Saya perlu mengatakan ia benar-benar mengujakan, penggandaan, pembubaran, dan sebagainya berjaga sepanjang malam.

Seperti hampir semua penjudi kontrak, saya berakhir dengan kedudukan muflis. Tetapi saya harus mengatakan bahawa pengalaman ini mengajar saya banyak pengetahuan kewangan yang saya tidak dapat mengenali K-line sebelum ini.

2. Kuantitatif

Selepas banyak malam tanpa tidur menonton pasar, sebagai pelajar sains komputer, saya mula tertanya-tanya sama ada ada cara untuk membiarkan program berdagang untuk saya supaya saya dapat tidur dengan tenang.

Sebenarnya, saya jumpa fmz (yang dipanggil botvs masa tu), tapi saya terlalu newbie masa tu, dan saya tak tahu cara nak guna platform ni setelah sekian lama, jadi saya pun berputus asa.

Kemudian, saya mula menulis robot dengan menyambung ke API OK (github: https://github.com/ccyanxyz/okex), dan menulis beberapa strategi seperti purata bergerak berganda dan grid Walaupun saya tidak menghasilkan banyak wang, ia juga saya telah melangkah ke pintu analisis kuantitatif, belajar tentang pelbagai petunjuk teknikal, dan belajar cara menggunakan perpustakaan talib. Kemudian, disebabkan banyak urusan sekolah, saya berhenti melakukannya, robot berhenti, dan kembali ke mod tontonan dan operasi manual, tetapi kekerapannya sangat rendah, dan saya hanya membuat satu atau dua operasi dari semasa ke semasa.

3. Gunakan FMZ

Selepas berpusing-pusing, akhirnya saya kembali ke fmz, tetapi kerana saya sudah mempunyai pengalaman menulis strategi saya sendiri, saya dapat mula dengan fmz dengan pantas kali ini. Saya mendapati bahawa fmz telah disambungkan kepada hampir semua bursa arus perdana, dan telah menyatukan operasi urus niaga, akaun, dll. Ia adalah mudah dan mudah untuk digunakan Anda boleh menulis kod dan menjalankannya di mana-mana usaha untuk merangkum pertukaran secara manual, Bagi orang yang menggunakan API, ia seperti mencari penyelamat.

Saya menemui repositori strategi awam fmz di GitHub (https://github.com/fmzquant/strategies). Ia seperti mencari harta karun logik strategi dan cuba memperbaikinya, tetapi saya perlu mengatakan bahawa saya masih terlalu hijau Selepas membaca semua strategi, saya masih belum menulis “mesin cetak wang”.

Kemudian, saya bertenang dan memikirkannya dengan teliti Lingkaran mata wang kripto sekarang bukan lagi bulatan mata wang kripto 2017. Tidak akan ada cerita mitos 2000 yuan hingga 20 juta yuan Bagi pelajar miskin seperti saya, ia sudah terlalu sukar untuk menjana kekayaan dengan membuat spekulasi dalam mata wang kripto Ia adalah fantasi, jadi saya berhenti menonton harga mata wang dan mengejar kenaikan dan kejatuhan, dan juga melepaskan idea yang tidak realistik untuk menulis “mesin pencetak wang”. strategi, dan mula menyiarkan iklan di kawasan sumber ramai di FMZ Ambil pesanan dan bantu orang ramai menulis strategi, dan dapatkan wang hasil titik peluh dengan jujur.

Sehingga kini, saya telah menulis banyak strategi untuk orang lain Proses ini sebenarnya agak berliku-liku Orang sering datang kepada saya dengan beberapa idea atau strategi yang tidak dapat menghasilkan wang langsung menguji strategi berulang kali, saya mendapati bahawa ia tidak menjana wang dan saya terpaksa berdebat dengan orang lain, jadi saya menukar iklan saya kepada yang di bawah, menetapkan peraturan dan piawaian untuk menerima pesanan, dan mengurangkan kebimbangan diri saya.

Pada asalnya, kekerapan pesanan saya semakin berkurangan, kerana saya mempunyai banyak perkara sekolah untuk dilakukan, dan saya menolak ramai orang Tetapi pada bulan Februari, fcoin melarikan diri dan mengambil kebanyakan aset saya (tetapi saya tidak mempunyai banyak wang). Jadi baru-baru ini saya terpaksa mula menerima pesanan daripada semua orang dan membuat wang.

Pustaka strategi saya:

Hari ini, semasa saya melayari fmz, saya mendapati sesuatu yang agak tidak terkata. “Syarikat” tertentu yang menerima tempahan malah menciplak iklan pengambilan pesanan saya.

Jadi saya menukar “kebiasaan” saya kepada “kemahiran”, dan kemudian menurunkan harga permulaan (saya terhidu sedikit persaingan yang sengit).

Mengapa saya tidak mengatakan bahawa saya “mahir” dalam FMZ Saya tidak tahu sama ada anda pernah mendengar jenaka, “Tiada sesiapa boleh mahir dalam C++”, hahahaha, jadi saya biasa menulis “familiar” dalam? resume saya dan pengenalan kemahiran lain yang berkaitan.

4. Idea arbitraj

Saya baru-baru ini mengkaji beberapa strategi arbitraj, termasuk lindung nilai spot, arbitraj spot niaga hadapan, arbitraj rentas tempoh, arbitraj segi tiga, dsb. Dua hari ini, saya melihat idea arbitraj yang tidak pernah saya lihat sebelum ini (mungkin saya jahil), jadi Saya ingin berkongsi di sini.

Andaikan terdapat beberapa pasangan dagangan dalam pasaran pertukaran asing dengan harga berikut:

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

Dalam kes ini, mengabaikan yuran urus niaga, jika saya pada asalnya mempunyai 1 USD, saya boleh menukarnya terlebih dahulu kepada Paun British, kemudian kepada Franc Perancis, dan kemudian kepada USD Dalam proses itu, 1 USD menjadi 1x0.5x10.0x0.21= 1.05 USD, untung 0.05USD.

Contoh di atas mempunyai peluang arbitraj, tetapi yang 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 dalam pasaran yang begitu besar, bagaimana kita menentukan sama ada terdapat peluang arbitraj?

Masalah ini boleh disarikan ke dalam graf terarah masalah laluan terpendek Setiap mata wang digunakan sebagai puncak, dan harga pertukaran digunakan sebagai berat tepi untuk membentuk graf terarah Kemudian, bermula dari bucu (seperti USD), Cari laluan bulat yang boleh timbang tara.

Contoh di atas datang daripada masalah OJ (http://poj.org/problem?id=2240), dan penyelesaiannya boleh didapati di sini: http://hehejun.blogspot.com/2018/10/poj2240- arbitraj. html.

Oleh itu, saya baru-baru ini tertanya-tanya jika saya boleh menghasilkan strategi untuk menangkap peluang arbitraj dan menjalankan arbitraj yang saya cari di GitHub dan mendapati bahawa ia telah dilaksanakan: https://github.com/wardbradt/peregrine Projek ini menyelesaikan arbitraj ini masalah. Ia disarikan ke dalam masalah laluan terpendek bagi graf terarah Penyelesaian kepada masalah OJ yang dinyatakan di atas adalah berbeza berminat boleh mengkajinya.

Saya juga membuat pelaksanaan mudah di fmz, merujuk kepada idea penyelesaian masalah OJ Ia belum selesai dan ketepatannya tidak dapat saya siarkan di sini untuk merangsang perbincangan.

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. Rumusan

Kesimpulannya, fmz adalah platform yang bagus, mudah digunakan dan boleh dipercayai, mengaut untung secara senyap-senyap Saya harap fmz akan menjadi lebih baik dan lebih baik, saya akan terus belajar untuk ijazah sarjana (juga dalam blockchain lapangan), dan kemudian terus bekerja di fmz. Dapatkan sedikit wang saku.

(Ditulis pada petang 7 Mac 2020. Saya baru sahaja selesai menulis strategi untuk seseorang dan melihat baki FMZ saya tidak mencukupi, jadi saya datang ke sini untuk menipu beberapa royalti hahahaha)

WeChat: C790266922