50 baris strategi grid (pengkhususan)

Penulis:Mimpi kecil, Tarikh: 2018-08-24 16:32:24
Tag:KajianGrid


var _StopLoss = 0
var _StopWin = 0
var _Grid = []

function UpdateGrid(nowBidsPrice, nowAsksPrice, direction){    // up 1, down -1
    if(_Grid.length == 0 || (direction == 1 && nowBidsPrice - _Grid[_Grid.length - 1].price > _GridPointDis) || 
        (direction == -1 && _Grid[_Grid.length - 1].price - nowAsksPrice > _GridPointDis)){

        var nowPrice = direction == 1 ? nowBidsPrice : nowAsksPrice
        _Grid.push({
            price: _Grid.length == 0 ? nowPrice : _Grid[_Grid.length - 1].price + _GridPointDis * direction,
            hold : {price: 0, amount: 0}, 
            coverPrice : _Grid.length == 0 ? nowPrice - direction * _GridCovDis : _Grid[_Grid.length - 1].price + _GridPointDis * direction - direction * _GridCovDis
        })

        var tradeInfo = direction == 1 ? $.Sell(_GridPointAmount) : $.Buy(_GridPointAmount)
        _Grid[_Grid.length - 1].hold.price = tradeInfo.price
        _Grid[_Grid.length - 1].hold.amount = tradeInfo.amount
        $.PlotFlag(new Date().getTime(), JSON.stringify(tradeInfo), "O")
    }
    if(_Grid.length > 0 && 
        ((direction == 1 && nowAsksPrice < _Grid[_Grid.length - 1].coverPrice) || (direction == -1 && nowBidsPrice > _Grid[_Grid.length - 1].coverPrice))){
        
        var coverInfo = direction == 1 ? $.Buy(_Grid[_Grid.length - 1].hold.amount) : $.Sell(_Grid[_Grid.length - 1].hold.amount)
        _Grid.pop()
        $.PlotFlag(new Date().getTime(), JSON.stringify(coverInfo), "C")
        _StopWin++
    } else if(_Grid.length > _GridNum){
        var coverfirstInfo = direction == 1 ? $.Buy(_Grid[0].hold.amount) : $.Sell(_Grid[0].hold.amount)
        _Grid.shift()
        $.PlotFlag(new Date().getTime(), JSON.stringify(coverfirstInfo), "C")
        _StopLoss++
    }

}

function main(){
    while(1){
        var ticker = _C(exchange.GetTicker)
        var records = _C(exchange.GetRecords)
        $.PlotRecords(records, "kline")
        UpdateGrid(ticker.Buy, ticker.Sell, direction)       
        var msg = ""
        for(var i = 0; i < _Grid.length; i++){
            msg += JSON.stringify(_Grid[i]) + "\n"
        }
        LogStatus(_D(), "_StopWin:", _StopWin, "_StopLoss:", _StopLoss, _C(exchange.GetAccount), "\n", "_Grid.length:", _Grid.length, "_GridNum:", _GridNum, "\n", msg)
        Sleep(500)
    }
}

Berkaitan

Lebih lanjut

326538268Bitmex kembali menunjukkan tiada kontrak yang ditetapkan

Wufuhao100wAdakah Tuhan mempunyai versi Python yang kosong?

afanxingzhouSoalan: Apabila perisian niaga hadapan sepadan, anda perlu memilih satu kedudukan terbuka, sepakan kedudukan tersebut. Saya melihat dalam kod ketika sepakan, operasi dan pembukaan kedudukan sama, hanya membuka kedudukan yang berlawanan dengan sebelumnya.

Mimpi kecilStrategi ini adalah untuk membeli-belah secara langsung, dan BITMEX adalah bursa niaga hadapan.

Mimpi kecilBagus.

afanxingzhouBaiklah, saya akan lihat lagi mengenai niaga hadapan:)

Mimpi kecilSaya tidak tahu apa yang akan berlaku jika saya tidak mempunyai akaun akaun bank, tetapi saya tidak tahu apa yang akan berlaku jika saya tidak mempunyai akaun bank. Barang sedia ada hanya membeli dan menjual. Beli adalah lebih banyak, menjual adalah lebih banyak (jika terdapat operasi pembelian yang sepadan sebelumnya) atau kosong.