websocket versión OKEX estrategia de cobertura a largo plazo (enseñanza)

El autor:Un sueño pequeño., Fecha: 2019-04-17 10:10:55
Las etiquetas:CubiertaEl sitio web

Estrategia de cobertura a largo plazo de OKEX (enseñanza)

  • La imagen en vivo:img

  • Sólo hacer el primer juego, el contrajuego puede ser modificado, el contrato cambiado, es decir, el contrajuego.

  • Añade dos objetos de intercambio, el primer trimestre, el segundo en la misma semana.

  • Se ha simplificado todo el código que se puede simplificar, hay mucho espacio para optimizar, la estrategia de enseñanza es cautelosa y realista, y hay cierto riesgo a lo largo del tiempo.

  • En el caso de los precios de venta, el precio de venta es el mismo.

  • Bienvenido a los comentarios BUG.

Las estrategias de enseñanza, la práctica y la prudencia.

Las estrategias de enseñanza, la práctica y la prudencia.

Las estrategias de enseñanza, la práctica y la prudencia.


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) + "`")
    }
}

Relacionados

Más.

- ¿ Qué?En realidad, esto no es V5, ¿verdad? OK V5 ahora es un canal privado.

Quiero a Jimmy.¿Cómo se resuelve el problema? Tiempo Plataforma Tipo Precio cantidad Información 2021-02-13 00:00:00 error main:12:12 - TypeError: No puede leer la propiedad 'write' de undefined 2021-02-13 00:00:00 Error en la caja de arena no es compatible Dial

No hay nada.¿Dónde está el video de enseñanza?

Un sueño pequeño.La política no puede ser repetida porque la función Dial no es compatible.