Análisis y realización de los futuros de materias primas Gráfico de huella de volumen

El autor:La bondad, Creado: 2020-07-03 11:06:48, Actualizado: 2023-10-28 15:30:11

img

Resumen de las actividades

El gráfico de huella cuántica es una herramienta avanzada de análisis de gráficos, el nombre en inglés es Footprint Charts. Muestra la actividad comercial de cada precio en una sola línea K. Además de proporcionar información de precios, también proporciona información como volumen de transacciones, compra activa y venta activa. Es un gráfico técnico multidimensional que revela la verdadera relación de distribución de cada precio en función del volumen de operaciones, explica la relación compleja entre el volumen de operaciones, el precio y el tiempo, y puede proporcionar más referencia para los comerciantes.

Qué es la huella cuántica

En pocas palabras, la huella cuántica proporciona transparencia del mercado mediante el micro-análisis de lo que sucede con los compradores y vendedores en varios niveles de precios.

  • Precio en línea K
  • Volumen activo de compras (ASK)
  • Volumen de venta activo (BID)
  • Ratio de equilibrio

img

Como se muestra en la figura anterior, se trata de una versión de demostración del gráfico de huella energética cuantitativa implementado en la plataforma de negociaciónFMZ.COMSe calcula sobre la base de lostickEn la línea K, se pueden presentar los datos de huella energética cuantitativa. Los datos en el cuadrado azul son el resultado de su cálculo, que se divide en dos columnas en total, y la columna izquierda son todos los puntos de precio de la línea K actual, que están dispuestos en orden de grande a pequeño. La columna derecha es el volumen de negociación para cada nivel de precios, subdividido en volumen de negociación de compra y volumen de negociación de venta, separado por x. A la izquierda de x es el volumen de compra activa, a la derecha de x es el volumen de venta activa.

El papel de la huella de energía cuántica

Piense en lo que causó el aumento de precios. La respuesta es simple: compradores y vendedores. Si hay más compradores que vendedores, el precio aumentará; si hay más vendedores que compradores, el precio caerá. Si el número actual de vendedores es aproximadamente igual al número de precios de compra, entonces el mercado mostrará una tendencia volátil, es decir, el mercado está en un estado de equilibrio. Una vez que aparecen grandes compradores o vendedores, este equilibrio se romperá, y entonces el mapa de la huella energética mostrará una proporción extrema de compra y venta activa.

La huella de energía se muestra dinámicamente en base a los datos de Tick, por lo que es especialmente adecuada para el comercio intradiario a corto plazo. Los operadores pueden ver con precisión el volumen de operaciones activo en cada precio para explicar las razones o leyes de las fluctuaciones de precios y personalizar sus propias estrategias comerciales. Por ejemplo: si el volumen de compra a la izquierda es mucho mayor que el volumen de venta a la derecha, significa que los participantes del mercado están comprando activamente, y el precio puede aumentar en el futuro; de lo contrario, si el volumen de venta a la derecha es mucho mayor que el volumen de compra a la izquierda, significa que con los participantes del mercado vendiendo activamente, los precios pueden caer en el futuro.

Principio de la huella de energía cuántica

El principio de cálculo de la huella cuántica de energía proviene del volumen y los datos del mercado. El volumen actual se calcula en tiempo real de acuerdo con los cambios de precios del mercado. Si el precio de mercado aumenta, el volumen se registra como una compra activa; si el precio de mercado cae, luego registre el volumen como una venta activa.TickLos datos se calcularán en tiempo real para calcular con precisión el volumen de negocios de cadaTick.

Implementación del código de huella de energía cuántica

/*backtest
start: 2020-03-10 00:00:00
end: 2020-03-10 23:59:00
period: 1h
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
mode: 1
*/

var NewFuturesTradeFilter = function (period) {
    var self = {} // Create an object
    self.c = Chart({ // Create "Chart" chart
        tooltip: {
            xDateFormat:'%Y-%m-%d %H:%M:%S, %A',
            pointFormat:'{point.tips}'
        },
        series: [{
            name: exchange.GetName(),
            type:'candlestick',
            data: []
        }]
    })
    self.c.reset() // clear chart data
    self.pre = null // used to record the last data
    self.records = []
    self.feed = function (ticker) {
        if (!self.pre) {// If the previous data is not true
            self.pre = ticker // Assign the latest data
        }
        var action ='' // Mark as empty string
        Log('ticker', ticker)
        Log('pre', self.pre)
        if (ticker.Last >= self.pre.Sell) {// If the last price of the latest data is greater than or equal to the selling price of the previous data
            action ='buy' // mark as buy
        } else if (ticker.Last <= self.pre.Buy) {// If the last price of the latest data is less than or equal to the bid price of the previous data
            action ='sell' // mark as sell
        } else {
            if (ticker.Last >= ticker.Sell) {// If the last price of the latest data is greater than or equal to the selling price of the latest data
                action ='buy' // mark as buy
            } else if (ticker.Last <= ticker.Buy) {// If the last price of the latest data is less than or equal to the buying price of the latest data
                action ='sell' // mark as "sell"
            } else {
                action ='both' // Mark as "both"
            }
        }
        // reset volume
        if (ticker.Volume <self.pre.Volume) {// If the volume of the latest data is less than the volume of the previous data
            self.pre.Volume = 0 // Assign the volume of the previous data to 0
        }
        var amount = ticker.Volume-self.pre.Volume // the volume of the latest data minus the volume of the previous data
        if (action !='' && amount> 0) {// If the tag is not an empty string and the action is greater than 0
            var epoch = parseInt(ticker.Time / period) * period // Calculate the K-line timestamp and round it
            var bar = null
            var pos = undefined
            if (
                self.records.length == 0 || // If the K-line length is 0 or the last K-line timestamp is less than "epoch"
                self.records[self.records.length-1].time <epoch
            ) {
                bar = {
                    time: epoch,
                    data: {},
                    open: ticker.Last,
                    high: ticker.Last,
                    low: ticker.Last,
                    close: ticker.Last
                } // Assign the latest data to bar
                self.records.push(bar) // Add bar to the records array
            } else {// reassign bar
                bar = self.records[self.records.length-1] // the last bar of the previous data
                bar.high = Math.max(bar.high, ticker.Last) // the maximum price of the last bar of the previous data and the maximum value of the last price of the latest data
                bar.low = Math.min(bar.low, ticker.Last) // The minimum price of the last bar of the previous data and the minimum value of the last price of the latest data
                bar.close = ticker.Last // last price of latest data
                pos = -1
            }
            if (typeof bar.data[ticker.Last] ==='undefined') {// If the data is empty
                bar.data[ticker.Last] = {// reassign value
                    buy: 0,
                    sell: 0
                }
            }
            if (action =='both') {// If the token is equal to both
                bar.data[ticker.Last]['buy'] += amount // buy accumulation
                bar.data[ticker.Last]['sell'] += amount // sell accumulated
            } else {
                bar.data[ticker.Last][action] += amount // mark accumulation
            }
            var tips =''
            Object.keys(bar.data) // Put the keys in the object into an array
                .sort() // sort
                .reverse() // Reverse the order in the array
                .forEach(function (p) {// traverse the array
                    tips +='<br>' + p + '' + bar.data[p].sell +'x' + bar.data[p].buy
                })
            self.c.add( // Add data
                0, {
                    x: bar.time,
                    open: bar.open,
                    high: bar.high,
                    low: bar.low,
                    close: bar.close,
                    tips: tips
                },
                pos
            )
        }
        self.pre = ticker // reassign
    }
    return self // return object
}


// program entry
function main() {
    Log(_C(exchange.SetContractType,'MA888')) // subscription data
    var filt = NewFuturesTradeFilter(60000) // Create an object
    while (true) {// Enter loop mode
        var ticker = exchange.GetTicker() // Get exchange tick data
        if (ticker) {// If the Tick data is successfully obtained
            filt.feed(ticker) // Start processing data
        }
    }
}

Descarga de código de huella cuántica

El código de estrategia de la tabla de huella de los códigos cuantitativos ha sido publicado elFMZ.complataforma, y los usuarios ordinarios pueden usarlo sin configuración.https://www.fmz.com/strategy/189965

En resumen

En el uso real, el mapa de huella energética también puede analizar el flujo de fondos desde la perspectiva del volumen. Ya sea para analizar la dirección de las tendencias a gran escala o la dirección a corto plazo del día, desempeña un papel vital. Sin embargo, debe tenerse en cuenta que el llamado flujo de capital aquí no se refiere a la entrada y salida de fondos, sino que refleja la voluntad del mercado de comprar y vender y el comportamiento del juego de los principales jugadores e inversores minoristas.


Relacionados

Más.