Die Ressourcen sind geladen. Beförderung...

Die neue Strategie der digitalen Währung ist die Strategie der digitalen Währung.

Schriftsteller:Die Erfinder quantifizieren - Kleine Träume, Erstellt: 2022-04-20 15:59:01, Aktualisiert: 2023-09-20 10:29:48

img

Die neue Strategie der digitalen Währung ist die Strategie der digitalen Währung.

In den vergangenen zwei Tagen schrieb ein Telegramm-Nutzer privat: "Ich hoffe, ich habe ein Beispiel für die Entwicklung einer neuen Strategie gefunden. Manchmal will eine Börse eine neue Währung aufnehmen, und ich habe eine einfache Strategie für eine neue Währung entwickelt".

Strategische Bedürfnisse

Zum Beispiel ist derzeit eine Börse, ein Handelspärchen: XXX_USDT, noch nicht an der Börse gelistet. Aber es wird bald online gehen. Es ist notwendig, mit einem Programm auf den Markt von XXX_USDT dieser Börse zu schauen. Die Transaktion kann gehandelt werden, sobald sie begrenzt ist.

Die Notwendigkeit ist einfach, aber für kleine Partner, die keine Programmierkenntnisse haben, kann es nicht anders sein.

Strategie-Code

Definition der Strategieparameter:

Hier definieren wir ein paar Parameter, die für die Steuerung von Operationen wie der Unterlistung verwendet werden.img

Die Codeimplementierung:

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函数并发下单。下单之后就循环检测当前挂单的状态。策略没有经过实际测试,这里只是给出一个代码设计参考,有兴趣的可以修改、添加功能使用。

Die volle Strategie:https://www.fmz.com/strategy/358383


Verwandt

Mehr