Analyse und Realisierung von Rohstofffutures Volumen-Fußabdruck-Diagramm

Schriftsteller:Gutes, Erstellt: 2020-07-03 11:06:48, Aktualisiert: 2023-10-28 15:30:11

img

Zusammenfassung

Quantum Footprint Chart ist ein fortschrittliches Chart-Analyse-Tool, der englische Name ist Footprint Charts. Es zeigt die Handelsaktivität jedes Preises in einer einzigen K-Linie. Neben der Bereitstellung von Preisinformationen liefert es auch Informationen wie Transaktionsvolumen, aktivem Kauf und aktivem Verkauf. Es ist ein mehrdimensionales technisches Chart, das das wahre Verteilungsverhältnis jedes Preises basierend auf dem Handelsvolumen offenbart, die komplexe Beziehung zwischen Handelsvolumen, Preis und Zeit erklärt und mehr Referenz für Händler bieten kann.

Was ist Quantenfußabdruck?

Einfach ausgedrückt, bietet Quantum Footprint Markttransparenz durch Mikroanalyse, was mit Käufern und Verkäufern auf verschiedenen Preisniveaus passiert.

  • K-Linienpreis
  • Aktives Kaufvolumen (ASK)
  • Aktives Verkaufsvolumen (BID)
  • Gleichgewichtsquote

img

Wie in der Abbildung oben dargestellt, handelt es sich hier um eine Demonstrationsversion des auf der Handelsplattform implementierten quantitativen Energieabdruckdiagramms.FMZ.COM. Es wird auf der Grundlage der tatsächlichentickDie Daten im blauen Quadrat sind das Berechnungsresultat, das insgesamt in zwei Spalten unterteilt ist, und die linke Spalte sind alle Preispunkte der aktuellen K-Linie, die in der Reihenfolge von groß bis klein angeordnet sind. Die rechte Spalte ist das Handelsvolumen für jedes Preisniveau, unterteilt in Kaufhandelsvolumen und Verkaufshandelsvolumen, getrennt durch x. Links von x ist das Volumen des aktiven Kaufs, rechts von x ist das Volumen des aktiven Verkaufs.

Die Rolle des Quantenenergie-Fußabdrucks

Denken Sie darüber nach, was den Preisanstieg verursacht hat? Die Antwort ist einfach... Käufer und Verkäufer. Wenn es mehr Käufer als Verkäufer gibt, wird der Preis steigen; wenn es mehr Verkäufer als Käufer gibt, wird der Preis sinken. Wenn die aktuelle Anzahl der Verkäufer etwa gleich der Anzahl der Kaufpreise ist, dann wird der Markt einen volatilen Trend zeigen, dh der Markt ist in einem ausgewogenen Zustand. Sobald große Käufer oder Verkäufer erscheinen, wird dieses Gleichgewicht gebrochen, und dann wird die Energiefußabdruckkarte ein extremes Verhältnis von aktivem Kauf und Verkauf zeigen.

Der Energie-Fußabdruck wird dynamisch basierend auf Tick-Daten angezeigt, so dass er besonders für den kurzfristigen Intraday-Handel geeignet ist. Händler können das aktive Handelsvolumen an jedem Preis genau sehen, um die Gründe oder Gesetze von Preisschwankungen zu erklären und ihre eigenen Handelsstrategien anzupassen. Zum Beispiel: Wenn das Kaufvolumen links viel größer ist als das Verkaufvolumen rechts, bedeutet dies, dass die Marktteilnehmer aktiv kaufen, und der Preis kann in Zukunft steigen; andernfalls bedeutet es, wenn das Verkaufvolumen rechts viel größer ist als das Kaufvolumen links.

Prinzip des Quantenenergie-Fußabdrucks

Das Berechnungsprinzip des Quantum Energy Footprint stammt aus den Volumen- und Marktdaten. Das aktuelle Volumen wird in Echtzeit entsprechend den Preisänderungen des Marktes berechnet. Steigt der Marktpreis, wird das Volumen als aktiver Kauf aufgezeichnet; fällt der Marktpreis, wird dann das Volumen als aktiver Verkauf aufgezeichnet.TickDie Daten werden in Echtzeit berechnet, um den Umsatz jedes Unternehmens genau zu berechnen.Tick.

Umsetzung des Kodex für den Quantenenergieabdruck

/*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
        }
    }
}

Quanten-Fußabdruck-Code zum Download

Der Strategiecode für den quantitativen Code Fußabdruck wurde amFMZ.comDas ist eine Plattform, und gewöhnliche Benutzer können sie ohne Einstellung nutzen.https://www.fmz.com/strategy/189965

Zusammenfassend

In der Praxis kann die Energiefußabdruckkarte auch den Geldfluss aus der Perspektive des Volumens analysieren. Ob es sich um die Analyse der Richtung großer Trends oder die kurzfristige Richtung des Tages handelt, sie spielt eine wichtige Rolle.


Verwandt

Mehr