Einheitliche Plattform-Gleichgewichtsstrategie

Schriftsteller:Null, Datum: 2014-08-14 20:20:48
Tags:Ausgleichsbetrag

Das erfordert die Aufstellung von Lager, zum Beispiel, wenn es 5.000 Dollar auf dem Konto gibt, und 1 Münze, wenn der Wert der Münze größer ist als der Kontostand von 5.000 und die Differenz über dem Devaluationspunkt liegt, zum Beispiel, wenn die Münze jetzt 6.000 Dollar wert ist, dann verkaufen wir sie, wenn die Münze ansteigt, tauschen wir das Geld zurück, wenn die Münze ansteigt, zum Beispiel 4.000 Dollar, dann kaufen wir sie, wenn die Münze sinkt, dann kaufen wir etwas zurück, wenn sie ansteigt, dann verkaufen wir sie wieder, als wäre es ein Niedrigkurs, eine verschiedene Absicherung auf beiden Seiten, also nenne ich das eine Ausgleichsstrategie.


/*backtest
start: 2018-03-01 00:00:00
end: 2018-08-01 11:00:00
period: 15m
exchanges: [{"eid":"OKCoin_EN","currency":"BTC"}]
*/

function CancelPendingOrders() {
    var ret = false;
    while (true) {
        var orders = null;
        while (!(orders = exchange.GetOrders())) {
            Sleep(Interval);
        }

        if (orders.length == 0) {
            return ret;
        }

        for (var j = 0; j < orders.length; j++) {
            exchange.CancelOrder(orders[j].Id);
            ret = true;
            if (j < (orders.length-1)) {
                Sleep(Interval);
            }
        }
    }
    return ret;
}

var InitAccount = null;

function onTick() {
    var acc = _C(exchange.GetAccount);
    var ticker = _C(exchange.GetTicker);
    var spread = ticker.Sell - ticker.Buy;
    var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
    var ratio = diffAsset / acc.Balance;
    LogStatus('ratio:', ratio, _D());
    if (Math.abs(ratio) < threshold) {
        return false;
    }
    if (ratio > 0) {
        var buyPrice = _N(ticker.Sell + spread, ZPrecision);
        var buyAmount = _N(diffAsset / buyPrice, XPrecision);
        if (buyAmount < MinStock) {
            return false;
        }
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio);
    } else {
        var sellPrice = _N(ticker.Buy - spread, ZPrecision);
        var sellAmount = _N(-diffAsset / sellPrice, XPrecision);
        if (sellAmount < MinStock) {
            return false;
        }
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio);
    }
    return true;
}

function main() {
    InitAccount = _C(exchange.GetAccount);
    LoopInterval = Math.max(LoopInterval, 1);
    while (1) {
        if (onTick()) {
            Sleep(1000);
            CancelPendingOrders();
            Log(_C(exchange.GetAccount));
        }
        Sleep(LoopInterval * 1000);
    }
}

Verwandt

Mehr

StörungenDas ist die legendäre 50-50-Strategie, ohne hohe Frequenzen.

Die Quantität der RoboterDiese Idealisierung ist nicht möglich, die Bedingungen können nur einmalig sein. Zum Beispiel Bitcoin gegen USD, die anfängliche Bedingung ist, dass mehr Geld im Konto ist, weniger Geld kann, wenn umgekehrt Blut vergießen.

Ich habe dich gebeten.Das ist eine einzigartige Idee, die ich gelernt habe.

MoxDie Straße zu Jane, das Wort verwendet wird, um diese Strategie nicht mehr passend, aber einfache Code, die tatsächlich die magischste Strategie ist, um zu verehren

Südkoreanische BaumwolleDas sollte der Zeitpunkt sein, an dem man in einem Bärenmarkt Geld schnappt und in einem Rindmarkt Geld verdient.