Versi yang disederhanakan dari Strategi Stabilization Arbitrage Hedging Multi-platform (Hanya untuk tujuan kajian)

Penulis:Kebaikan, Dicipta: 2018-08-30 10:28:43, Dikemas kini: 2023-11-14 21:08:18

img

Versi yang disederhanakan dari Arbitraj Stabilization Hedging Multi-platformwww.fmz.comVersi asal strategi ini boleh didapati di:https://www.fmz.com/bbs-topic/2279Ia mengandungi komen yang sangat spesifik mengenai kod.

Versi yang lebih pendek ini adalah untuk tujuan kajian sahaja, disebabkan oleh peningkatan teknologi laman web kami, kebanyakan strategi rumit anda boleh sangat menjimatkan masa pada bahagian pengekodan. Kami sedang membina semula fungsi API kami, kami akan menjadikannya lebih mudah dibaca dan lebih berkesan untuk dilaksanakan, selain fungsi asas, kami akan mengumpulkan lebih banyak kaedah dalam beberapa fungsi tertentu daripada sekali anda memanggil fungsi, ia akan melakukan tindakan yang serius.

Berikut adalah versi yang dipermudahkan:

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

Berkaitan

Lebih lanjut

QQ4830163zan

Mimpi kecilBagus!