Chiến lược lưới 50 dòng (giảng dạy)

Tác giả:Giấc mơ nhỏ, Ngày: 2018-08-24 16:32:24
Tags:Nghiên cứuMạng lưới


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)
    }
}

Có liên quan

Thêm nữa

326538268Bitmex trả lời không thiết lập hợp đồng

Wufuhao100wCó ai viết một phiên bản Python trống không?

afanxingzhouCâu hỏi: Khi phần mềm tương lai ngang hàng, bạn phải chọn một giao dịch mở, ngang hàng đó. Tôi thấy trong mã trong thời gian ngang hàng, hoạt động và mở giao dịch giống như vậy, chỉ mới mở một vị trí ngược lại với trước đây. Vì vậy, so sánh phức tạp, hy vọng ông chủ nhỏ mơ có thời gian để hiểu câu trả lời:)

Giấc mơ nhỏTrong khi đó, các nhà đầu tư khác cũng có thể sử dụng chiến lược này.

Giấc mơ nhỏTốt lắm.

afanxingzhouĐược rồi, tôi sẽ xem thêm về hợp đồng tương lai:)

Giấc mơ nhỏCó lẽ bạn sẽ thấy một số người đang sử dụng các chiến lược này, nhưng bạn sẽ thấy một số người đang sử dụng các chiến lược này để thay đổi các phiên bản tương lai. Chỉ có mua bán. Mua là mua nhiều, bán là bán nhiều (nếu trước đó có một giao dịch mua tương ứng) hoặc mở.