Baru-baru ini dua hari ketika melihat pasar tidak disengaja menemukan bahwa Binance memiliki pasar Bitcoin STORJ sangat aneh, volume transaksi yang besar, dan frekuensi transaksi yang sangat cepat, grafik di bawah ini dari garis K menit tertentu, Anda dapat melihat volume perdagangan setiap menit yang konsisten, dan pada garis menit Anda dapat melihat garis bawah yang panjang.Mengamati garis K tingkat 1 detik dari Binance, ditemukan bahwa ada orang yang akan menjual 20 ribu STORJ setiap 5-7s, tanpa memperhitungkan biaya, langsung menggali lubang kecil di garis K, dan harga akan pulih dalam waktu singkat. Operasi ini jelas disebabkan oleh robot yang ditugaskan oleh gunung es. Operasi yang dijual ini berlangsung sangat lama, jumlahnya diperkirakan mencapai tingkat puluhan juta dolar, dan sering kali menyebabkan titik tergelincir hingga satu per seribu, yang berarti titik tergelincir perdagangan saja, dan pelaku strategi ini kehilangan puluhan ribu dolar.
Dengan mengubah strategi frekuensi tinggi langsungnya, robot yang khusus mengeksploitasi dan menjual gunung es yang tidak punya otak ini berhasil dalam hitungan menit.
Karena harga pasar akan dijual setiap beberapa detik, kita hanya perlu menemukan kedalaman 10.000 di buku pembelian, dan menggantungnya di depan. Jadi pada saat gunung es ini dijual, kemungkinan besar robot pasar akan menerima, dan saat ini transaksi sangat aktif, penurunan harga instan juga memicu beberapa pembelian.
Strategi ini seperti berikut, awalnya tidak ada keuntungan yang dicetak, sore ini diubah, menghasilkan keuntungan yang dicetak, robot yang menjual dengan gila telah mengubah jumlah setiap kali sekitar 5.000, jadi masa yang optimal telah berlalu. Awalnya mungkin bisa menghasilkan 100-200U per jam, kuncinya adalah tidak berisiko, biaya rendah. Dari sini, sebaliknya, penugasan gunung es sebenarnya juga memiliki banyak trik, jika Anda menulis strategi, Anda dapat menghabiskan beberapa puluh menit di FMZ untuk menuliskan pesanan pembelian untuk melihat secara mendalam menentukan ukuran dan harga pesanan, melihat penugasan besar-besaran yang disesuaikan dengan ukuran dan ukuran piring, dengan mudah menghemat sekitar puluhan ribu dolar.
Kode strategi sangat sederhana, hanya 80 baris. Cocok untuk pemula, beberapa parameter di sini, seperti presisi sederhana, sudah tertulis dalam program, dapat diubah sendiri, parameter yang diperlukan seperti gambar di bawah ini, disarankan untuk disimpan, jika pertukaran perdagangan terhadap pedagang yang menghisap napas, kapan saja mengumpulkan bunga dari mereka.
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()
}
}
titik pemeriksaanYa Allah, berapa biaya untuk menjalankan taktik ini?
yc123hSilahkan tanya guru, apakah strategi ini efektif jika setiap putaran dimulai dengan sering melihat pesan kegagalan dua order sebelum penarikan (yaitu tanda bahwa semua order sudah berlaku)?
RumputIni adalah biaya operasional nol.
yc123hTerima kasih, saya juga ingin bertanya pada Anda tentang parameter. Seperti strategi frekuensi tinggi ini, bagaimana cara mengoptimalkan parameter. Misalnya, saya melihat strategi yang Anda bagikan pada tahun 2014, interval pelatihan secara default mencapai 3500 ms, jika frekuensi tinggi, interval pelatihan seharusnya lebih baik.
Rumput"Menghilangkan kegagalan adalah kesepakatan, uang yang diperoleh untuk membuktikan bahwa itu berhasil".