Stop Loss Below Fixed Price

Author: The grass, Date: 2018-10-10 15:35:41
Tags: StudyTrade-aided

A simple fixed-price stop-loss robot can help you stop losses. It's also a great introduction to quantitative digital currency trading.

### Parameters are:

StopPrice:Fixed price to stop loss

Intervel: Intervel(second) of checking coin price


function CancelPendingOrders() {
    var orders = _C(exchange.GetOrders);
    for (var j = 0; j < orders.length; j++) {
        exchange.CancelOrder(orders[j].Id, orders[j]);
    }
}
function StopLoss(){
    var done = false
    while(!done){
        var ticker = _C(exchange.GetTicker)
        account = _C(exchange.GetAccount)
        var price = ticker.Buy
        var amount = account.Stocks
        try{
            if(amount > 0){
                var id = exchange.Sell(price, amount);
                if(id){
                    exchange.CancelOrder(id)
                }
                else{
                    Log('all coins are sold')
                    Log('total coins: ', account.Stocks)
                    done = true
                }
            }
        }catch(err){
            Log('error, stop')
            done = true
        }
        Sleep(1000);
    }
}
function main() {
    Log('robot starts to run')
    CancelPendingOrders()
    var account = _C(exchange.GetAccount)
    Log('total coins: ', account.Stocks);
    while(true){
        var ticker = _C(exchange.GetTicker)
        if(ticker.Last <= StopPrice){
            Log('Last price is:', ticker.Last, 'Stop price is: ', StopPrice)
            Log('the stop price has reached, start to sell')
            StopLoss();
            break;
        }
        Sleep(Intervel*1000)
    }
    Log('robot has stopped')
}

Related

More

lerylinIs it possible that your listing seller is already larger than the real-time price, then your listing will not be transacted, so cancel immediately, re-check the latest sale price, re-list with the latest seller

xh69There is a question, why is it that after the sale, the sale order is cancelled immediately? var id = exchange.Sell ((price, amount); If ((id) { Exchange.CancelOrder (id) is the name of the exchange. I'm not sure.

lerylinIs it possible that your listing seller is already larger than the real-time price, then your listing will not be transacted, so cancel immediately, re-check the latest sale price, re-list with the latest seller