Sumber dimuat naik... memuat...

Bagaimana untuk mengeksploitasi robot tanpa otak yang dijual dengan strategi frekuensi tinggi 80 baris kod

Penulis:Rumput, Dicipta: 2023-12-24 21:37:45, Dikemas kini: 2023-12-26 15:40:23

img

Peluang untuk melihat

Dalam dua hari terakhir, ketika melihat pasaran, saya tidak sengaja mendapati bahawa Binance mempunyai pasaran Binance STORJ yang sangat pelik, jumlah dagangan yang besar, dan kekerapan dagangan yang sangat cepat, grafik di bawah garis K minit tertentu, anda dapat melihat jumlah dagangan setiap minit adalah sama, dan pada garis minit anda dapat melihat garis bawah yang panjang.imgMenggunakan garis K peringkat 1 saat untuk binan, terdapat kemerosotan, seseorang akan menjual 20 000 STORJ setiap 5-7s, tanpa mengira kos, menggali lubang kecil secara langsung di garis K, dan harga akan pulih dalam masa yang singkat. Operasi ini jelas disebabkan oleh robot yang ditugaskan oleh gunung es. Operasi yang dijual ini berlangsung sangat lama, jumlah keseluruhan dianggarkan mencapai tahap puluhan juta dolar, dan banyak kali menyebabkan titik pelincir sebanyak satu per seribu, yang bermaksud titik pelincir perdagangan sahaja, pelaku strategi ini kehilangan berjuta-juta dolar.img

Dalam beberapa minit, robot yang khusus mengeksploitasi gunung ais yang tidak berfikiran ini telah berjaya mengubah strategi frekuensi tinggi yang ada.

Idea strategik

Oleh kerana harga pasaran akan dijual setiap beberapa saat, kita hanya perlu mencari kedalaman 10,000 dalam buku pembelian, dan menggantungnya di hadapan. Jadi pada saat gunung ais ini dijual, terdapat kemungkinan besar robot pasaran akan menerima, dan perdagangan pada masa ini sangat aktif, penurunan harga sesaat juga mencetuskan beberapa pembelian, dengan alasan yang sama menggantung satu pesanan dijual secara beransur-ansur dibuang, begitu berulang operasi. Frekuensi transaksi sangat tinggi, walaupun setiap kali pulangan tidak besar, pendapatan keseluruhan juga cukup besar.

Persembahan Strategik

Strategi ini menunjukkan sebagai berikut, tidak ada pendapatan yang dicetak pada mulanya, petang ini diubah, menghasilkan pendapatan, robot yang menjual dengan gila telah mengubah jumlah setiap kali menjadi sekitar 5,000, jadi tempoh keuntungan yang terbaik telah berlalu. Hanya bermula mungkin dapat menghasilkan 100-200U setiap jam, kunci adalah tidak berisiko, kos yang rendah. Dari sini, sebaliknya, penghantaran ais gunung sebenarnya juga mempunyai banyak teknik, jika anda menulis strategi, anda boleh menghabiskan beberapa puluh minit di FMZ untuk menulis pesanan pembelian untuk melihat dalam-dalam menentukan saiz dan harga pesanan, melihat penghantaran bayaran secara aktif menyesuaikan ukuran pesanan dengan ciri-ciri seperti saiz kertas dan menduduki piring, dengan mudah menjimatkan beberapa puluh ribu dolar.

img

Kod sumber strategi

Kod strategi adalah sangat mudah, hanya 80 baris. Untuk pemula, beberapa parameter seperti ketepatan sederhana di sini telah tertulis dalam program, anda boleh mengubahnya sendiri, parameter yang diperlukan adalah seperti di bawah, disyorkan untuk disimpan, sekiranya pertukaran itu berdagang dengan peniaga yang menghisap nafas lagi, anda boleh mengumpulkan faedah kepada mereka pada bila-bila masa.img

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()
    }
}

Lebih lanjut

titik pemeriksaanYa Tuhan, berapa kos untuk menjalankan taktik ini?

yc123hCik Gelap, jika strategi ini berlaku, adakah ia berlaku apabila setiap pusingan bermula dan anda sering melihat mesej kegagalan dua pesanan sebelum penarikan balik (iaitu menunjukkan bahawa semua tempahan berlaku)?

RumputIni adalah bayaran sifar.

yc123hTerima kasih, saya juga ingin bertanya kepada anda mengenai parameter. Seperti strategi frekuensi tinggi ini, bagaimana anda mengoptimumkan parameter. Sebagai contoh, saya melihat strategi yang anda kongsi pada tahun 2014, selang latihan secara lalai mencapai 3500ms, jika frekuensi tinggi, selang latihan tidak sepatutnya lebih baik. Tetapi perdagangan yang terlalu pendek juga agak sukar, jika terlalu lama, pengaruh turun naik pasaran sangat besar, jika anda tidak dapat menjual mata keuntungan setelah memegang saham, anda mungkin akan rugi.

RumputPengecualian gagal adalah perjanjian, dan wang yang diperoleh menunjukkan ia berkesan.