
Pengantar Strategi
Alamat berbagi strategi:
https://www.fmz.com/strategy/1088
Strategi ini telah menjadi strategi utama saya sejak saya mulai berdagang mata uang virtual. Strategi ini menjadi jauh lebih rumit setelah perbaikan dan modifikasi terus-menerus, tetapi ide utamanya tidak berubah. Versi yang saya bagikan adalah versi awal tanpa bug yang jelas. Ini adalah yang paling sederhana dan versi yang paling jelas tanpa manajemen posisi. Setiap transaksi dilakukan dengan posisi penuh, tanpa pembekuan atau pengaktifan ulang, dsb., tetapi cukup untuk menggambarkan masalahnya.
Strategi ini berjalan dari Agustus 2014 hingga bursa mulai mengenakan biaya awal tahun ini. Berjalan cukup baik selama periode tersebut, dengan sangat sedikit kerugian. Dana meningkat dari 200 yuan awal menjadi 80 bitcoin. Proses spesifiknya dapat dilihatBlog Sina Xiaocaodi dalamJalan menuju perdagangan mata uang kripto otomatisSerangkaian artikel.
Gambar berikut adalah kurva keuntungan platform OKcoin yang telah saya hitung secara khusus. Modal awal adalah 1.000 yuan. Anda dapat melihat bahwa uang awal telah meningkat secara stabil. Garis lurus di tengah adalah saat strategi saya berhenti. Kemudian, karena strategi diubah menjadi strategi menghasilkan koin, keuntungannya didenominasi dalam RMB. Pengembaliannya berfluktuasi secara dramatis. Proses spesifiknya adalahRingkasan perdagangan strategis dua tahunAda penjelasannya di artikel.
Gambar berikut adalah kurva total aset yang dikonversi menjadi mata uang:

Mengapa berbagi strategi ini?
Prinsip strategi
Prinsip strategi ini sangat sederhana, dan dapat dipahami sebagai strategi pembuatan pasar frekuensi tinggi. Setelah membaca ini, Anda mungkin ingin memukul seseorang, karena ini dapat menghasilkan uang dan hampir semua orang dapat menuliskannya pada saat itu. waktu. Awalnya saya tidak menyangka ini akan begitu efektif. Ini menunjukkan bahwa jika Anda memiliki ide, Anda harus segera mempraktikkannya, dan Anda mungkin akan mendapatkan kejutan yang tidak terduga. Pada tahun 2014, ketika robot Bitcoin pertama kali muncul, terlalu mudah untuk menulis strategi yang menguntungkan.
Seperti semua strategi frekuensi tinggi, strategi ini juga didasarkan pada orderbook. Gambar berikut menunjukkan distribusi order dari bursa Bitcoin pada umumnya.
Anda dapat melihat di sebelah kiri adalah perintah beli, yang menunjukkan jumlah pesanan tertunda pada harga yang berbeda-beda, dan di sebelah kanan adalah perintah jual. Bisa dibayangkan jika seseorang ingin membeli Bitcoin, jika dia tidak ingin memesan dan menunggu, dia hanya dapat memilih untuk menerima pesanan. Jika dia memiliki banyak pesanan, itu akan menyebabkan sejumlah besar pesanan jual. akan dieksekusi, yang akan berdampak pada harga, tetapi dampak ini umumnya tidak akan berlangsung selamanya. Jika terus berlanjut, dan masih ada orang yang ingin mengambil pesanan dan menjual, harga mungkin akan pulih dalam waktu yang sangat singkat. Sebaliknya , hal yang sama berlaku jika seseorang ingin menjual mata uang.
Ambil contoh pending order pada gambar. Jika Anda ingin membeli 5 koin secara langsung, harganya akan mencapai 10377. Saat ini, jika seseorang ingin menjual 5 koin secara langsung, harganya akan mencapai 10348. Ruang ini adalah keuntungannya ruang. Strateginya adalah: Tempatkan pesanan pada harga sedikit lebih rendah dari 10377, seperti 10376,99, dan beli pada harga sedikit lebih tinggi dari 10348, seperti 10348,01. Jika situasi saat ini terjadi, Anda jelas akan mendapatkan selisihnya. Meskipun tidak akan selalu sempurna, karena pengaruh probabilitas, peluang menghasilkan uang sebenarnya sangat tinggi.
Mari kita jelaskan operasi spesifik dengan parameter strategi saat ini. Tentu saja, parameter ini tidak dapat digunakan lagi, ini hanya penjelasan. Ia akan mencari harga dengan pesanan jual kumulatif 8 koin, yang di sini adalah 10377. Harga jual saat ini adalah harga ini dikurangi 0,01 (jumlah minus dapat acak). Demikian pula, ia akan mencari harga dengan pesanan beli kumulatif 8 koin, di sini adalah 10348, maka harga jual saat ini adalah 10348.01, dan perbedaan antara harga beli dan harga jual adalah 10376.99-10348.01=28.98, yang lebih besar dari perbedaan 1,5 yang ditetapkan oleh strategi. Kemudian lakukan pemesanan pada kedua harga ini dan tunggu transaksinya. Jika selisih harga kurang dari 1,5, kami juga akan mencari harga untuk melakukan pemesanan, seperti harga pasar plus atau minus 10, menunggu kebocoran (akan lebih tepat untuk terus mencari lebih dalam).
Perlu dicatat juga bahwa strategi ini hanya terkait dengan kedalaman pending order saat ini, dan tidak peduli dengan kondisi pasar historis dan transaksi historisnya sendiri. Strategi ini juga tidak memiliki konsep kerugian tunggal. Faktanya, tingkat kemenangan tunggal sangat tinggi.
Penjelasan lebih lanjut
Penjelasan Kode
Untuk kode lengkapnya, Anda dapat melihat strategi yang saya bagikan di www.fmz.com. Di sini saya hanya akan menjelaskan fungsi logika inti. Tanpa perubahan apa pun, cakram simulasi yang disertakan dengan botvs benar-benar berfungsi sepenuhnya normal. Ini adalah strategi dari lebih dari 3 tahun yang lalu, dan platform tersebut masih mendukungnya hingga sekarang. Sungguh mengharukan. Pertama, kita perlu menggunakan GetPrice() untuk mendapatkan harga bid dan ask. Kita perlu mendapatkan informasi kedalaman order. Perhatikan bahwa panjang informasi kedalaman order dari platform yang berbeda berbeda, dan bahkan jika semua order dilintasi, masih ada tidak ada kuantitas yang diperlukan (pada tahap selanjutnya, banyak pesanan 0,01 grid akan mengarah ke situasi ini), panggilannya adalah GetPrice(‘Beli’) untuk mendapatkan harga beli.
function GetPrice(Type) {
//_C()是平台的容错函数
var depth=_C(exchange.GetDepth);
var amountBids=0;
var amountAsks=0;
//计算买价,获取累计深度达到预设的价格
if(Type=="Buy"){
for(var i=0;i<20;i++){
amountBids+=depth.Bids[i].Amount;
//参数floatamountbuy是预设的累计深度
if (amountBids>floatamountbuy){
//稍微加0.01,使得订单排在前面
return depth.Bids[i].Price+0.01;}
}
}
//同理计算卖价
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;}
}
}
//遍历了全部深度仍未满足需求,就返回一个价格,以免出现bug
return depth.Asks[0].Price
}
Fungsi utama setiap loop adalah onTick(). Waktu loop ditetapkan pada 3,5 detik. Setiap loop akan membatalkan pesanan awal dan membuat pesanan baru. Semakin sederhana, semakin kecil kemungkinan untuk menemukan bug.
function onTick() {
var buyPrice = GetPrice("Buy");
var sellPrice= GetPrice("Sell");
//diffprice是预设差价,买卖价差如果小于预设差价,就会挂一个相对更深的价格
if ((sellPrice - buyPrice) <= diffprice){
buyPrice-=10;
sellPrice+=10;}
//把原有的单子全部撤销,实际上经常出现新的价格和已挂单价格相同的情况,此时不需要撤销
CancelPendingOrders()
//获取账户信息,确定目前账户存在多少钱和多少币
var account=_C(exchange.GetAccount);
//可买的比特币量,_N()是平台的精度函数
var amountBuy = _N((account.Balance / buyPrice-0.1),2);
//可卖的比特币量,注意到没有仓位的限制,有多少就买卖多少,因为我当时的钱很少
var amountSell = _N((account.Stocks),2);
if (amountSell > 0.02) {
exchange.Sell(sellPrice,amountSell);}
if (amountBuy > 0.02) {
exchange.Buy(buyPrice, amountBuy);}
//休眠,进入下一轮循环
Sleep(sleeptime);
}
Ekor
Keseluruhan program hanya sekitar 40 baris panjangnya dan terlihat sangat sederhana, tetapi butuh waktu lebih dari seminggu untuk menyelesaikannya, dan itu pada platform botvs. Keuntungan terbesarnya adalah saya memulai lebih awal. Pada tahun 2014, pasar didominasi oleh arbitrase, dan tidak banyak grid frekuensi tinggi dan posisi perebutan, yang membuat strategi ini seperti bebek di air. Kemudian, persaingan pasti menjadi lebih dan makin ganas, dan uangku makin banyak. Makin banyak tantangan yang datang, dan kita harus membuat perubahan besar sesekali untuk mengatasinya, tetapi secara keseluruhan semuanya berjalan lancar. Ketika platform perdagangan tidak mengenakan biaya penanganan, itu adalah surga bagi perdagangan terprogram. Investor ritel cenderung beroperasi karena mereka tidak mengenakan biaya penanganan, yang menyediakan ruang untuk frekuensi tinggi dan arbitrase. Semua ini pada dasarnya dicapai dengan 0,1 -0,2% Biaya transaksi dua arah telah berakhir. Ini bukan hanya masalah biaya yang dibebankan, tetapi juga penurunan aktivitas pasar secara keseluruhan. Namun, masih banyak ruang untuk strategi kuantitatif yang tidak memerlukan frekuensi tinggi.