Pensar en la movilidad de los activos mediante estrategias de contractuación de cobertura

El autor:El condado, Creado: 2020-10-20 16:48:32, Actualizado: 2023-09-26 20:59:29

img

Pensar en la movilidad de los activos mediante estrategias de contractuación de cobertura

Recientemente, los círculos de monedas pueden ser llamados noticias continuas, las noticias de los intercambios también están llenas de nieve. Por un tiempo, los amigos de la moneda estaban preocupados, preocupados por la seguridad de sus activos de la cadena de bloques. Los grupos de monedas también tenían 9 descuentos, 8 descuentos para dejar de lado el dinero de segunda mano. De hecho, lo que hace dinero estable, lo que pierde dinero estable, es lo que hace dinero estable.money printerNo es fácil encontrarlos. Perdone mi lenguaje torpe.

Sin embargo, todavía hay incertidumbres, por ejemplo, lograr una pérdida y una ganancia mínimas a través del arriesgamiento contractual.

Estrategia DEMO

/*backtest
start: 2020-09-30 00:00:00
end: 2020-10-19 00:00:00
period: 1d
basePeriod: 1m
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD"},{"eid":"Futures_HuobiDM","currency":"BTC_USD"}]
*/

var step = 20    // 加仓价格步长

function main() {
    var pos1 = []
    var pos2 = []
    var ct = "quarter"                         // 例如用季度合约
    exchanges[0].SetContractType(ct)
    exchanges[1].SetContractType(ct)
    var diff = 0

    while (true) {
        var r1 = exchanges[0].Go("GetDepth")   // A交易所
        var r2 = exchanges[1].Go("GetDepth")   // B交易所
        var depth1 = r1.wait()
        var depth2 = r2.wait()

        if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff) {
            if(pos1.length == 0 && pos2.length == 0) {
                var info1 = $.OpenShort(exchanges[0], ct, 10)
                var info2 = $.OpenLong(exchanges[1], ct, 10)
                pos1 = _C(exchanges[0].GetPosition)
                pos2 = _C(exchanges[1].GetPosition)
                diff = depth1.Bids[0].Price - depth2.Asks[0].Price
            } else if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff + step) {
                var info1 = $.OpenShort(exchanges[0], ct, 10)
                var info2 = $.OpenLong(exchanges[1], ct, 10)
                pos1 = _C(exchanges[0].GetPosition)
                pos2 = _C(exchanges[1].GetPosition)
                diff = depth1.Bids[0].Price - depth2.Asks[0].Price
            }
        }
        
        if(pos1.length != 0 && pos1[0].Profit < -0.001) {
            var info1 = $.CoverShort(exchanges[0], ct, pos1[0].Amount)
            var info2 = $.CoverLong(exchanges[1], ct, pos2[0].Amount)
            pos1 = _C(exchanges[0].GetPosition)
            pos2 = _C(exchanges[1].GetPosition)
            diff = 0
        }
        LogStatus(_D(), diff)
        Sleep(500)
    }
}

img

img

La lógica estratégica: La estrategia comienza por iniciar la variable de tenencia pos1, pos2 como un conjunto de números vacíos. La estrategia entra en el ciclo principal, y cada ciclo comienza a obtener datos de profundidad de los contratos de los dos intercambios (datos delgados de la orden), calcular el diferencial. Si el diferencial continúa expandiéndose más que hasta que el último diferencial se incrementa en un paso, se continúa el apalancamiento. Cuando se mantiene el posicionamiento, se detecta que la pérdida de tenencia del primer intercambio supera un cierto valor (por ejemplo: -0.001), el equilibrio.

El principio es muy simple, es decir, que el diferencial es grande, contra el impulso. Los intercambios que esperan pérdidas se estabilizan cuando se mantienen en pérdidas, y si el diferencial continúa expandiéndose, continúan haciéndolo hasta que el intercambio que espera pérdidas tenga pérdidas. Algunos parámetros más importantes son: cuánta posición de pérdidas, el ritmo del diferencial, la cantidad de cobertura.

La estrategia es más sencilla, es solo una prueba de idea, el disco real no está disponible. El disco real también tiene muchas preguntas que considerar, como si el contrato a negociar es el precio de la moneda o el precio de U, si los diferentes contratos de los intercambios A y B tienen el mismo número de veces, etc.

Esto permite que una bolsa pierda dinero y la parte de la pérdida se convierta aproximadamente en la parte de la ganancia de otra bolsa (problema de diferencia, puede haber pérdidas de cobertura, es decir, más pérdidas que ganancias).$.CoverShort,$.OpenShortEstas son las funciones de interfaz de la plantilla, y el DEMO de arriba requiere una referencia a esta biblioteca para ejecutarse.

El prototipo de la estrategia anterior es solo una pequeña exploración más simple, y es posible que haya más detalles que se tengan en cuenta en las operaciones concretas, como el aumento de la carga puede diseñarse de manera incremental. Aquí solo se lanzan las cuerdas de guión, y se debería optimizar más una estrategia similar.


Relacionados

Más.

Cuchillo de huesoPor favor, instale tan pronto como pueda, si es que quiero alquilarlo, saque mis monedas de juego.

Un sueño pequeño.El autor dice al principio que la inestabilidad y el mal funcionamiento son posibles para volver atrás.