O recurso está a ser carregado... Carregamento...

Análise e Realização de Futuros de Mercadorias Gráfico da Impressão de Volume

Autora:Bem-estar, Criado: 2020-07-03 11:06:48, Atualizado: 2023-10-28 15:30:11

img

Resumo

O gráfico de pegada quântica é uma ferramenta avançada de análise de gráficos, o nome em inglês é Footprint Charts. Ele mostra a atividade de negociação de cada preço em uma única linha K. Além de fornecer informações de preço, também fornece informações como volume de transações, compra ativa e venda ativa. É um gráfico técnico multidimensional que revela a verdadeira proporção de distribuição de cada preço com base no volume de negociação, explica a relação complexa entre o volume de negociação, preço e tempo e pode fornecer mais referência para os comerciantes.

O que é a pegada quântica?

Simplificando, a Pegada Quântica fornece transparência de mercado através da micro-análise do que acontece com compradores e vendedores em vários níveis de preço.

  • Preço da linha K
  • Volume de compra ativo (ASK)
  • Volume ativo de vendas (BID)
  • Relatório de equilíbrio

img

Tal como mostrado na figura acima, trata-se de uma versão de demonstração do gráfico da pegada energética quantitativa implementado na plataforma de negociaçãoFMZ.COMÉ calculado com base nostickQuando o mouse passa por cima da linha K, os dados quantitativos da pegada de energia podem ser apresentados. Os dados no quadrado azul são o resultado de seu cálculo, que é dividido em duas colunas no total, e a coluna esquerda são todos os pontos de preço da linha K atual, que estão dispostos em ordem de grande a pequena. A coluna direita é o volume de negociação para cada nível de preço, subdividido em volume de negociação de compra e volume de negociação de venda, separado por x.

O papel da pegada de energia quântica

Pense no que causou o aumento de preços? A resposta é simples... compradores e vendedores. Se houver mais compradores do que vendedores, o preço aumentará; se houver mais vendedores do que compradores, o preço cairá. Se o número atual de vendedores for aproximadamente igual ao número de preços de compra, então o mercado mostrará uma tendência volátil, ou seja, o mercado está em um estado de equilíbrio. Uma vez que grandes compradores ou vendedores aparecem, esse equilíbrio será quebrado, e então o mapa da pegada energética mostrará uma proporção extrema de compra e venda ativas.

A pegada de energia é exibida dinamicamente com base em dados Tick, por isso é especialmente adequada para negociação intradiária de curto prazo. Os comerciantes podem ver com precisão o volume ativo de negociação em cada preço para explicar as razões ou leis das flutuações de preços e personalizar suas próprias estratégias de negociação. Por exemplo: se o volume de compra à esquerda for muito maior do que o volume de venda à direita, significa que os participantes do mercado estão comprando ativamente e o preço pode aumentar no futuro; caso contrário, se o volume de venda à direita for muito maior do que o volume de compra à esquerda, significa que com os participantes do mercado vendendo ativamente, os preços podem cair no futuro.

Princípio da Embalagem Quântica de Energia

O princípio de cálculo da Pegada Quântica de Energia vem dos dados de volume e mercado. O volume atual é calculado em tempo real de acordo com as mudanças de preço do mercado. Se o preço de mercado subir, o volume é registrado como uma compra ativa; se o preço de mercado cair, então registre o volume como venda ativa.TickOs dados serão calculados em tempo real para calcular com precisão o volume de negócios de cadaTick.

Implementação do Código da Pegada de Energia Quâ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
        }
    }
}

Download de código de pegada quântica

O código de estratégia do gráfico da pegada quantitativa foi lançado emFMZ.complataforma, e usuários comuns podem usá-lo sem configuração.https://www.fmz.com/strategy/189965

Resumindo

Em uso real, o mapa da pegada energética também pode analisar o fluxo de fundos a partir da perspectiva do volume. Quer seja para analisar a direção das tendências em larga escala ou a direção de curto prazo do dia, ele desempenha um papel vital. No entanto, deve-se notar que o chamado fluxo de capital aqui não se refere à entrada e saída de fundos, mas reflete a disposição do mercado para comprar e vender e o comportamento do jogo dos principais jogadores e investidores de varejo.


Relacionados

Mais.