Phiên bản đơn giản của chiến lược ổn định phòng ngừa rủi ro đa nền tảng (chỉ cho mục đích nghiên cứu)

Tác giả:Tốt, Tạo: 2018-08-30 10:28:43, Cập nhật: 2023-11-14 21:08:18

img

Phiên bản đơn giản hóa của Hedging Stabilization Arbitrage đa nền tảngwww.fmz.comphiên bản gốc của chiến lược này, bạn có thể tìm thấy nó tại:https://www.fmz.com/bbs-topic/2279Nó chứa một bình luận rất cụ thể về mã.

Phiên bản ngắn hơn này chỉ dành cho mục đích nghiên cứu, do cải tiến công nghệ của trang web của chúng tôi, hầu hết các chiến lược phức tạp của bạn có thể tiết kiệm thời gian đáng kể trên phần mã hóa. Chúng tôi hiện đang xây dựng lại chức năng API của chúng tôi, chúng tôi sẽ làm cho chúng dễ đọc và hiệu quả hơn để thực hiện, ngoài chức năng cơ bản, chúng tôi sẽ thu thập nhiều phương pháp hơn trong một số chức năng cụ thể hơn một lần bạn gọi chức năng, nó sẽ thực hiện một hành động nghiêm túc.

Dưới đây là phiên bản đơn giản:

var preSumBalance = 0
var initSumBalance = 0
function UpdateAccount(isFirst){
    var msg = ""
    var sumStocks = 0
    var sumBalance = 0
    for(var i = 0; i < exchanges.length; i++){
        if(exchanges[i].needUpdate == true || isFirst == true){
            exchanges[i].account = _C(exchanges[i].GetAccount)
            exchanges[i].needUpdate = false
            if(isFirst == true){
                initSumBalance += (exchanges[i].account.Balance + exchanges[i].account.FrozenBalance)
                exchanges[i].SetPrecision(_CurrencyPrecision, _BaseCurrencyPrecision)
            }
        }
        sumStocks += (exchanges[i].account.Stocks + exchanges[i].account.FrozenStocks)
        sumBalance += (exchanges[i].account.Balance + exchanges[i].account.FrozenBalance)
        msg += exchanges[i].GetName() + "coin:" + exchanges[i].account.Stocks + "Frozen coin:" + exchanges[i].account.FrozenStocks + "money:" + exchanges[i].account.Balance + "Frozen money:" + exchanges[i].account.FrozenBalance + "\n"
    }
    LogStatus(_D(), "Total Coins:" + sumStocks, "Total Money:" + sumBalance, "\n", msg)
    if(preSumBalance != sumBalance){
        LogProfit(sumBalance - initSumBalance, preSumBalance = sumBalance)
    }
}
function main(){
    UpdateAccount(true)
    while(1){
        for(var i = 0; i < exchanges.length; i++){
            for(var j = 0; j < exchanges.length; j++){
                if(i == 0 && j == 0){
                    for(var m = 0; m < exchanges.length; m++){
                        exchanges[m].thread = exchanges[m].Go("GetTicker")
                    }
                    for(var n = 0; n < exchanges.length; n++){
                        exchanges[n].ticker = exchanges[n].thread.wait()
                    }
                }
                if(exchanges[i].GetName() != exchanges[j].GetName() && exchanges[i].ticker && exchanges[j].ticker && exchanges[i].ticker.Buy - exchanges[j].ticker.Sell > _HedgePrice){
                    if(exchanges[i].account.Stocks > _HedgeAmount && exchanges[j].account.Balance / ((exchanges[i].ticker.Buy + exchanges[j].ticker.Sell) / 2) > _HedgeAmount){
                        var sellId_I = exchanges[i].Sell((exchanges[i].ticker.Buy + exchanges[j].ticker.Sell) / 2, _HedgeAmount, exchanges[i].GetName())
                        var buyId_J = exchanges[j].Buy((exchanges[i].ticker.Buy + exchanges[j].ticker.Sell) / 2, _HedgeAmount, exchanges[i].GetName())
                        exchanges[i].needUpdate = exchanges[j].needUpdate = true
                    }
                }
            }
        }
        UpdateAccount(false)
        Sleep(300)      // test
    }
}

Có liên quan

Thêm nữa

QQ4830163zan

Giấc mơ nhỏTốt lắm!