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) } }
326538268Bitmex kembali menunjukkan tidak ada kontrak yang ditetapkan
Wufuhao100wApakah ada yang memiliki versi Python yang kosong?
afanxingzhouPertanyaan: Ketika perangkat lunak berjangka dipadatkan, Anda harus memilih suatu posisi terbuka, dan meratakan posisi tersebut. Saya melihat dalam kode saat dipadatkan, operasi dan pembukaan perdagangan sama, hanya membuka posisi yang berlawanan dengan sebelumnya.
Penemu Kuantitas - Mimpi KecilStrategi ini adalah strategi langsung, BITMEX adalah bursa berjangka.
Penemu Kuantitas - Mimpi KecilBaik-baik saja.
afanxingzhouBaiklah, saya akan melihat lebih lanjut mengenai futures:)
Penemu Kuantitas - Mimpi Kecil"Menggunakan strategi ini hanya untuk versi langsung, dan ada yang tertarik untuk mengubahnya menjadi versi berjangka. Barang-barang yang tersedia hanya untuk membeli dan menjual. Beli adalah lebih banyak, jual adalah lebih banyak (jika sebelumnya ada operasi pembelian yang sesuai) atau kosong.