Sumber dimuat naik... memuat...

Perbelanjaan segera telah mengambil alih pembelian plugin

Penulis:Rumput, Tarikh: 2020-03-19 16:49:56
Tag:

Mengambil alih satu membeli atau menjual satu juga merupakan cara untuk menghantar secara perlahan, dengan kesan yang lebih kecil terhadap pasaran. Strategi ini juga mempunyai beberapa penambahbaikan, dengan mengubah jumlah perdagangan minimum atau ketepatan secara manual. Beli:https://www.fmz.com/strategy/191582Dijual:https://www.fmz.com/strategy/191730

Plugin ini boleh dimulakan dengan satu klik di terminal dagangan, tidak mengenakan bayaran, dan memudahkan dagangan manual.https://www.fmz.com/digest-topic/5051


function GetPrecision(){
    var precision = {price:0, amount:0}
    var depth = exchange.GetDepth()
    for(var i=0;i<depth.Asks.length;i++){
        var amountPrecision = depth.Asks[i].Amount.toString().indexOf('.') > -1 ? depth.Asks[i].Amount.toString().split('.')[1].length : 0
        precision.amount = Math.max(precision.amount,amountPrecision)
        var pricePrecision = depth.Asks[i].Price.toString().indexOf('.') > -1 ? depth.Asks[i].Price.toString().split('.')[1].length : 0
        precision.price = Math.max(precision.price,pricePrecision)
    }
    return precision
}

function main(){
    var initAccount = exchange.GetAccount()
    if(!initAccount){return '无法获取账户信息'}
    var precision = GetPrecision()
    var buyPrice = 0
    var lastId = 0
    var done = false
    while(true){
        var account = _C(exchange.GetAccount)
        var dealAmount = account.Stocks - initAccount.Stocks
        var ticker = _C(exchange.GetTicker)
        if(BuyAmount - dealAmount > 1/Math.pow(10,precision.amount) && ticker.Buy > buyPrice){
            if(lastId){exchange.CancelOrder(lastId)}
            var id = exchange.Buy(ticker.Buy, _N(BuyAmount - dealAmount,precision.amount))
            if(id){
                lastId = id
            }else{
                done = true
            }
        }
        if(BuyAmount - dealAmount <= 1/Math.pow(10,precision.amount)){done = true}
        if(done){
            var avgCost = (initAccount.Balance - account.Balance)/dealAmount
            return 'order is done, avg cost is ' + avgCost  // including fee cost
        }
        Sleep(Intervel*1000)
    }
}

Lebih lanjut