Strategi itu dikongsi di:https://www.fmz.com/strategy/1088Strategi adalah strategi utama saya sejak saya bermula dengan mata wang digital. Selepas peningkatan dan pengubahsuaian berterusan, ia menjadi lebih rumit, tetapi idea utama tidak berubah. Versi yang dikongsi adalah versi asal tanpa bug yang jelas. Ia adalah yang paling mudah dan jelas. Tidak ada pengurusan kedudukan. Setiap transaksi penuh, dan tidak ada permulaan semula, tetapi cukup untuk menjelaskan masalah.
Strategi ini berjalan dari Ogos 2014 hingga awal tahun ini, apabila caj pertukaran. Semasa tempoh itu, operasi agak baik, dan masa kerugian sangat sedikit. Modal telah meningkat dari 200 yuan kepada 80 Bitcoin. Proses khusus dapat dilihat dalamCara transaksi automatik mata wang mayasiri artikel dalamBlog Sina Xiaocao
Jadual berikut menunjukkan lengkung jumlah aset yang ditukar kepada mata wang:
Prinsip strategi ini sangat mudah. Ia boleh difahami sebagai strategi pembuatan pasaran frekuensi quasi tinggi. Anda mungkin ingin memukul orang selepas membacanya, bolehkah ia menghasilkan wang?! Pada masa itu, hampir semua orang dapat menulisnya. Saya tidak mengharapkannya begitu berkesan pada mulanya. Seperti semua strategi frekuensi tinggi, strategi ini juga berdasarkan buku pesanan. Rajah di bawah menunjukkan pengedaran pesanan pertukaran Bitcoin biasa:
Kita dapat melihat pesanan beli di sebelah kiri, menunjukkan jumlah pesanan pada harga yang berbeza, dan di sebelah kanan adalah pesanan jual. Kita boleh membayangkan bahawa jika seseorang ingin membeli Bitcoin, jika dia tidak mahu menunggu pesanan dan menunggu, dia boleh memilih untuk mengambil pesanan sahaja. Jika dia mempunyai sejumlah besar pesanan, ia akan menyebabkan sejumlah besar transaksi untuk menjual pesanan dan senarai, yang akan memberi kesan kepada harga. Walau bagaimanapun, kesan ini tidak akan berterusan. Sesetengah orang ingin mengambil pesanan dan menjual, dan harganya mungkin akan pulih dalam masa yang sangat singkat. Sebaliknya, ia serupa dengan memahami bahawa seseorang ingin menjual syiling. Sebagai contoh, jika anda ingin membeli 5 syiling secara langsung, harga akan mencapai 10377. Pada masa ini, jika seseorang ingin menjual 5 syiling secara langsung, harga akan mencapai 10348. Perbezaan harga adalah margin keuntungan. Strategi akan menunggu pesanan pada harga yang sedikit lebih rendah daripada 10377, seperti 10376.99, dan membeli pada harga yang sedikit lebih tinggi daripada 10348, seperti 10348.01. Ini kerana jika keadaan itu berlaku, ia akan menghasilkan perbezaan jelas. Walaupun tidak akan begitu sempurna setiap kali, peluang untuk menghasilkan wang sebenarnya sangat tinggi memandangkan kebarangkalian. Jelaskan operasi tertentu dengan parameter strategi semasa. Parameter ini sudah tentu tidak tersedia, hanya untuk ilustrasi. Ia akan mencari harga dengan jumlah terkumpul 8 syiling, di sini adalah 10377, maka harga jual pada masa ini adalah harga tolak 0.01 (jumlahnya boleh rawak). Begitu juga, ia akan mencari ke bawah untuk jumlah terkumpul 8 syiling, di sini adalah 10348, maka harga jual pada masa ini adalah 10348.01, dan perbezaan antara harga beli dan jual pada masa ini adalah 10376.99-10348.01 = 28.98, yang lebih besar daripada perbezaan harga yang telah ditetapkan terlebih dahulu 1.5, jadi ia akan mencari pesanan untuk menunggu transaksi dengan kedua-dua harga ini, jika perbezaan harga kurang daripada 1.5, ia juga akan mencari harga untuk melihat pesanan, seperti harga pembukaan tambah atau tolak minus 10, dan menunggu lebih lama (lebih sesuai untuk mengikuti pending melalui kedalaman ke bawah). Di samping itu, diperhatikan bahawa strategi ini hanya berkaitan dengan pesanan yang sedang menunggu dan tidak peduli dengan pasaran sejarah dan urus niaga sejarahnya sendiri. Strategi ini juga tidak mempunyai konsep kerugian tunggal. Malah, kadar kemenangan satu urus niaga sangat tinggi.
Kod lengkap boleh dilihat dalam perkongsian strategi saya diwww.fmz.com. Di sini, hanya fungsi logik teras dijelaskan. Tanpa sebarang perubahan, bot simulasi yang datang dengan botvs sebenarnya berfungsi dengan sempurna. Ini adalah strategi lebih dari tiga tahun yang lalu, dan platform masih menyokongnya sekarang. Ia sangat menarik.
Pertama sekali, untuk mendapatkan fungsi harga tawaran-tanyakan GetPrice ((), anda perlu mendapatkan maklumat kedalaman pesanan. Perhatikan bahawa panjang maklumat kedalaman pesanan platform yang berbeza adalah berbeza, dan walaupun semua pesanan dilalui, masih tidak ada kuantiti yang diperlukan (situasi ini akan disebabkan oleh banyak pesanan grid 0.01 pada peringkat kemudian). Panggilan adalah GetPrice (
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 setiap gelung adalah onTick(). Masa gelung yang ditetapkan di sini adalah 3.5s. Setiap gelung akan membatalkan pesanan asal dan menunggu semula pesanan. Semakin mudah, semakin sedikit ia akan menghadapi 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);
}
Keseluruhan program ini hanya lebih daripada 40 baris, yang kelihatan sangat mudah, tetapi ia juga mengambil masa lebih dari seminggu pada masa itu, yang berada di platform botvs. Kelebihan terbesarnya adalah bahawa ia bermula awal. Pada tahun 2014, pasaran didominasi oleh batu bata bergerak, dan strategi frekuensi tinggi grid dan rampasan inventori tidak terlalu banyak, yang menjadikan strategi seperti ikan di dalam air. Kemudian, persaingan menjadi semakin sengit, dan saya mempunyai lebih banyak wang dan menghadapi banyak cabaran. Saya terpaksa membuat perubahan besar setiap kali untuk menghadapinya, tetapi secara umumnya lancar. Dengan syarat bahawa platform perdagangan tidak mengenakan bayaran, ia adalah syurga untuk perdagangan terprogram. Kerana pelabur runcit cenderung beroperasi jika tidak ada bayaran, ia memberikan peluang untuk bayaran frekuensi tinggi dan bayaran arbitraj. Semua ini pada dasarnya berakhir dengan bayaran dua arah 0.1-0.2%. Walau bagaimanapun, masih banyak ruang untuk strategi kuantitatif frekuensi tinggi.