단일 플랫폼 균형 전략

저자:제로, 2014-08-14 20:20:48
태그:균형

이것은 저장소를 구축해야 합니다. 예를 들어, 계좌에 5,000달러가 있고, 동전 1개를 가지고 있습니다. 만약 동전의 가치는 계좌 잔액보다 5,000달러가 더 많고, 그 가격의 차이는 약점보다 높다면, 예를 들어, 동전이 현재 6,000달러가 될 때, 우리는 그것을 팔고,


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

관련

더 많은

방해이것은 전설의 50-50 전략이고, 초파수가 필요하지 않습니다.

정량화 로봇이 이상화는 불가능하며, 조건은 단행일 뿐이다. 예를 들어, 비트코인이 USD에 대해 거래하는 경우, 초기 조건은 계좌에 돈이 많고, 돈이 적으면 피를 흘릴 수 있다는 것입니다.

안녕하세요이 아이디어는 매우 독특하고 배웠습니다.

모박스대리점에서 제인, 이 문장은 더 이상이 전략에 적합하지만, 간단한 코드, 정말 가장 마법의 전략, 숭배

남북의 작은 나무늘보이것은 곰시장에서 돈을 벌고, 쇠시장에서 돈을 벌어야하는 것입니다.