
Baru-baru ini, saya secara tidak sengaja menemukan bahwa pasar STORJ, sebuah koin di Binance, sangat aneh. Volume perdagangannya sangat besar dan frekuensi perdagangannya sangat cepat. Garis K satu menit yang spesifik adalah sebagai berikut. Anda dapat melihat bahwa volume perdagangan per menit cukup konsisten dan bayangan bawah yang panjang dapat terlihat pada garis menit.
Dengan mengamati K-line 1 detik Binance, kami menemukan petunjuk. Seseorang akan menjual 10.000 hingga 20.000 STORJ setiap 5-7 detik, berapa pun biayanya, dan langsung mengenai lubang kecil di K-line. Lubang itu akan pulih di dalam. Operasi ini jelas disebabkan oleh robot yang ditugaskan oleh Iceberg. Operasi penjualan ini berlangsung sangat lama, dan jumlah totalnya diperkirakan mencapai puluhan juta dolar. Dalam banyak kasus, slippage yang disebabkan mencapai 1⁄1000, yang berarti bahwa pelaksana strategi ini kehilangan puluhan ribu dolar. hanya karena tergelincirnya transaksi. Dolar. Namun, operasi mekanis dan transaksi aktif tersebut menciptakan peluang yang jelas untuk pembuatan pasar dan scalping.

Dengan hanya memodifikasi strategi frekuensi tinggi spot asli, hanya butuh beberapa menit untuk membuat robot yang secara khusus mengeksploitasi penjualan pesanan gunung es yang tidak masuk akal.
Karena akan ada penjualan pasar setiap beberapa detik, kita hanya perlu menemukan kedalaman 10.000 dalam buku pesanan beli dan menempatkan pesanan di depan. Dengan cara ini, ketika gunung es ini dijual, ada kemungkinan besar robot pembuat pasar akan dapat menerimanya. Pada saat ini, perdagangan sangat aktif, dan penurunan harga seketika juga memicu beberapa pesanan beli. Prinsip yang sama berlaku untuk menempatkan order jual dan menjualnya sesuai dengan itu. Ulangi operasi tersebut. Frekuensi transaksi sangat tinggi, dan meskipun tingkat pengembalian setiap kali tidak besar, keuntungan totalnya masih cukup besar. Tentu saja, premis dari semuanya adalah memiliki akun dengan biaya transaksi yang rendah. Jika biaya transaksi untuk membeli dan menjual adalah 0,1%, maka ruang ini tidak cukup untuk membayar biaya transaksi.
Performa strateginya adalah sebagai berikut. Pada awalnya, keuntungan tidak dicetak. Saya mengubahnya sore ini dan mencetak keuntungannya. Robot penjual gila telah mengubah kuantitas menjadi sekitar 5.000 setiap kali, jadi periode arbitrase terbaik telah berlalu. Pada awalnya, Anda bisa memperoleh sekitar 100-200U per jam. Kuncinya adalah bebas risiko dan berbiaya rendah. Jika dilihat dari sisi lain, sebenarnya ada banyak teknik untuk order gunung es. Jika Anda tahu cara menulis strategi, Anda dapat menulisnya di FMZ hanya dalam waktu belasan menit. Amati kedalaman order beli untuk menentukan ukuran order dan harga, dan mengamati ukuran order beli aktif untuk menyesuaikan ukuran order tertunda. Dan strategi kepercayaan gunung es dengan karakteristik seperti menduduki pasar dapat dengan mudah menghemat puluhan ribu dolar.

Kode strateginya sangat sederhana, hanya 80 baris. Cocok untuk pemula. Beberapa parameter seperti presisi tunggal dikodekan secara permanen dalam program. Anda dapat memodifikasinya sendiri. Parameter yang diperlukan seperti yang ditunjukkan pada gambar di bawah ini. Sebaiknya simpan untuk penggunaan di masa mendatang jika terjadi perdagangan pasangan mata uang memiliki transaksi gila lainnya. Anda dapat menagih mereka bunga kapan saja.

function CancelPendingOrders() {
var orders = _C(exchange.GetOrders)
for (var j = 0; j < orders.length; j++) {
exchange.CancelOrder(orders[j].Id, orders[j])
}
}
function onexit(){
CancelPendingOrders()
}
function GetPrice(Type, Depth) {
var sumAmount = 0
var checkAmount = Type == "Buy" ? CheckBuyAmount : CheckSellAmount
var deep = Type == "Buy" ? Depth.Bids : Depth.Asks
for(var i = 0; i < Math.min(20, deep.length); i++) {
if(Type == "Buy" && deep[i].Price == lastBuyPrice && buyId){
sumAmount += deep[i].Amount - amountBuy //这里要减去自己的挂单
}else if(Type == "Sell" && deep[i].Price == lastSellPrice && sellId){
sumAmount += deep[i].Amount - amountSell
}else{
sumAmount += deep[i].Amount
}
if(sumAmount >= checkAmount){
return deep[i].Price
}
}
return deep[19].Price
}
function OnTick() {
var depth = _C(exchange.GetDepth)
var buyPrice = _N(Math.min(GetPrice("Buy", depth) + 0.0001, depth.Asks[0].Price-0.0001) , 4) //保证在盘口
var sellPrice = _N(Math.max(GetPrice("Sell", depth) - 0.0001, depth.Bids[0].Price+0.0001), 4)
LogStatus('buy_price:'+buyPrice, ' sell price: '+sellPrice)
if ((sellPrice - buyPrice) < DiffPrice) {
buyPrice = 0
}
if(sellPrice != lastSellPrice && sellId){
exchange.CancelOrder(sellId);
sellId = 0
lastSellPrice = 0
}
if(buyPrice != lastBuyPrice && buyId){
exchange.CancelOrder(buyId);
buyId = 0
lastBuyPrice = 0
}
var acc = _C(exchange.GetAccount)
if(account.Stocks+account.FrozenStocks != acc.Stocks+acc.FrozenStocks){
LogProfit((acc.Stocks+acc.FrozenStocks)*depth.Bids[0].Price+acc.Balance+acc.FrozenBalance - 2000)
Log('free '+acc.Stocks, ' lock: '+ acc.FrozenStocks, ' total: ' , (acc.Stocks+acc.FrozenStocks)*depth.Bids[0].Price+acc.Balance+acc.FrozenBalance)
}
account = acc
amountBuy = _N(Math.min(account.Balance / buyPrice - 0.1, Amount), 0)
amountSell = _N(account.Stocks, 0)
if (sellPrice > 0 && amountSell > 40 && sellId == 0) {
sellId = exchange.Sell(_N(sellPrice,4), amountSell)
lastSellPrice = sellPrice
}
if (buyPrice>0 && amountBuy > 40 && buyId == 0) {
buyId = exchange.Buy(_N(buyPrice,4), amountBuy)
lastBuyPrice = buyPrice
}
Sleep(Interval)
}
var account = {Stocks:0, FrozenStocks:0, Balance:0, FrozenBalance:0}
var buyId = 0
var sellId = 0
var lastBuyPrice = 0
var lastSellPrice = 0
var amountSell = 0
var amountBuy = 0
function main() {
CancelPendingOrders()
while (true) {
OnTick()
}
}