Strategi keseimbangan platform tunggal

Penulis:Tidak ada, Tanggal: 2014-08-14 20:20:48
Tag:Saldo

Ini perlu membangun gudang, misalnya, jika Anda memiliki $ 5.000 di akun, dan satu koin, jika nilai koin lebih besar dari saldo akun $ 5.000 dan perbedaan lebih besar dari nilai depreciation, misalnya, jika koin sekarang bernilai $ 6.000, maka Anda akan menjual $ 6.000-5.000 / $ 6.000 / 2, yang berarti mata uang naik, dan menukar uang kembali, jika mata uang turun, misalnya $ 4.000, maka Anda akan membeli $ 5.000-4.000 / $ 4.000 / 2.


/*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 banyak

jammingIni adalah strategi legendaris 50-50, tidak perlu frekuensi tinggi.

Robot KuantitatifIdealisasi ini tidak dapat dilakukan, syaratnya hanya satu transaksi. Misalnya, Bitcoin melawan USD, kondisi awal adalah lebih banyak uang di akun, koin yang lebih sedikit akan mampu, jika sebaliknya, akan berdarah.

HailanyiyeIde yang unik, belajar, terima kasih untuk berbagi.

MomoxJalan menuju Jane, kata-kata yang digunakan dalam strategi ini tidak cocok lagi tetapi kode sederhana, yang sebenarnya adalah strategi paling ajaib, yang menyembah

Kepiting Korea SelatanIni seharusnya menjadi pasar beruang untuk mengambil uang, pasar banteng untuk mendapatkan uang.