Versión simplificada de la estrategia de arbitraje de estabilización de cobertura multi-plataforma (sólo para fines de estudio)

El autor:La bondad, Creado: 2018-08-30 10:28:43, Actualizado: 2023-11-14 21:08:18

img

Las operaciones de cobertura de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo de riesgo.www.fmz.comLa versión original de esta estrategia se puede encontrar en:https://www.fmz.com/bbs-topic/2279Contiene comentarios muy específicos sobre el código.

Esta versión más corta es solo para fines de estudio, debido a la mejora tecnológica de nuestro sitio web, la mayoría de sus estrategias complicadas pueden ahorrar mucho tiempo en la parte de codificación. Actualmente estamos reconstruyendo nuestra función de API, las haremos más fáciles de leer y más efectivas de ejecutar, además de la función básica, reuniremos más método en alguna función en particular que una vez que llame a la función, realizará una gran acción seria.

Aquí está la versión simplificada:

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

Relacionados

Más.

No obstante, los Estados miembros deben tener en cuenta los siguientes elementos:el zan

Un sueño pequeño.¡Muy bien!