Strategi baru untuk mencuri wang digital (pengkhususan)

Penulis:Mimpi kecil, Dicipta: 2022-04-20 15:59:01, Dikemas kini: 2023-09-20 10:29:48

img

Strategi baru untuk mencuri wang digital (pengkhususan)

Dalam dua hari terakhir, pengguna Telegram Group menyalurkan mesej peribadi saya berharap untuk mendapatkan contoh reka bentuk strategi baru.

Keperluan Strategik

Sebagai contoh, satu bursa, satu pasangan dagangan: XXX_USDT, masih belum disenaraikan di bursa tersebut. Tetapi akan segera dilancarkan. Perlu menggunakan program untuk melihat pasaran XXX_USDT di bursa ini. Dagangan ini boleh diniagakan sebaik sahaja hadnya terhad.

Keperluan ini sangat mudah, tetapi mungkin tidak ada yang boleh dilakukan oleh rakan-rakan kecil yang tidak mempunyai pengetahuan tentang pengaturcaraan, dan kami akan mengambil langkah untuk memenuhi keperluan ini.

Kod strategi

Parameter strategi ditakrifkan:

Di sini kita menentukan beberapa parameter yang digunakan untuk mengawal operasi seperti di bawah.img

Pelaksanaan kod:

function pendingOrders(ordersNum, price, amount, deltaPrice, deltaAmount) {
    var routineOrders = []
    var ordersIDs = []
    for (var i = 0 ; i < ordersNum ; i++) {
        var routine = exchange.Go("Buy", price + i * deltaPrice, amount + i * deltaAmount)
        routineOrders.push(routine)
        Sleep(ApiReqInterval)        
    }
    for (var i = 0 ; i < routineOrders.length ; i++) {
        var orderId = routineOrders[i].wait()
        if (orderId) {
            ordersIDs.push(orderId)
            Log("成功挂单", orderId)
        }        
    }
    return ordersIDs
}

function main() {
    if (symbol == "null" || pendingPrice == -1 || pendingAmount == -1 || pendingPrice == -1 || deltaPrice == -1 || deltaAmount == -1) {
        throw "参数设置错误"
    }
    exchange.SetCurrency(symbol)
    // 屏蔽错误信息
    SetErrorFilter("GetDepth")
    while (true) {
        var msg = ""
        var depth = exchange.GetDepth()
        if (!depth || (depth.Bids.length == 0 && depth.Asks.length == 0)) {
            // 没有深度
            msg = "没有深度数据,等待!"
            Sleep(500)
        } else {
            // 获取到深度
            Log("并发下单!")
            var ordersIDs = pendingOrders(ordersNum, pendingPrice, pendingAmount, deltaPrice, deltaAmount)
            while (true) {
                var orders = _C(exchange.GetOrders)
                if (orders.length == 0) {
                    Log("当前挂单个数0,停止运行")
                    return 
                }
                var tbl = {
                    type: "table",
                    title: "当前挂单",
                    cols: ["id", "价格", "数量"], 
                    rows: []
                }
                _.each(orders, function(order) {
                    tbl.rows.push([order.Id, order.Price, order.Amount])
                })
                LogStatus(_D(), "\n`" + JSON.stringify(tbl) + "`")
                Sleep(500)
            }
        }
        LogStatus(_D(), msg)
    }
}

策略检测交易所API,检测订单薄接口,一旦能获取到订单薄数据,策略就使用exchange.Go函数并发下单。下单之后就循环检测当前挂单的状态。策略没有经过实际测试,这里只是给出一个代码设计参考,有兴趣的可以修改、添加功能使用。

Rancangan lengkap:https://www.fmz.com/strategy/358383


Berkaitan

Lebih lanjut