websocket versi OKEX strategi hedging jangka panjang (pelajaran)

Penulis:Mimpi kecil, Tanggal: 2019-04-17 10:10:55
Tag:HedgeWebscoket

OKEX strategi hedging jangka panjang yang disederhanakan

  • Gambar layar:img

  • Jika Anda tidak memiliki kontrak, maka Anda tidak akan memiliki kontrak yang lebih baik.

  • Tambahkan dua objek bursa, kuartal pertama, dan minggu kedua.

  • Semua kode yang dapat disederhanakan telah disederhanakan, ruang untuk mengoptimalkannya masih besar, strategi pengajaran berhati-hati, dan ada beberapa risiko.

  • Pesan dengan harga yang sama.

  • Selamat mengomentari umpan balik BUG.

"Saya tidak tahu apa yang akan terjadi", kata dia.

"Saya tidak tahu apa yang akan terjadi", kata dia.

"Saya tidak tahu apa yang akan terjadi", kata dia.


function Hedge (isOpen, retSetA, retSetB) {
    exchanges[0].SetDirection(isOpen ? "sell" : "closesell")
    exchanges[1].SetDirection(isOpen ? "buy" : "closebuy");
    (function (routineA, routineB) {
        Log(routineA.wait(), routineB.wait(), retSetA, retSetB)
    })(exchanges[0].Go(isOpen ? "Sell" : "Buy", -1, _ContractNum), exchanges[1].Go(isOpen ? "Buy" : "Sell", -1, _ContractNum))
}

function main () {
    var param = {"op": "subscribe", "args": ["futures/ticker:" + _Instrument_id_A, "futures/ticker:" + _Instrument_id_B]}
    var client = Dial("wss://real.okex.com:8443/ws/v3|compress=gzip_raw&mode=recv&reconnect=true&payload=" + JSON.stringify(param))
    client.write(JSON.stringify(param))
    var tickerA, tickerB 
    var arr = []
    for (var i = 0 ; i < _Count ; i++) {
        arr.push({open: _Begin + i * _Add, cover: _Begin + i * _Add - _Profit, isHold: false})
    }
    while (1) {
        var tab = {type: "table", title: "状态", cols: ["节点信息"], rows: []}
        Sleep(10) 
        var ret = client.read(-2)
        if (!ret || ret == "") {
            continue
        }

        var obj = null
        try {
            obj = JSON.parse(ret)
        } catch (e) {
            Log(e)
            continue
        }

        if (obj.table == "futures/ticker" && obj.data[0].instrument_id == _Instrument_id_A) {   
            tickerA = obj.data[0]
        } else if (obj.table == "futures/ticker" && obj.data[0].instrument_id == _Instrument_id_B) {
            tickerB = obj.data[0]
        }

        if (tickerA && tickerB) {
            $.PlotLine(tickerA.instrument_id + "-" + tickerB.instrument_id, tickerA.last - tickerB.last)
            for (var j = 0 ; j < arr.length; j++) {
                if (tickerA.best_bid - tickerB.best_ask > arr[j].open && !arr[j].isHold) {   
                    Hedge(true, exchanges[0].SetContractType("quarter"), exchanges[1].SetContractType("this_week"))
                    arr[j].isHold = true
                }
                if (tickerA.best_ask - tickerB.best_bid < arr[j].cover && arr[j].isHold) {
                    Hedge(false, exchanges[0].SetContractType("quarter"), exchanges[1].SetContractType("this_week"))
                    arr[j].isHold = false 
                }
                tab.rows.push([JSON.stringify(arr[j])])
            }
        }
        LogStatus(_D(), "\n `" + JSON.stringify(tab) + "`")
    }
}

Berkaitan

Lebih banyak

ChaoV5 sekarang adalah saluran pribadi. Apakah ada contoh login?

Cintai JimmySetelah melakukan tes ulang, muncul pertanyaan berikut, bagaimana cara mengatasinya? Waktu Platform Jenis Harga Jumlah Informasi 2021-02-13 00:00:00 kesalahan main:12:12 - TypeError: Cannot read property 'write' of undefined 2021-02-13 00:00:00 Kesalahan sandbox not support Dial

FmzeroDi mana video pengajaran?

Mimpi kecilJika Anda tidak mendukung fungsi dial, Anda tidak dapat mengulang kebijakan ini.