Strategi Keseimbangan Platform Bersama

Penulis:Sifar, Tarikh: 2014-08-14 20:20:48
Tag:Saldo

Ini memerlukan pembinaan simpanan, contohnya, jika akaun anda mempunyai $ 5,000, dan 1 sen, jika nilai sen lebih besar daripada baki akaun $ 5,000, dan perbezaan melebihi nilai margin, contohnya, sen kini bernilai $ 6,000, maka juallah $ 6,000-5000 / 6000 / 2 sen, ini menunjukkan bahawa sen meningkat, tukar semula wang itu, jika sen menurun, contohnya $ 4,000, beli $ 5,000-4000 / 4000 / 2 sen, beli kembali beberapa ketika mata wang jatuh, jika ia jatuh, jual semula, seperti pada mata wang biasa, peruntukan yang berbeza di kedua-dua belah pihak, jadi saya menamakannya strategi keseimbangan.


/*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);
    }
}

Berkaitan

Lebih lanjut

penghalangIni adalah strategi 50-50 dalam legenda, tidak memerlukan frekuensi tinggi.

Robot KuantitatifIdealisasi ini tidak dapat dilaksanakan, syaratnya hanya satu tindakan. Contohnya, Bitcoin berbanding USD, syarat awal adalah lebih banyak wang dalam akaun, lebih sedikit wang yang boleh, jika sebaliknya, akan berdarah.

HailanyiyeIdea ini unik, saya belajar, terima kasih kerana berkongsi.

momoxJalan ke Jane, perkataan yang digunakan dalam strategi ini tidak sesuai lagi tetapi kod yang mudah, sebenarnya adalah strategi yang paling ajaib, menyembah

Buah kelapa muda di selatanIni sepatutnya menjadi masa untuk mengambil wang semasa pasaran beruang, dan membuat wang semasa pasaran lembu.